TP4056 Bağlantısı: 18650 Pil Şarj Modülü Kullanımı ve ESP32
TP4056 şarj modülü nasıl bağlanır? B+/B- ve OUT+/OUT- pinleri, korumalı DW01 farkı, LED anlamları, Rprog ile akım ayarı, MT3608 ile 5 V ve ESP32 pil ölçümü.
TP4056 bağlantısı, tek hücreli bir 18650 ya da Li-Po pili USB'den güvenle şarj edip aynı pille Arduino, ESP32 veya Raspberry Pi Pico projesini beslemenin en ucuz yoludur: USB kablosu modülün girişine, pil B+ ve B- uçlarına, devren ise korumalı modüllerde OUT+ ve OUT- uçlarına bağlanır. Modül pili 4,2 V'a kadar sabit akım ve sabit gerilim yöntemiyle doldurur, pil dolunca şarjı kendisi keser ve durumu iki LED ile gösterir. Tırnak büyüklüğündeki bu kart; taşınabilir hava istasyonları, robotlar, şarjlı lambalar ve kablosuz sensörler gibi prizden bağımsız çalışan projelerin kalbidir.
Ama bu ucuz modülün birkaç tuzağı var: korumalı ve korumasız sürümler farklı bağlanır, varsayılan 1 A şarj akımı küçük piller için fazladır, şarj olurken devreyi beslemek şarjın bitmesini engelleyebilir ve seri bağlı iki pil bu modülle asla şarj edilmez. Bu yazıda pinleri tek tek, LED'lerin anlamını, şarj akımını Rprog direnciyle ayarlamayı, 5 V isteyen kartlar için MT3608 boost modülü eklemeyi ve ESP32 ile pil voltajını ölçüp yüzdeye çevirmeyi adım adım öğreneceksin.

TP4056 nedir, nasıl çalışır?
TP4056, tek hücreli lityum iyon (Li-ion) ve lityum polimer (Li-Po) piller için yapılmış doğrusal (lineer) bir şarj entegresidir. Lityum piller rastgele bir adaptörle doldurulamaz; belirli bir şarj profili ister ve TP4056 bu profili tek başına uygular. Pil 2,9 V'un altındaysa önce ön şarj (trickle) evresinde ayarlı akımın yaklaşık onda biriyle, yani 1 A ayarında 130 mA civarında nazikçe doldurur. Gerilim 2,9 V'u geçince sabit akım (CC) evresine geçer ve ayarlı akımın tamamını verir. Pil 4,2 V'a ulaşınca sabit gerilim (CV) evresi başlar: gerilim 4,2 V'ta tutulur, akım yavaş yavaş azalır. Akım ayarlı değerin onda birine (1 A ayarında 100 mA) inince şarj biter. Pil sonradan yaklaşık 4,05 V'a düşerse modül şarjı kendiliğinden yeniden başlatır. Yonga çok ısınırsa şarj akımını kendi kendine kısar; bu yüzden şarj sırasında modülün sıcak olması normaldir.
| Özellik | Değer |
|---|---|
| Giriş gerilimi | 4,0–8 V (önerilen 5 V; micro USB ya da USB-C) |
| Şarj bitiş gerilimi | 4,2 V (±%1,5) |
| Şarj akımı | En fazla 1 A; modüllerde varsayılan 1 A (Rprog = 1,2 kΩ) |
| Ön şarj | 2,9 V altında ayarlı akımın yaklaşık 1/10'u |
| Şarj bitişi | Akım ayarlı değerin 1/10'una düşünce (C/10) |
| Yeniden şarj | Pil yaklaşık 4,05 V'a düşünce otomatik |
| Durum çıkışları | CHRG (şarj oluyor) ve STDBY (doldu) LED'leri |
| Uygun piller | Yalnız tek hücre (1S) 3,7 V Li-ion ve Li-Po; LiFePO4 değil |
Korumalı (DW01) ve korumasız TP4056 modül farkı
Piyasada aynı adla iki farklı kart satılır. Korumasız modülde yalnızca TP4056 yongası vardır ve dört bağlantı noktası bulunur: IN+/IN- ve BAT+/BAT-. Bu kart pili doldurur ama pil boşalırken hiçbir şeyi denetlemez. Korumalı modülde ise ek olarak DW01A koruma entegresi ile 8205A çift MOSFET bulunur ve altı ped vardır: IN+/IN-, B+/B- ve OUT+/OUT-. Koruma devresi, pilin eksi ucu ile devrenin eksi ucu (OUT-) arasına bir anahtar gibi girer. Pil aşırı boşalınca, aşırı dolunca, devre çok fazla akım çekince ya da çıkış kısa devre olunca bu anahtarı açar ve pili devreden ayırır.
| Özellik | Korumasız modül | Korumalı modül (DW01A + 8205A) |
|---|---|---|
| Pedler | IN+, IN-, BAT+, BAT- | IN+, IN-, B+, B-, OUT+, OUT- |
| Aşırı şarj koruması | Yalnız TP4056'nın 4,2 V sınırı | Ek olarak yaklaşık 4,25–4,3 V'ta keser |
| Aşırı deşarj koruması | Yok | Yaklaşık 2,4 V'ta keser, 3,0 V civarında bırakır |
| Aşırı akım ve kısa devre | Yok | Yaklaşık 3 A'de ve kısa devrede keser |
| Ne zaman seçilir? | Pilin kendi koruma devresi varsa | Korumasız çıplak hücrelerde, yani hemen her projede |
18650 pil: bilmen gereken gerilim değerleri
18650 adı pilin ölçüsünden gelir: 18 mm çap, 65 mm uzunluk. Anma gerilimi 3,6–3,7 V'tur, ama bu bir ortalamadır; dolu pil 4,2 V, boşalmış pil ise 3,0 V civarındadır. Gerçek kapasiteler 2000–3500 mAh arasındadır; üzerinde 6800 ya da 9900 mAh yazan piller sahtedir ve çoğu zaman 1000 mAh bile vermez. Kendi koruma devresi olan (korumalı) 18650'ler birkaç milimetre daha uzundur ve her pil yuvasına sığmayabilir. Projenin bir pille ne kadar çalışacağını Pil Ömrü Hesaplama aracıyla bulabilir, kapasite birimlerini mAh ve Wh yazısında okuyabilirsin.
| Durum | Gerilim | Açıklama |
|---|---|---|
| Tam dolu | 4,20 V | TP4056 şarjı burada bitirir |
| Anma (nominal) | 3,6–3,7 V | Etiketteki değer, ortalama çalışma gerilimi |
| Boşalmış sayılır | 3,0–3,3 V | Projeyi burada durdurmak pil ömrünü uzatır |
| Koruma kesimi | 2,4–2,5 V | DW01A çıkışı kapatır; bu kadar boşaltmamaya çalış |
| Tehlikeli bölge | 2,0 V altı | Uzun süre böyle kalmış pili şarj etme, değiştir |

TP4056 bağlantısı: IN, B+/B- ve OUT+/OUT- pinleri
| Ped | Nereye bağlanır? | Not |
|---|---|---|
| USB girişi | 5 V adaptör ya da bilgisayar | Micro USB ya da USB-C; en kolay yol |
| IN+ / IN- | Harici 5 V kaynağın artı ve eksisi | USB yerine lehimle besleme için; ikisini aynı anda kullanma |
| B+ / B- | 18650 pilin artı ve eksisi | Buraya yalnızca pil bağlanır |
| OUT+ / OUT- | Devrenin (yükün) artı ve eksisi | Korumalı modülde yük her zaman buraya |
| BAT+ / BAT- (korumasız) | Pil ve yük birlikte | Koruma yok; yük pile paralel bağlanır |
- Pil yuvasının kırmızı kablosunu B+, siyah kablosunu B- pedine lehimle. Pili henüz yuvaya takma.
- Devrenin artı besleme kablosunu OUT+, eksi (GND) kablosunu OUT- pedine lehimle. 5 V isteyen bir kart besleyeceksen araya MT3608 boost modülü gelecek.
- Lehimleri kontrol et ve multimetreyle B+ ile B- arasında kısa devre olmadığından emin ol.
- Pili kutuplarına dikkat ederek yuvaya tak. Bazı korumalı modüllerde çıkış ilk anda kapalı olabilir; USB'yi bir kez takmak korumayı sıfırlar ve çıkışı açar.
- USB kablosunu tak: kırmızı LED yanıyorsa şarj başlamıştır. Pil dolunca kırmızı söner, mavi ya da yeşil LED yanar.
- Multimetreyle OUT+ ile OUT- arasında pil gerilimini (3,0–4,2 V) gördüğünde devreni çalıştırabilirsin.
TP4056 LED'leri ne anlatır?
| Kırmızı LED (CHRG) | Mavi ya da yeşil LED (STDBY) | Anlamı |
|---|---|---|
| Yanıyor | Sönük | Şarj oluyor |
| Sönük | Yanıyor | Şarj tamamlandı (4,2 V) |
| Yanıp sönüyor ya da titriyor | Yanıyor | Pil takılı değil ya da temas yok |
| Sönük | Sönük | Giriş gerilimi 4 V'un altında ya da USB beslemesi yok |
| Saatlerce yanıyor | Sönük | Yük şarjın bitmesini engelliyor ya da pil yorgun |
Pil takılı değilken mavi LED'in yanması ve kırmızının titremesi normaldir: modül boş kalan pil ucundaki kondansatörü sürekli doldurup boşaltır. Şarj süresini kabaca kapasite / akım × 1,2 ile tahmin edebilirsin. 2600 mAh bir pil 1 A ile yaklaşık 3 saatte dolar; son bölümde akım giderek azaldığı için süre, basit bölmenin verdiğinden biraz uzundur.
Şarj akımını ayarlamak: Rprog direnci
Şarj akımını, TP4056'nın 2 numaralı PROG pini ile GND arasına bağlı tek bir direnç belirler. Modüllerin çoğunda bu direnç R3 olarak işaretlidir ve üzerinde 1,2 kΩ anlamına gelen 122 kodu yazar; bu da 1 A demektir. Kodları çözmek için SMD Kod Çözücü aracını kullanabilirsin. Formül yaklaşık olarak I (mA) = 1200 / Rprog (kΩ) şeklindedir. Akımı değiştirmek için SMD direnci havyayla söküp yerine istediğin değeri lehimlersin; uygun boyda SMD direnç bulamazsan küçük bir bacaklı direnci de iki pede lehimleyebilirsin.
| Rprog | Şarj akımı | Uygun pil |
|---|---|---|
| 10 kΩ | 130 mA | 200–300 mAh küçük Li-Po |
| 5 kΩ | 250 mA | 300–500 mAh Li-Po |
| 4 kΩ | 300 mA | 500–600 mAh Li-Po |
| 3 kΩ | 400 mA | 800 mAh civarı |
| 2 kΩ | 580 mA | 1000–1200 mAh |
| 1,5 kΩ | 780 mA | 1500 mAh ve üzeri |
| 1,2 kΩ | 1000 mA | 2000 mAh ve üzeri 18650 (modül varsayılanı) |
Genel kural, şarj akımını pil kapasitesinin yarısı (0,5C) civarında tutmaktır: 500 mAh bir Li-Po için 250 mA, 2600 mAh bir 18650 için 1 A uygundur. Isıyı da hesaba kat: TP4056 doğrusal çalıştığı için giriş ile pil arasındaki gerilim farkı ısıya dönüşür. 5 V girişte 3,6 V'luk bir pili 1 A ile doldururken yonga (5 − 3,6) × 1 = 1,4 W ısı üretir; bu yüzden modül çok ısınır ve akımı kendisi kısabilir. Bu tür güç hesaplarını Ohm Kanunu aracıyla da yapabilirsin. Bilgisayarın USB 2.0 portu yalnızca 500 mA verdiği için pili sık sık bilgisayardan şarj edeceksen akımı 500 mA civarına düşürmek mantıklıdır.
Şarj olurken devreyi beslemek (yük paylaşımı)
USB takılıyken projenin çalışmaya devam etmesini istiyorsan en basit yol devreyi OUT+ ve OUT- uçlarına bağlı bırakmaktır; TP4056 bu durumda hem pili doldurur hem de devreyi besler. Ama yonga, pile giden akımla devreye giden akımı birbirinden ayıramaz. Devren sürekli 100 mA'den fazla çekiyorsa toplam akım hiçbir zaman bitiş eşiğinin altına inmez, şarj hiç bitmez ve pil saatlerce 4,2 V'ta bekletilir; bu da pilin ömrünü kısaltır. Devren 1 A'e yakın çekiyorsa pil hiç dolmaz bile. Derin uykudaki bir ESP32 ya da birkaç mA çeken küçük devrelerde doğrudan bağlantı pratikte sorun çıkarmaz; sürekli çalışan Wi-Fi projeleri, motorlar ve LED şeritler için ise bir yük paylaşımı (load sharing) devresi kur.
| Parça | Bağlantı | Görevi |
|---|---|---|
| Schottky diyot (1N5817, SS14) | Anot USB 5 V'a (IN+), katot devrenin artı girişine | USB varken devreyi doğrudan besler |
| P kanallı MOSFET (AO3401, DMG2305) | Drain pile (OUT+), source devrenin artı girişine | USB yokken pili devreye bağlar |
| MOSFET gate bağlantısı | Doğrudan USB 5 V'a (IN+) | USB takılıyken MOSFET kesimde kalır, pil yalnızca şarj olur |
| 100 kΩ direnç | MOSFET gate'i ile GND arasına | USB çekilince gate'i 0 V'a indirir, MOSFET iletime geçer |
5 V gerekiyorsa: MT3608 boost modülü eklemek
18650 pilin gerilimi 3,0 ile 4,2 V arasında gezer; 5 V isteyen Arduino Uno, röle modülleri, servo motorlar ya da WS2812B LED'ler için bu yetmez. Çözüm, gerilimi yükselten bir boost (step-up) dönüştürücüdür. En yaygını MT3608 modülüdür: 2–24 V girişten 28 V'a kadar ayarlanabilir çıkış verir, 1,2 MHz'de çalışır ve içindeki anahtarın akım sınırı 4 A'dir. Tek bir 18650'den 5 V'ta pratikte 0,5–1 A civarı güvenle çekebilirsin; daha fazlasında modül ısınır ve verim düşer. Gerilimi düşürmen gereken durumlarda ise tam tersini yapan LM2596 buck modülünü kullanırsın.
- MT3608'in VIN+ ve VIN- girişlerini TP4056'nın OUT+ ve OUT- uçlarına bağla.
- Çıkışa henüz hiçbir şey bağlamadan multimetreyi VOUT+ ile VOUT- arasına bağla.
- Mavi trimpotu küçük bir tornavidayla çevirerek çıkışı 5,0–5,1 V'a ayarla. Trimpot çok turlu olduğu için gerilim ancak birkaç tur sonra değişmeye başlayabilir; sabırla çevir.
- Ayar bitince kartının 5V pinini VOUT+ ucuna, GND pinini VOUT- ucuna bağla.
- Devre çalışırken gerilimi bir kez daha ölç; yük altında 4,8 V'un altına düşüyorsa kabloları kısalt ya da çekilen akımı azalt.
| Kart | Tek 18650 ile nasıl beslenir? | Not |
|---|---|---|
| Arduino Uno / Nano | MT3608 ile 5,0 V → 5V pini | 5V pini regülatörü atlar; 5,5 V'u asla geçme |
| Arduino Pro Mini 3,3 V (8 MHz) | OUT+ doğrudan RAW pinine | Düşük kayıplı regülatörü pil gerilimiyle çalışabilir |
| ESP32 DevKit | MT3608 ile 5 V → VIN (5V) pini | Karttaki AMS1117 yaklaşık 1 V düşürür; pili doğrudan bağlama |
| Raspberry Pi Pico | OUT+ → Schottky diyot → VSYS (pin 39) | VSYS 1,8–5,5 V kabul eder; boost gerekmez |
| SIM800L GSM modülü | OUT+ ve OUT- doğrudan | 3,4–4,4 V ister; Li-ion için idealdir |
Kartı kod yüklemek için USB'ye takarken boost çıkışı da bağlıysa iki besleme kaynağı birbirine bağlanmış olur. En güvenli yol, kod yüklerken boost çıkışını ayırmaktır. Arduino'nun hangi pinden nasıl beslendiğini Arduino Nasıl Beslenir? yazısında ayrıntılı olarak bulabilirsin.
Seri bağlı piller TP4056 ile şarj edilmez
TP4056 yalnızca tek hücreyi (1S) 4,2 V'a kadar doldurur. Robot arabalarda sık kullanılan iki seri 18650'lik paket (2S) 7,4 V anma ve 8,4 V dolu gerilimdedir; bu paketi tek bir TP4056'ya bağlarsan şarj olmaz, üstelik modül ve piller zarar görebilir. Her pile ayrı bir TP4056 takmak da işe yaramaz: modüllerin eksi girişleri aynı USB kaynağında birleşir; üstteki modülün eksisi alttaki pilin artısına bağlı olduğu için alttaki pil kısa devre olur. Bitiş gerilimi 4,2 V'a sabit olduğu için TP4056, şarjı 3,6 V'ta bitmesi gereken LiFePO4 pillerle de kullanılmaz.
- Paralel bağla (1S2P): İki pili paralel bağlarsan gerilim 3,7 V kalır, kapasite iki katına çıkar ve TP4056 ile şarj edebilirsin. Birleştirmeden önce pillerin gerilimlerinin eşit olduğundan emin ol.
- Boost ile yükselt: 7–12 V gerekiyorsa paralel pillerin çıkışını MT3608 ile yükselt.
- 2S şarj devresi kullan: Seri paket için 8,4 V'luk CC/CV şarj cihazı ve hücreleri dengeleyen (balanslı) bir 2S BMS kartı gerekir.
- Pilleri çıkarıp şarj et: Seri paketteki hücreleri yuvasından çıkarıp ayrı bir 18650 şarj cihazında tek tek doldurabilirsin.
Pil voltajını ölçmek: gerilim bölücü bağlantısı
Pilin ne kadar dolu olduğunu bilmek için gerilimini ölçmen yeterlidir. Ancak 4,2 V'luk pil doğrudan ESP32'nin ya da Pico'nun analog pinine bağlanamaz, çünkü bu kartların ADC girişi en fazla 3,3 V kaldırır. Çözüm, iki eşit dirençten oluşan bir gerilim bölücüdür: 100 kΩ + 100 kΩ, 4,2 V'u 2,1 V'a indirir ve pilden yalnızca 21 µA çeker. Değerleri Gerilim Bölücü aracıyla hesaplayabilir, devrenin mantığını Gerilim Bölücü Devresi yazısında okuyabilirsin. Ölçüm noktası ile GND arasına 100 nF bir kondansatör eklemek, yüksek değerli dirençlerle yapılan okumayı belirgin şekilde sakinleştirir.
| Bağlantı | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| Üst direnç (100 kΩ) | OUT+ → orta nokta | OUT+ → orta nokta | OUT+ → orta nokta |
| Alt direnç (100 kΩ) | Orta nokta → GND | Orta nokta → GND | Orta nokta → GND |
| Orta nokta (ölçüm) | A0 | GPIO 34 (ADC1) | GP26 (ADC0) |
| 100 nF kondansatör | İsteğe bağlı | Orta nokta → GND | Orta nokta → GND |
| TP4056 OUT- | GND | GND | GND |
| ADC aralığı | 0–5 V, 10 bit | Yaklaşık 0–3,1 V, 12 bit | 0–3,3 V, 12 bit |
Arduino Uno'nun ADC'si 5 V referansla çalışır; bölücü sayesinde 4,2 V'luk pil A0'da 2,1 V olarak görünür ve 10 bitlik okuma 0–1023 arasında bir değer verir. Kart USB'den ya da boost modülünden beslendiğinde 5V pini tam 5,00 V olmayabilir; bu gerilimi multimetreyle ölçüp koddaki VREF değerine yazarsan doğruluk belirgin şekilde artar.
1// Arduino Uno: 18650 pil voltajı, A0'da 100k + 100k bölücü / battery voltage, 100k + 100k divider on A0
2const float VREF = 5.0; // 5V pinini multimetreyle ölçüp yaz / measure the 5V pin and enter it
3const float DIVIDER = 2.0; // bölücü oranı / divider ratio
4
5void setup() {
6 Serial.begin(9600);
7}
8
9void loop() {
10 long sum = 0;
11 for (int i = 0; i < 16; i++) { // 16 ölçümün ortalaması / average of 16 readings
12 sum += analogRead(A0); // 0-1023
13 delay(2);
14 }
15 float v = (sum / 16.0) * VREF / 1024.0 * DIVIDER;
16 Serial.print(F("Pil / Battery: "));
17 Serial.print(v, 2);
18 Serial.println(F(" V"));
19 if (v < 3.3) Serial.println(F("Pil zayif / Battery low"));
20 delay(1000);
21}ESP32 ile pil voltajı ölçme ve yüzde gösterme
ESP32'nin ADC'si tam doğrusal değildir ve kartlar arasında farklılık gösterir. Bu yüzden ham analogRead yerine, yongadaki fabrika kalibrasyonunu kullanıp doğrudan milivolt döndüren analogReadMilliVolts fonksiyonunu kullanmak daha doğrudur. Aşağıdaki kod 16 ölçümün ortalamasını alır, bölücü oranıyla çarpıp pil gerilimini bulur, tablodan yüzdeye çevirir ve pil 3,3 V'un altına düşerse ESP32'yi 10 dakikalığına derin uykuya gönderir.
1// TP4056 + 18650: ESP32 ile pil voltajı ve yüzdesi / battery voltage and percentage with ESP32
2const int BAT_PIN = 34; // ADC1 pini, Wi-Fi açıkken de çalışır / ADC1 pin, works with Wi-Fi on
3const float DIVIDER = 2.0; // 100k + 100k bölücü: pil / 2 / 100k + 100k divider: battery / 2
4const float LOW_BAT = 3.30; // bu değerin altında uykuya geç / go to sleep below this voltage
5
6// Yaklaşık gerilim-yüzde tablosu (dinlenen pil) / approximate voltage-percent table (resting cell)
7const float volts[] = {3.30, 3.60, 3.70, 3.80, 3.85, 3.90, 4.00, 4.10, 4.20};
8const int percent[] = { 0, 5, 12, 40, 55, 63, 78, 89, 100};
9const int POINTS = 9;
10
11float readBattery() {
12 uint32_t sum = 0;
13 for (int i = 0; i < 16; i++) { // 16 ölçümün ortalaması / average of 16 readings
14 sum += analogReadMilliVolts(BAT_PIN); // kalibre edilmiş mV / calibrated millivolts
15 delay(2);
16 }
17 return (sum / 16.0) * DIVIDER / 1000.0; // pil gerilimi (V) / battery voltage (V)
18}
19
20int toPercent(float v) {
21 if (v <= volts[0]) return 0;
22 if (v >= volts[POINTS - 1]) return 100;
23 for (int i = 1; i < POINTS; i++) {
24 if (v < volts[i]) { // iki nokta arasında doğrusal / linear between two points
25 float k = (v - volts[i - 1]) / (volts[i] - volts[i - 1]);
26 return (int)(percent[i - 1] + k * (percent[i] - percent[i - 1]));
27 }
28 }
29 return 100;
30}
31
32void setup() {
33 Serial.begin(115200);
34 analogReadResolution(12); // 0-4095 aralığı / 0-4095 range
35}
36
37void loop() {
38 float v = readBattery();
39 Serial.printf("Pil / Battery: %.2f V %%%d\n", v, toPercent(v));
40
41 if (v < LOW_BAT) { // yazılımla derin deşarj koruması / software deep-discharge guard
42 Serial.println("Pil zayif, uyku / Battery low, sleeping");
43 esp_sleep_enable_timer_wakeup(10ULL * 60 * 1000000); // 10 dakika sonra tekrar bak / check again in 10 min
44 esp_deep_sleep_start();
45 }
46 delay(5000);
47}| Pil gerilimi | Yaklaşık doluluk |
|---|---|
| 4,20 V | %100 |
| 4,10 V | %89 |
| 4,00 V | %78 |
| 3,90 V | %63 |
| 3,80 V | %40 |
| 3,70 V | %12 |
| 3,60 V | %5 |
| 3,30 V | %0 (projeyi durdur) |
Bu değerler dinlenen pil için geçerlidir. Wi-Fi yayını sırasında ESP32 anlık olarak yüksek akım çektiğinde pil gerilimi bir miktar düşer, şarj sırasında ise TP4056 onu yapay olarak yükseltir; bu yüzden en doğru ölçümü Wi-Fi'yi açmadan önce ve şarj takılı değilken alırsın. Uzun pil ömrü için okumayı birkaç dakikada bir yapıp arada ESP32 derin uyku modunu kullan. Şunu da unutma: USB-seri yongası ve güç LED'i bulunan DevKit kartları uykuda bile birkaç mA harcar; aylarca pille çalışacak projelerde düşük tüketimli kartlar tercih edilir.
Raspberry Pi Pico ile pil ölçümü (MicroPython)
Pico bu konuda şanslıdır: VSYS pini 1,8–5,5 V kabul eden dahili bir buck-boost regülatöre bağlıdır, yani tek bir 18650 ile boost modülü olmadan çalışır. TP4056'nın OUT+ ucunu bir Schottky diyot (1N5817) üzerinden VSYS'e (pin 39), OUT- ucunu GND'ye (pin 38) bağla; diyot, USB takılıyken Pico'nun 5 V'unun pile geri akmasını engeller. Pil gerilimini GP26'ya bağlı 100k + 100k bölücüyle ölçebilirsin. Normal Pico'da GP29 pini VSYS'in üçte birini zaten ölçer, ama bu değer diyot düşümü kadar düşük çıkar; Pico W'de ise bu pin Wi-Fi yongasıyla paylaşıldığı için harici bölücü daha güvenli bir yoldur.
1from machine import ADC
2import time
3
4adc = ADC(26) # GP26 = ADC0, 100k + 100k bölücü / divider
5CONV = 3.3 / 65535 # read_u16 değerini volta çevirir / converts read_u16 to volts
6DIVIDER = 2 # bölücü oranı / divider ratio
7
8while True:
9 total = 0
10 for _ in range(16): # 16 ölçümün ortalaması / average of 16 readings
11 total += adc.read_u16()
12 time.sleep_ms(2)
13 v = total / 16 * CONV * DIVIDER
14 print("Pil / Battery: {:.2f} V".format(v))
15 if v < 3.3:
16 print("Pil zayif / Battery low") # projeyi durdur / stop the project
17 time.sleep(2)read_u16 değeri 0–65535 aralığındadır; 3,3 / 65535 ile çarpınca pindeki gerilimi, bölücü oranı olan 2 ile çarpınca da pil gerilimini bulursun. Pico'yu ilk kez kullanıyorsan Raspberry Pi Pico Nedir? yazısı MicroPython kurulumunu adım adım anlatır.
TP4056 ve 18650 ile proje fikirleri
- Taşınabilir hava istasyonu: ESP32, sıcaklık sensörü ve OLED ekranı tek 18650 ile çalıştır, pil yüzdesini ekranın köşesinde göster.
- Güneş enerjili sensör: Açık devre gerilimi 8 V'u geçmeyen küçük bir 6 V güneş panelini IN+/IN- uçlarına bağla, ESP32'yi derin uykuyla günlerce çalıştır.
- SMS alarm kutusu: SIM800L 3,4–4,4 V istediği için doğrudan 18650 ile beslenir; hareket algılayınca SMS gönderir.
- Şarjlı gece lambası: LDR ile karanlıkta yanan ve USB-C'den şarj olan bir lamba yap.
- Robot araba: Paralel bağlı iki 18650'yi TP4056 ile şarj et, motorlar için gerilimi boost modülüyle yükselt; ayrıntılar Arduino Robot Araba Yapımı yazısında.
- Telefona pil uyarısı: Pil %20'nin altına inince ESP32 bir Telegram botu üzerinden sana mesaj göndersin.
Sık yapılan hatalar ve çözümleri
| Sorun | Olası sebep | Çözüm |
|---|---|---|
| OUT+ ile OUT- arasında gerilim yok | Koruma devresi kilitlendi (aşırı deşarj ya da pilin ilk takılışı) | USB'yi birkaç saniye tak; koruma sıfırlanır |
| Kırmızı LED saatlerce sönmüyor | Yük 100 mA'den fazla çekiyor ya da pil yorgun | Yük paylaşımı devresi kur, pili ayrı test et |
| İki LED de sönük | Girişte 4 V'tan az var: bozuk kablo ya da zayıf adaptör | Başka kablo ve en az 1 A'lik adaptör dene |
| USB-C kabloyla şarj olmuyor | Bazı ucuz modüllerde CC dirençleri eksik | USB-A'dan USB-C'ye kablo kullan |
| Modül çok ısınıyor | 1 A'de doğrusal çalışmanın normal kaybı (yaklaşık 1,4 W) | Rprog'u büyüterek akımı düşür, kartı havalandır |
| ESP32 sürekli yeniden başlıyor | Pil zayıf ya da AMS1117 düşümü nedeniyle brownout | Boost ile 5 V ver, pil gerilimini kontrol et |
| Ölçülen voltaj multimetreden farklı | Bölücü oranı ya da referans gerilimi yanlış | Multimetreyle karşılaştırıp koddaki katsayıyı düzelt |
TP4056, doğru bağlandığında projelerini kablodan kurtaran güvenilir ve ucuz bir parçadır: pili B+ ve B- uçlarına, devreyi OUT+ ve OUT- uçlarına bağla, akımı pile göre ayarla, 5 V için boost ekle ve pil voltajını yazılımla izle. BlueGrays uygulamasında ESP32 derin uyku ile pil tasarrufu, LCD'li dijital voltmetre ve sıcaklık kaydedici gibi pille çalışmaya uygun projeleri devre şemaları ve hazır kodlarıyla adım adım inceleyebilirsin.
Sıkça sorulan sorular
TP4056 modülünde B+ ile OUT+ arasındaki fark nedir?
B+ ve B- yalnızca pilin bağlandığı uçlardır; OUT+ ve OUT- ise koruma devresinden geçen çıkıştır ve devren buraya bağlanır. Korumalı modülde OUT+ aslında B+ ile aynı noktadır. Fark eksi taraftadır, çünkü OUT- ile B- arasında pili gerektiğinde ayıran MOSFET'ler bulunur.
TP4056 ile 18650 pil kaç saatte dolar?
Varsayılan 1 A akımla 2500–3000 mAh bir 18650 yaklaşık 3–3,5 saatte dolar. Son evrede akım giderek azaldığı için süre, kapasitenin akıma bölünmesiyle bulunan değerden yaklaşık yüzde 20 daha uzundur. Akımı düşürdüysen süre de aynı oranda uzar.
TP4056 şarj olurken aynı anda devreyi besler mi?
Evet, OUT uçlarına bağlı devre şarj sırasında da beslenir. Ancak devre sürekli 100 mA'den fazla çekerse şarj hiç bitmeyebilir ve pil sürekli 4,2 V'ta tutulur. Büyük yüklerde bir Schottky diyot ve P kanallı MOSFET ile yük paylaşımı devresi kurmak daha doğrudur.
TP4056 ile iki 18650 pil şarj edilebilir mi?
Paralel bağlı iki pil (3,7 V) sorunsuz şarj edilir, yalnızca süre uzar. Seri bağlı iki pil (7,4 V) ise TP4056 ile şarj edilemez, çünkü modül tek hücre için 4,2 V'ta durur. Seri paketler için 8,4 V'luk 2S şarj cihazı ve dengeleme yapan bir BMS kartı gerekir.
TP4056'da kırmızı ve mavi LED ne anlama gelir?
Kırmızı LED pilin şarj olduğunu, mavi ya da yeşil LED şarjın tamamlandığını gösterir. Pil takılı değilken mavi LED yanar ve kırmızı titrer. İkisi de sönükse modüle yeterli giriş gerilimi gelmiyordur.
ESP32 18650 pil ile doğrudan beslenebilir mi?
ESP32 yongası 3,3 V ile çalışır; 4,2 V'luk pil yongaya doğrudan bağlanmaz. DevKit kartlardaki AMS1117 regülatörü yaklaşık 1 V düşürdüğü için pil 3,7 V'a inince gerilim yetersiz kalır. En kolay yol MT3608 ile 5 V üretip VIN pinine vermek ya da düşük kayıplı bir 3,3 V regülatör kullanmaktır.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
ESP32 ile LED Yakma
ESP32 ile temel GPIO çıkışı kullanımını öğretir. Bir LED'i dijital pinden açıp kapatarak yanıp sönme efekti elde ederiz. Arduino UNO'daki klasik blink projesinin ESP32 versiyonu; Arduino ortamındaki temel blink komutları aynıdır, ancak ESP32'nin pin yerleşimi ve 3,3 V GPIO seviyeleri Arduino UNO'dan farklıdır.

ESP32 LDR Modülü ile Işık Şiddeti Okuma
LDR modülünün ham ADC değerini ve karanlık/aydınlık referanslarına göre hesaplanan göreli ışık yüzdesini Serial Monitor'da gerçek zamanlı izleme. Bu yüzde lux ölçümü değildir. Modülün kalibrasyon mantığını öğretir. Proje 10'un öncesinde yapılması ideal; çünkü eşik değerini belirlemek için kullanılır.

ESP32 Deep Sleep — Pil Tasarrufu (OLED + RTC RAM Sayaç)
ESP32'nin Deep Sleep modu, CPU ve çoğu çevre birimini kapatarak akım tüketimini ~10µA seviyesine düşürür ve pille çalışan IoT cihazları için kritik öneme sahiptir. Bu projede üç farklı uyandırma kaynağını kullanıyoruz: zamanlayıcı (timer, 15sn), harici pin (EXT0 — buton GPIO 33) ve touch (T0/GPIO 4). RTC_DATA_ATTR ile işaretlenen değişkenler deep sleep boyunca korunur — boot sayacı, timer wake sayacı ve buton wake sayacı kalıcı olarak izlenir. SSD1306 OLED ekranda her uyanışta wake reason, say

LCD Ekran ile Dijital Voltmetre
Pilin ya da adaptörün ne kadar gerilim verdiğini kendi yaptığın ölçü aletiyle öğren. İki dirençten oluşan bir bölücü yüksek gerilimi kartın okuyabileceği seviyeye indirir, Arduino da gerçek değeri hes

ESP32 Sıcaklık Loglayıcı (DHT22 + DS1307 RTC + microSD + OLED)
ESP32 ile zamanlı sıcaklık ve nem kayıt sistemi kur! Bu projede DHT22 sensörü ile dakikada bir sıcaklık/nem okuyup DS1307 RTC modülünden aldığın gerçek zaman etiketiyle microSD karta CSV formatında kaydediyoruz. OLED ekranda büyük font ile son sıcaklık değeri, nem yüzdesi, timestamp ve toplam kayıt sayısı canlı gösterilir. SD kart üzerindeki /temp_log.csv dosyası Excel/Google Sheets/Python pandas ile açılıp analiz edilebilir — sera monitörü, ev/oda sıcaklık takibi, laboratuvar veri toplama,

ESP32 HTTPClient + Hava Durumu API (SSD1306 OLED Ekranlı)
Bu projede ESP32 ile internet üzerinden hava durumu API'sine (wttr.in) HTTPClient.h kullanarak REST API çağrısı yapıyoruz. Bir önceki I2C LCD versiyonundan farklı olarak burada SSD1306 OLED (128×64) ekran kullanıyoruz — büyük font, vector ikonlar ve tek ekranda zengin görsel sunum mümkün oluyor. Hava durumu için 7 farklı vector ikon (güneşli, parçalı bulutlu, bulutlu, yağmurlu, karlı, fırtınalı, sisli) runtime'da çiziliyor (bitmap dosyası gerektirmez). Sıcaklık 3x büyük fontla ortada, hava dur

ESP32 Hareket Alarm Sistemi (PIR + Buzzer + LED + Telegram)
PIR sensörü hareket algıladığında buzzer ve LED'i aktif eden, aynı anda Telegram üzerinden sahibine anlık bildirim gönderen akıllı bir güvenlik alarm sistemidir. Tekrarlayan alarmların sıklığını sınırlamak için 30 saniyelik cooldown (bekleme süresi) mekanizması vardır; bu mekanizma PIR sensörünün yanlış algılamalarını doğrulamaz veya ortadan kaldırmaz. Ev güvenliği, garaj izleme, depo veya çalışma odası gibi alanlarda kullanılabilir. Telegram entegrasyonu sayesinde nerede olursanız olun anında h

L298N ile Bluetooth Kontrollü Araba
Telefonunu kumandaya çevirip kendi robot arabanı sür. Arduino, Bluetooth modülü üzerinden telefondaki bir kumanda uygulamasından gelen komutları alır ve motor sürücüyle tekerlekleri döndürür; araba il
Diğer yazılar
BlueGrays uygulaması
Bu devreyi telefonunda adım adım kur
Devre şeması, kod ve parça listesi tek ekranda. 200'den fazla Arduino, ESP32 ve Pico projesi seni bekliyor.
Telefonunla tara
Kamerayı koda tut; telefonunun uygulama mağazası açılır.
ya da mağazada aç

