Arduino Pil ile Çalıştırma: 9V, AA, 18650 ve Doğru Güç Girişi
Arduino pil ile nasıl çalıştırılır? USB, DC jak (7–12 V), Vin ve 5V pini farkı, 9V, AA ve 18650 seçenekleri, servo için ayrı besleme ve pil ömrü hesabı.
Arduino'yu pil ile çalıştırmak, projeni bilgisayarın USB kablosundan kurtarıp bir robot arabaya, bahçedeki bir sensöre ya da cebinde taşıyacağın bir cihaza dönüştürmenin ilk adımıdır. Kısa cevap şu: Arduino Uno'yu pille beslemenin en güvenli yolu, 7–12 V arası bir pil paketini (6×AA ya da seri bağlı iki 18650) DC jakına veya Vin pinine bağlamak ya da bir powerbank'i USB girişine takmaktır. 5V pini ise yalnızca ölçülüp ayarlanmış, temiz bir 5 V kaynağı için kullanılmalıdır; çünkü bu pin karttaki regülatörü ve korumaları tamamen atlar.
Yanlış besleme, yeni başlayanların en sık yaşadığı gizemli sorunların kaynağıdır: servo dönünce kendini resetleyen kart, birkaç saatte biten 9V pil, birkaç saniye sonra kapanan powerbank ya da elle tutulamayacak kadar ısınan regülatör. Bu rehberde Arduino'ya güç verebileceğin her girişi, hangi pilin nereye bağlanacağını, motorlar için neden ayrı kaynak gerektiğini, akım ve çalışma süresinin nasıl hesaplandığını öğreneceksin. Sonunda ESP32 ve Raspberry Pi Pico'yu pille beslemenin farklarına da bakacağız.

Arduino'ya güç vermenin 5 yolu
Arduino Uno'nun içinde iki ayrı güç yolu vardır. USB'den gelen 5 V, 500 mA'lik kendiliğinden sıfırlanan bir sigortadan (polyfuse) ve küçük bir MOSFET anahtardan geçerek doğrudan kartın 5 V hattına ulaşır. DC jaktan gelen gerilim ise önce ters bağlamaya karşı koruyan bir diyottan geçer, bu noktada Vin pinine çıkar ve 1117 ailesinden bir LDO regülatörle 5 V'a düşürülür. 3,3 V ise bu 5 V hattından ikinci, küçük bir regülatörle elde edilir. Kartta bir karşılaştırıcı (comparator) Vin'i izler: Vin yaklaşık 6,6 V'u geçince USB beslemesini otomatik olarak ayırır, böylece adaptör ve USB aynı anda takılıyken kaynaklar birbirine karışmaz.
| Giriş | Gerilim | Koruma | Ne zaman kullanılır? |
|---|---|---|---|
| USB (B tipi) | 5 V | 500 mA polyfuse sigorta | Masada geliştirme, telefon şarj adaptörü, powerbank |
| DC jak (5,5×2,1 mm, orta uç artı) | 7–12 V önerilir (sınır 6–20 V) | Ters polarite diyotu + 5 V regülatör | Adaptör, 6×AA, 2S Li-ion paket |
| Vin pini | 7–12 V | Regülatör var, ters polarite koruması yok | Pil kutusu kabloları, shield'ler |
| 5V pini | Ölçülmüş 4,8–5,2 V | Hiçbir koruma yok | Ayarlanmış buck/boost çıkışı, regüleli 5 V kaynak |
| 3.3V pini | Yalnız çıkış | Yok | 50 mA'e kadar 3,3 V sensörler |
USB ile besleme: 500 mA sınırı
USB, Arduino'yu beslemenin en kolay ve en korumalı yoludur. Bilgisayarın USB 2.0 portu en fazla 500 mA verir; Uno'daki polyfuse da toplam akım bu değeri aşınca ısınıp devreyi keser, soğuyunca kendiliğinden yeniden bağlar. Kartın kendisi yaklaşık 45–50 mA harcadığı için sensörlerin, LED'lerin ve modüllerin paylaşacağı 400 mA civarında bir pay kalır. Telefon şarj adaptörü ya da powerbank da aynı USB girişinden kullanılabilir; tek fark, ince ve uzun kablolarda gerilimin 4,6 V'a kadar düşebilmesidir. Kart USB'den beslenirken 5V pininden çektiğin her miliamper bu 500 mA bütçesinden düşer. Bu yüzden bir servoyu ya da LED şeridini USB beslemesine yüklemek sigortayı attırır, bilgisayarın portu da kendini koruyup bağlantıyı kesebilir.
DC jak ve Vin pini: neden 7–12 V?
Karttaki 5 V regülatör doğrusal (lineer) bir LDO'dur ve düzgün çalışmak için girişinde çıkıştan yaklaşık 1–1,2 V fazla gerilim ister. Buna jaktaki koruma diyotunun 0,7–1 V'luk düşümü de eklenince, 5 V'un sağlam kalması için jaka en az 7 V vermen gerekir. 6 V'luk bir kaynakta 5 V hattı 4,2–4,5 V'a iner; kart çalışıyor gibi görünse de analog ölçümler kayar ve modüller tuhaf davranır. Üst sınırda ise sorun ısıdır: lineer regülatör fazla gerilimi ısıya çevirir. Harcanan güç P = (Vin − 5 V) × I formülüyle bulunur. Kural olarak regülatöre 1 W'tan fazla ısı yükleme; küçük SOT-223 kılıf bu noktada parmakla tutulamayacak kadar ısınır ve sonunda kendini kapatır.
| Vin gerilimi | 100 mA yükte ısı | 300 mA yükte ısı | Yorum |
|---|---|---|---|
| 7 V | 0,2 W | 0,6 W | En verimli bölge |
| 9 V | 0,4 W | 1,2 W | 300 mA'de sınırda |
| 12 V | 0,7 W | 2,1 W | Yalnız hafif yükler |
| 20 V | 1,5 W | 4,5 W | Önerilmez, regülatör aşırı ısınır |
Vin pini hem giriş hem çıkıştır. Kartı jaktan beslediğinde Vin pininde jak geriliminin yaklaşık 0,7–1 V eksiği bulunur; buradan 9–12 V isteyen küçük bir yükü besleyebilirsin. Ancak akım yolunda 1 A'lik koruma diyotu olduğundan motor gibi büyük yükleri Vin'den değil, doğrudan kaynaktan beslemek gerekir. Pil kutusunu Vin pinine bağladığında ise o koruma diyotu devre dışı kalır: regülatör yine çalışır ama artı ile eksiyi ters bağlarsan kartı koruyacak hiçbir şey yoktur. Yeni nesil Uno R4 Minima ve R4 WiFi kartlarında ise jak ve Vin girişi 6–24 V kabul eder ve lineer regülatör yerine anahtarlamalı (buck) bir dönüştürücü kullanılır; bu yüzden 12 V'ta bile ısınma sorunu yaşanmaz. Ayrıntılar için Arduino Uno R4 yazısına bakabilirsin.
5V pini: regülatörü atlamak ne zaman güvenli?
5V pini, ATmega328P'nin ve kart üzerindeki diğer yongaların besleme hattına doğrudan bağlıdır. Bu pinden güç verdiğinde regülatörü, ters polarite diyotunu ve USB sigortasını atlamış olursun. Arduino'nun kendi belgeleri de bu yüzden 5V ve 3.3V pinlerinden beslemeyi önermez. Yine de doğru yapıldığında avantajlıdır: regülatördeki gerilim düşümü ve ısı kaybı olmadığı için pil daha uzun gider ve modüllere daha fazla akım verebilirsin. Şart tek: kaynağın regüleli ve ölçülmüş olması. ATmega328P en fazla 5,5 V ile çalışmak üzere tasarlanmıştır, 6 V ise mutlak sınırıdır; bunu aşan kısa bir an bile yongayı kalıcı olarak bozabilir.
- Önce ölç: Kaynağı Arduino'ya bağlamadan önce çıkışını multimetreyle ölç; 4,8–5,2 V aralığında olmalı.
- Ham pil bağlama: 4×AA alkalin pil taze iken 6,4 V'a çıkar ve sınırı aşar. 5V pinine yalnızca bir regülatörün, buck ya da boost modülünün çıkışını bağla.
- USB ile aynı anda dikkat: 5V pininden beslerken USB'yi de takarsan iki 5 V kaynak kart üzerinden birbirine bağlanır; kod yüklerken harici beslemeyi ayırmak en güvenlisidir.
- Kondansatör ekle: Harici 5 V hattına, karta yakın bir yere 100–470 µF elektrolitik kondansatör koymak ani akım çekişlerindeki düşüşleri yumuşatır (kondansatör nedir?).
- Hazır çözümler: 7805'li regülatör modülleri (7805 voltaj regülatörü), 5,0 V'a ayarlanmış bir LM2596 ya da breadboard için MB102 güç modülü temiz bir 5 V sağlar.
3.3V pini: ne kadar akım çekebilirsin?
Uno'nun 3.3V pini bir besleme girişi değil, küçük bir regülatörün çıkışıdır ve resmi sınırı 50 mA'dir. BME280, MPU6050 ya da RC522 RFID okuyucu gibi onlarca miliamperi geçmeyen modüller için yeterlidir. Ancak tepe akımı yüksek modüller bu pini zorlar: antenli nRF24L01+PA+LNA gönderim sırasında 100 mA'in üstüne çıkar, ESP-01 Wi-Fi modülü yüzlerce miliamperlik tepe akımları çeker, SIM800L ise 2 A'e varan anlık akımlar ister. nRF24L01+PA+LNA ve ESP-01 için 5 V hattından beslenen ayrı bir AMS1117 3,3 V regülatör modülü kullan. SIM800L ise 3,3 V ile değil 3,4–4,4 V ile çalışır ve AMS1117'nin 1 A sınırını aşar; onu tek bir Li-ion hücreden ya da 4,0 V'a ayarlanmış, en az 2 A verebilen bir buck modülünden besle. Arduino Nano ve klonlarında 3.3V pini çoğu zaman USB-seri yongasının içinden beslenir ve Uno'dakinden de zayıftır; orada da ayrı bir regülatör daha güvenlidir. Kablosuz modüllerdeki besleme sorunlarının ayrıntısını nRF24L01 rehberinde bulabilirsin.

Pil seçenekleri: 9V, AA, 18650 ve powerbank
| Pil | Gerilim | Kapasite | Nereye bağlanır? | Uno ile süre (~50 mA) |
|---|---|---|---|---|
| 9V alkalin | 9 V (yükte hızla 7 V'a iner) | 400–600 mAh | DC jak / Vin | 6–8 saat |
| 6×AA alkalin | 9 V | 2000–2500 mAh | DC jak / Vin | ~30 saat |
| 4×AA alkalin | 6 V (taze 6,4 V) | 2000–2500 mAh | Önerilmez | Jak için düşük, 5V pini için yüksek |
| 3×AA alkalin | 4,5 V | 2000–2500 mAh | 5V pini | ~1 gün (sona doğru kararsız) |
| 1×18650 + 5 V boost | 3,0–4,2 V → 5 V | 2000–3500 mAh | USB ya da 5V pini | ~30 saat (3000 mAh) |
| 2×18650 seri (2S) | 7,4 V (6,0–8,4 V) | 2000–3500 mAh | DC jak / Vin | ~2 gün (3000 mAh) |
| 10000 mAh powerbank | 5 V (USB) | ~6000 mAh (5 V'ta) | USB | ~5 gün (kapanmazsa) |
Klasik 9V pil, jaka takılan klipsli kablosu yüzünden en çok önerilen ama en verimsiz seçenektir. İçinde altı küçük hücre bulunduğu için kapasitesi yalnızca 400–600 mAh civarındadır ve iç direnci yüksektir; Uno'nun 50 mA'ine bir servo ya da birkaç LED eklendiğinde gerilim kısa sürede 7 V'un altına düşer ve kart resetlenmeye başlar. Lineer regülatörlü bir kartta pilin mAh değeri doğrudan çalışma süresini belirler, fazladan voltlar ise ısıya gider. Bu yüzden aynı 9 V'u veren 6×AA kutusu, 9V pile göre dört kat kadar uzun dayanır. Kapasite birimlerinin mantığını mAh ne demek? yazısında ayrıntılı anlattık.
AA kalem piller ucuzdur ve her yerde bulunur, ama pil sayısını doğru seçmek gerekir. En sık yapılan hata 4×AA kullanmaktır: 6 V jak için yetersiz kalır, çünkü diyot ve regülatör düşümünden sonra 5 V hattına ancak 4,2 V civarı ulaşır; aynı paketi 5V pinine bağlamak ise taze pillerde 6,4 V demektir ve sınırı aşar. Doğru kombinasyonlar şunlardır: 6×AA (9 V) paketi DC jakına, 3×AA (4,5 V) paketi ise doğrudan 5V pinine. 3×AA ile 16 MHz'te çalışan bir Uno, pil başına gerilim 1,25 V'un altına inince kararsızlaşmaya başlar; bu yüzden kapasitenin tamamını kullanamazsın. Şarjlı NiMH piller hücre başına 1,2 V verdiği için 4×NiMH (4,8 V) de 5V pini için yaygın bir seçimdir, ancak şarjdan yeni çıkmış hücreler ilk dakikalarda 5,5 V'u aşabilir.

18650 Li-ion pil ve boost dönüştürücü
18650, dizüstü bilgisayar bataryalarında ve powerbank'lerde kullanılan, 18 mm çapında ve 65 mm uzunluğunda şarj edilebilir bir lityum iyon hücredir. Nominal gerilimi 3,7 V'tur; tam doluyken 4,2 V, boşken yaklaşık 3,0 V ölçülür. Gerçek kapasitesi 2000–3500 mAh arasındadır; üzerinde 6800 ya da 9900 mAh yazan hücreler neredeyse her zaman sahtedir. Tek bir 18650 Arduino için iki şekilde kullanılır: boost dönüştürücü (ör. MT3608 modülü ya da hazır 18650 powerbank kartı) ile 3,7 V'u 5 V'a yükseltip USB'ye veya 5V pinine vermek, ya da iki hücreyi seri bağlayıp 2S (7,4 V) paket olarak DC jakına takmak. İkinci yol Uno için en dengeli seçenektir: 8,4 V'tan başlayan gerilim, hücre başına 3,5 V'a (toplam 7 V) inene kadar regülatörün rahat çalıştığı aralıkta kalır. Boost kullanırken pilden çekilen akımın çıkıştakinden fazla olduğunu unutma: 5 V'ta 200 mA isteyen bir devre, yüzde 88 verimle 3,7 V'luk hücreden yaklaşık 307 mA çeker.

- Koruma devresi şart: Li-ion hücreyi 3,0 V'un altına boşaltmak ömrünü kısaltır ve tehlikeli olabilir. Korumalı hücre ya da bir koruma kartı (BMS) kullan.
- Tek hücre için TP4056: TP4056 modülü yalnızca tek bir hücreyi (1S) 4,2 V'a şarj eder. Seri bağlı 2S paketi TP4056 ile asla şarj etme; 2S BMS'li bir şarj devresi ya da dengeleme şarj cihazı kullan. Bağlantı ayrıntıları TP4056 şarj modülü yazısında.
- Kısa devreye dikkat: 18650 hücre kısa devrede onlarca amper verebilir; kabloları çıplak bırakma, pil hattına sigorta ve anahtar ekle.
- Boost ayarı: MT3608 gibi ayarlı modülleri çıkışı 5,0 V'a ayarlamadan Arduino'ya bağlama.
- Hücreleri karıştırma: Seri pakette aynı marka, aynı kapasite ve aynı doluluktaki hücreleri kullan.

Powerbank neden kendiliğinden kapanıyor?
Powerbank; içinde lityum hücre, şarj devresi, koruma ve 5 V boost barındıran hazır bir paket olduğu için Arduino'yu pille çalıştırmanın en zahmetsiz yoludur: USB kablosunu takman yeterlidir. Ancak çoğu powerbank, telefon dolunca kendini kapatmak için çıkış akımını izler ve akım 50–100 mA'in altına düştüğünde 10–60 saniye içinde çıkışı keser. 20 mA çeken bir Nano ya da 50 mA çeken bir Uno bu eşiğin altında kaldığı için kart bir süre çalışıp sessizce kapanır. Çözüm için iki yol var: düşük akım modu (bazı modellerde düğmeye iki kez basınca açılır) olan bir powerbank seçmek ya da Arduino'ya belirli aralıklarla kısa bir yük çektirmek. İkinci yöntem için bir NPN transistörün (BC337 ya da 2N2222) kolektörüne 5V hattından 47 Ω, 1 W bir direnç bağla, emiteri GND'ye, beyzi ise 1 kΩ dirençle D7 pinine bağla. Transistör iletime geçtiğinde direnç yaklaşık 5 V / 47 Ω ≈ 106 mA çeker ve powerbank yük olduğunu anlar. Değerleri Ohm kanunu hesaplayıcısı ile kendin de doğrulayabilirsin.
1// Powerbank uyanık tutma / powerbank keep-alive
2// D7 -> 1 kΩ -> NPN beyzi, kolektör -> 47 Ω -> 5V / D7 -> 1 kΩ -> NPN base, collector -> 47 Ω -> 5V
3const int LOAD_PIN = 7;
4const unsigned long PERIOD_MS = 8000; // her 8 saniyede bir / every 8 seconds
5const unsigned long PULSE_MS = 300; // 300 ms yük / 300 ms of load
6
7unsigned long pulseStart = 0;
8bool loadOn = false;
9
10void setup() {
11 pinMode(LOAD_PIN, OUTPUT);
12 digitalWrite(LOAD_PIN, LOW);
13}
14
15void loop() {
16 unsigned long now = millis();
17 if (!loadOn && now - pulseStart >= PERIOD_MS) {
18 digitalWrite(LOAD_PIN, HIGH); // ~106 mA çek / draw ~106 mA
19 loadOn = true;
20 pulseStart = now;
21 }
22 if (loadOn && now - pulseStart >= PULSE_MS) {
23 digitalWrite(LOAD_PIN, LOW); // yükü kapat / switch the load off
24 loadOn = false;
25 }
26 // projenin kodu burada, delay() kullanmadan / your project code here, without delay()
27}Kod delay() yerine millis() ile çalıştığı için projenin geri kalanını durdurmaz; bu yaklaşımı millis() ve delay() yazısında ayrıntılı anlattık. Her 8 saniyede 300 ms boyunca 106 mA çekmek, ortalamada yalnızca yaklaşık 4 mA ek tüketim demektir. Powerbank'in hâlâ kapanıyorsa periyodu 5 saniyeye indir ya da darbe süresini 500 ms'ye çıkar; her model farklı bir eşik ve bekleme süresi kullanır.
Motor ve servo için ayrı besleme, ortak GND
Motorlar ve servolar, Arduino'yu pille beslerken en çok sorun çıkaran yüklerdir. Bir servo harekete başladığı anda yüzlerce miliamperlik bir akım darbesi çeker; DC motorlar kalkışta ve sıkıştıklarında normal akımlarının birkaç katını ister. Bu darbe 5 V hattını bir anlığına çökertebilir; gerilim yeterince düşerse ATmega328P'nin düşük gerilim koruması (brown-out) devreye girer ve kart kendini resetler. Ayrıca motorların fırça gürültüsü sensör okumalarını bozar. Kural basit: Arduino'nun 5V pininden en fazla bir tane küçük servo besle, geri kalan her motoru ayrı bir kaynaktan çalıştır. Servoların ve DC motorların çalışma mantığı için servo motor ve L298N ile DC motor kontrolü yazılarına bakabilirsin.
| Yük | Normal akım | Tepe akım | Önerilen kaynak |
|---|---|---|---|
| SG90 mikro servo | 100–250 mA | 0,5 A ve üzeri (kilitlenince) | Tek tane: Arduino 5V; daha fazlası: ayrı 5 V |
| MG996R servo | 0,5–0,9 A | 2,5 A'e kadar | Ayrı 5–6 V, servo başına en az 2–3 A |
| TT redüktörlü DC motor | 70–250 mA | ~1 A (kalkış, sıkışma) | L298N ya da L9110S + ayrı 6–9 V paket |
| 28BYJ-48 step motor | ~240 mA | ~240 mA | ULN2003 kartına ayrı 5 V |
| WS2812B LED (her biri) | ~20 mA (orta parlaklık) | 60 mA (tam beyaz) | 30 LED'in üstünde ayrı 5 V |
| Mini dalgıç su pompası | 100–200 mA | Kalkışta birkaç katı | Röle ya da MOSFET + ayrı kaynak |
- Motorlar için ayrı bir kaynak seç: servolar için 5–6 V (4×AA NiMH ya da 5–6 V'a ayarlanmış bir LM2596), DC motorlar için motor gerilimine uygun bir paket (ör. 2S 18650).
- Kaynağın artısını yalnızca servoların kırmızı kablosuna ya da motor sürücünün güç girişine bağla; Arduino'nun 5V pinine bağlama.
- Arduino'yu kendi girişinden besle: aynı 2S paketi DC jakına da bağlayabilirsin, yeter ki motor akımı Arduino'nun regülatöründen geçmesin.
- Kaynağın eksisini (GND) Arduino'nun GND pinine bağla. Ortak GND olmadan kontrol sinyali çalışmaz.
- Servonun turuncu ya da sarı sinyal kablosunu Arduino'nun bir dijital pinine (ör. D9) bağla; Servo kütüphanesi PWM işareti olmayan pinlerde de çalışır.
- Servo besleme hattına, servolara yakın bir yere 470–1000 µF elektrolitik kondansatör ekle; kutuplarına dikkat et.
- L298N kullanıyorsan motor beslemesini 12V klemensine ver; besleme 12 V'u geçiyorsa 5V-EN jumper'ını çıkar ve Arduino'yu kendi kaynağından besle.

Akım ve çalışma süresi nasıl hesaplanır?
Pille çalışan bir projede asıl soru "ne kadar dayanır?" sorusudur. Temel formül basittir: Çalışma süresi (saat) = Pil kapasitesi (mAh) × 0,85 / Ortalama akım (mA). Buradaki 0,85 katsayısı, pilin etiketindeki kapasitenin tamamını hiçbir zaman veremeyeceğini hesaba katar: yüksek akımda ve soğukta kapasite düşer, devre pil tamamen bitmeden durur, dönüştürücüler de kayıp yaratır. 9V pil gibi gerilimi erken düşen pillerde 0,7 kullanmak daha gerçekçidir. Projen zamanının çoğunu uykuda geçiriyorsa önce ortalama akımı bul: Ortalama akım = (Aktif akım × aktif süre + Uyku akımı × uyku süresi) / toplam süre. Bu hesapları elle yapmak yerine batarya ömrü hesaplayıcısını kullanabilirsin; kapasiteyi, uyanık ve uyku akımını, uyanma aralığını girdiğinde süreyi saat, gün ya da ay olarak verir.
| Senaryo | Ortalama akım | Pil | Yaklaşık süre |
|---|---|---|---|
| Uno + I2C LCD, sürekli açık | ~75 mA | 2S 18650 (3000 mAh) | ~34 saat |
| Nano + sensör + powerbank uyanık tutma | ~29 mA (25 + 4) | 10000 mAh powerbank (~6000 mAh, 5 V) | ~7 gün |
| ESP32 modül: 10 dakikada bir 5 sn uyanık (120 mA), uykuda 150 µA | ~1,15 mA | 18650 (3000 mAh) | ~3 ay |
| Aynı kod, uykuda 5 mA çeken geliştirme kartı | ~6 mA | 18650 (3000 mAh) | ~18 gün |
| Pico + MicroPython, sürekli açık | ~25 mA | 3×AA NiMH (2000 mAh) | ~68 saat |
Tahmin yerine ölçüm her zaman daha iyidir. Multimetreyi akım (mA) kademesine alıp pil ile devre arasına seri bağladığında gerçek tüketimi görürsün; nasıl yapıldığını multimetre kullanımı yazısında anlattık. Ölçtüğün değer beklediğinden yüksekse önce kartın kendi tüketimine bak: Uno'da USB-seri yonga (ATmega16U2), güç LED'i ve regülatör, ATmega328P uykudayken bile 30 mA'in üzerinde akım çeker. Uzun pil ömrü isteyen projelerde bu yüzden Arduino Pro Mini gibi USB yongası olmayan kartlar tercih edilir; güç LED'i ve regülatörü sökülmüş bir Pro Mini uyku modunda mikroamper seviyesine iner.
Adım adım: projeni pille çalışır hale getir
- Projeyi USB'den çalıştırırken multimetreyle ortalama ve tepe akımını ölç; servo ya da motor hareket ederken de ölç.
- Motor, servo ve LED şeridi gibi yüksek akımlı yükleri ayır ve bunlar için ayrı bir kaynak planla.
- Kartın girişini seç: Uno için 7–12 V'luk paket DC jakına, regüleli 5 V USB'ye ya da 5V pinine, Pico için 1,8–5,5 V VSYS'e.
- İstediğin çalışma süresine göre kapasiteyi hesapla ya da batarya ömrü hesaplayıcısını kullan.
- Pilin artı hattına bir açma/kapama anahtarı ekle; Li-ion paketlerde koruma kartı (BMS) olduğundan emin ol.
- Kodu USB ile yükle, sonra USB'yi çıkarıp pille test et; servo hareket ederken 5V pinindeki gerilimi multimetreyle kontrol et.
- Pil gerilimini kodla izle ve belirli bir değerin altına inince uyarı ver (aşağıdaki kod).
Pil gerilimini Arduino ile ölçmek
Pilin ne zaman biteceğini tahmin etmek yerine gerilimini ölçebilirsin. Arduino'nun analog girişleri en fazla 5 V okuyabildiği için 8,4 V'a çıkan bir 2S paketi doğrudan A0'a bağlayamazsın; bir gerilim bölücü gerekir. 100 kΩ ve 10 kΩ'luk iki direnç gerilimi 11'e böler: 8,4 V, A0'da yaklaşık 0,76 V olur. Pil zayıfladıkça kartın 5 V hattı da kayabileceği için ölçümü, besleme geriliminden bağımsız olan dahili 1,1 V referansla yapmak daha doğrudur. Direnç değerlerini gerilim bölücü hesaplayıcısı ile kendi paketine göre seçebilir, konunun ayrıntısını gerilim bölücü yazısında okuyabilirsin.
1// 2S Li-ion paket gerilimini ölçme / measuring a 2S Li-ion pack voltage
2// Pil+ -> 100k -> A0 -> 10k -> GND / pack+ -> 100k -> A0 -> 10k -> GND
3const int BAT_PIN = A0;
4const int LED_PIN = 13; // pil zayıf uyarısı / low-battery warning
5const float R1 = 100000.0; // üst direnç / top resistor
6const float R2 = 10000.0; // alt direnç / bottom resistor
7const float VREF = 1.1; // dahili referans, multimetreyle düzelt / internal reference, calibrate with a multimeter
8const float LOW_V = 6.6; // 2S için alt sınır (3,3 V/hücre) / low limit for 2S (3.3 V per cell)
9
10void setup() {
11 Serial.begin(9600);
12 pinMode(LED_PIN, OUTPUT);
13 analogReference(INTERNAL); // 1,1 V referans (Uno/Nano) / 1.1 V reference (Uno/Nano)
14 analogRead(BAT_PIN); // ilk ölçümü at / discard the first reading
15 delay(10);
16}
17
18void loop() {
19 long sum = 0;
20 for (int i = 0; i < 16; i++) { // 16 ölçümün ortalaması / average of 16 readings
21 sum += analogRead(BAT_PIN);
22 delay(2);
23 }
24 float pinV = (sum / 16.0) * VREF / 1024.0;
25 float batV = pinV * (R1 + R2) / R2;
26
27 Serial.print("Pil / Battery: ");
28 Serial.print(batV, 2);
29 Serial.println(" V");
30
31 digitalWrite(LED_PIN, batV < LOW_V ? HIGH : LOW); // zayıfsa LED yanar / LED on when low
32 delay(2000);
33}Bölücünün üst ucunu pilin artısına, açma/kapama anahtarından sonra bağla; böylece cihaz kapalıyken bölücü pili boşaltmaz. Dahili 1,1 V referans yongadan yongaya yaklaşık ±%10 farklı olabilir: multimetreyle ölçtüğün pil gerilimini Seri Monitör'dekiyle karşılaştır ve VREF değerini (ör. 1,08) buna göre düzelt. Bölücü sürekli yaklaşık 76 µA çeker; bu, pil ömrüne etkisi yok denecek kadar küçüktür. Kod Uno ve Nano içindir; Mega'da referansın adı INTERNAL1V1'dir. 6,6 V eşiği hücre başına 3,3 V'a karşılık gelir; bu noktada hücreler neredeyse boşalmıştır ve hücre başına 3,0 V'un altına inmek onlara zarar verir. Paket DC jakına bağlıysa 5 V hattı yaklaşık 7 V'ta düşmeye başladığı için LOW_V değerini 7,0 yapmak da mantıklıdır.
ESP32'yi pille beslemek
ESP32 geliştirme kartları 3,3 V ile çalışır ve üç şekilde beslenebilir: USB girişi, 5V (bazı kartlarda VIN) pini ya da doğrudan 3V3 pini. Espressif bu yolların aynı anda kullanılmamasını, yalnızca birinin seçilmesini açıkça ister. 5V pinine verilen gerilim kart üzerindeki 3,3 V LDO regülatörden (çoğu klonda AMS1117) geçer; 3V3 pinine ise yalnızca 3,0–3,6 V arası regüleli gerilim verilebilir. ESP32, Wi-Fi ile veri gönderirken anlık olarak 240 mA'e kadar akım çeker; bu yüzden en az 500 mA verebilen bir kaynak gerekir, aksi halde "Brownout detector was triggered" hatasıyla resetlenir (ayrıntılar brownout hatası yazısında). Tek bir 18650'yi doğrudan 3V3 pinine bağlama: tam doluyken 4,2 V ile sınırı aşar. 5V pinine bağlamak da iyi değildir, çünkü AMS1117 yaklaşık 1,1 V düşüm ister ve hücre gerilimi düştükçe çıkış 3,3 V'un altına iner. Doğru yollar: 18650 ve 5 V boost ile 5V pini, düşük düşümlü ve en az 500 mA verebilen bir 3,3 V regülatör ya da üzerinde Li-ion şarj devresi bulunan bir ESP32 kartı. Pil ömrünü asıl belirleyen ise ESP32'nin zamanının çoğunu derin uykuda (deep sleep) geçirmesidir; yonga bu modda yaklaşık 10 µA çeker, ama geliştirme kartlarındaki USB-seri yonga, LED ve regülatör bu değeri miliamper düzeyine çıkarabilir. Yukarıdaki tabloda 3 ay ile 18 gün arasındaki fark buradan gelir; ayrıntılar için ESP32 deep sleep yazısına bakabilirsin.
1// ESP32: 18650 gerilimini ölç, sonra derin uykuya geç / measure the 18650, then deep sleep
2// Pil+ -> 100k -> GPIO34 -> 100k -> GND / cell+ -> 100k -> GPIO34 -> 100k -> GND
3const int BAT_PIN = 34; // yalnız giriş, ADC1 / input-only, ADC1
4const uint64_t SLEEP_US = 60ULL * 1000000ULL; // 60 saniye / 60 seconds
5
6void setup() {
7 Serial.begin(115200);
8 uint32_t mv = 0;
9 for (int i = 0; i < 16; i++) {
10 mv += analogReadMilliVolts(BAT_PIN); // kalibre milivolt / calibrated millivolts
11 }
12 float batV = (mv / 16.0) * 2.0 / 1000.0; // bölücü yarıya indirir / the divider halves it
13 Serial.printf("Pil / Battery: %.2f V\n", batV);
14
15 if (batV < 3.3) {
16 Serial.println("Pil zayif / Battery low"); // işi atla, pili koru / skip the work, protect the cell
17 } else {
18 // sensörü oku, Wi-Fi ile gönder / read the sensor, send over Wi-Fi
19 }
20
21 esp_sleep_enable_timer_wakeup(SLEEP_US); // 60 sn sonra uyan / wake up after 60 s
22 Serial.flush();
23 esp_deep_sleep_start(); // loop() hiç çalışmaz / loop() never runs
24}
25
26void loop() {
27}Kod her uyanışta pil gerilimini ölçer, işini yapar ve 60 saniyelik zamanlayıcıyla yeniden uykuya geçer; derin uykudan uyanan ESP32 programı baştan başlattığı için loop() hiç çalışmaz. GPIO 34 yalnızca giriş olabilen bir ADC1 pinidir ve Wi-Fi açıkken de çalışır; ADC2 pinleri ise Wi-Fi ile birlikte kullanılamaz. analogReadMilliVolts(), yongadaki fabrika kalibrasyonunu kullanarak doğrudan milivolt döndürür. 100 kΩ + 100 kΩ bölücü 4,2 V'u 2,1 V'a indirir ve yalnızca 21 µA çeker; ölçüm gürültülüyse GPIO 34 ile GND arasına 100 nF kondansatör ekle. ESP32 ile ilk adımların için ESP32 nedir? yazısı iyi bir başlangıçtır.
Raspberry Pi Pico'yu pille beslemek
Raspberry Pi Pico pil kullanımında en rahat kartlardan biridir, çünkü üzerinde lineer regülatör yerine buck-boost tipi anahtarlamalı bir regülatör vardır. VSYS pinine 1,8–5,5 V arası herhangi bir gerilim verdiğinde kart bunu verimli şekilde 3,3 V'a çevirir; giriş 3,3 V'un altına inse bile çalışmaya devam eder. Bu sayede 2 ya da 3 AA pil, tek bir 18650 veya tek hücreli bir LiPo, ek modül olmadan doğrudan VSYS ile GND arasına bağlanabilir. Dikkat etmen gereken tek nokta USB ile birlikte kullanımdır: USB'nin 5 V'u (VBUS) VSYS'e bir Schottky diyotla bağlıdır; pil de VSYS'e doğrudan bağlıyken USB'yi takarsan USB pile akım basmaya çalışır. Raspberry Pi'nin önerdiği çözüm, pili VSYS'e kendi Schottky diyotuyla (ör. 1N5817) bağlamaktır. 3V3 pini dış devreler için en fazla yaklaşık 300 mA verir; 3V3_EN pinini GND'ye çekmek ise regülatörü ve dolayısıyla tüm kartı kapatır. Kartın genel yapısı için Raspberry Pi Pico nedir? yazısına göz atabilirsin.
1from machine import ADC, Pin
2import time
3
4vsys = ADC(29) # VSYS/3 ölçer (Pico) / measures VSYS/3 (Pico)
5usb = Pin(24, Pin.IN) # USB takılıysa 1 / 1 when USB is connected
6CONV = 3.3 / 65535 # ham değeri volta çevir / raw value to volts
7
8while True:
9 total = 0
10 for _ in range(16): # 16 ölçümün ortalaması / average of 16 readings
11 total += vsys.read_u16()
12 volts = total / 16 * CONV * 3 # kart içindeki bölücü 3'e böler / on-board divider divides by 3
13 source = "USB" if usb.value() else "Pil / Battery"
14 print("{}: VSYS = {:.2f} V".format(source, volts))
15 if not usb.value() and volts < 3.3: # 3xAA ya da 18650 için alt sınır / low limit for 3xAA or a 18650
16 print("Pil zayif! / Battery low!")
17 time.sleep(5)Pico'da GP29, kart üzerindeki bir bölücü üzerinden VSYS'in üçte birini ölçer; GP24 ise USB takılıyken 1 okunur. Böylece ek parça kullanmadan hem pil gerilimini hem de kartın USB'den mi pilden mi beslendiğini öğrenebilirsin. Pili önerildiği gibi Schottky diyotla bağladıysan VSYS, pil geriliminin yaklaşık 0,2–0,3 V altında okunur. Ölçüm, ADC referansının 3,3 V olduğunu varsayar; buck-boost regülatör sayesinde pil zayıflasa da bu referans sabit kalır. Pico W'de GP29 ve GP24 kablosuz yongayla paylaşıldığı için bu kod olduğu gibi çalışmaz; orada USB durumu Pin("WL_GPIO2") ile okunur. Pil ömrünü uzatmak için ölçümler arasında time.sleep() yerine machine.lightsleep() kullanabilirsin.
Pille çalışan proje fikirleri
- Bluetooth kontrollü robot araba: 2S 18650 paketiyle hem motorları hem Arduino'yu besle; ayrıntılar Arduino araba yapımı yazısında.
- Engelden kaçan robot: Motorları L298N üzerinden ayrı hattan, Arduino'yu DC jaktan besleyerek resetleri önle (engelden kaçan robot).
- Pil göstergeli voltmetre: Gerilim bölücüyle ölçtüğün değeri LCD'de göster (Arduino voltmetre yapımı).
- Bahçe nem istasyonu: ESP32'yi derin uykuda tutup saatte bir toprak nemini ölç ve tek bir 18650 ile aylarca çalıştır.
- Taşınabilir GPS kaydedici: NEO-6M GPS ve bir powerbank ile yürüyüş rotanı kaydet.
- Pilli Pico gece lambası: 3×AA pil ile VSYS'ten beslenen bir Pico, ortam karardığında LED'leri yaksın.
Sık yapılan hatalar ve çözümleri
| Belirti | Olası sebep | Çözüm |
|---|---|---|
| Servo dönünce kart resetleniyor | Servo akımı 5 V hattını çökertiyor | Servoyu ayrı kaynaktan besle, ortak GND ve 470–1000 µF kondansatör ekle |
| 9V pil birkaç saatte bitiyor | 9V pilin kapasitesi yalnızca 400–600 mAh | 6×AA ya da 2S 18650 paket kullan |
| Powerbank 10–60 saniyede kapanıyor | Akım, otomatik kapanma eşiğinin altında | Düşük akım modu ya da uyanık tutma darbesi |
| Regülatör çok ısınıyor | Yüksek giriş gerilimi ve yüksek akım | Girişi 7–9 V'a indir ya da 5 V'u buck modülüyle üret |
| Pille beslerken analog değerler kayıyor | Giriş 7 V'un altında, 5 V hattı düşüyor | Paketin gerilimini artır ya da dahili 1,1 V referansı kullan |
| Kart ısınıyor ya da hiç açılmıyor | Ters polarite ya da 5V pinine 5,5 V'un üstünde gerilim | Kaynağı ayır, kutupları ve gerilimi multimetreyle ölç |
| ESP32 Wi-Fi'ye bağlanırken resetleniyor | Kaynak tepe akımı veremiyor (brownout) | Kısa ve kalın kablo, 470 µF kondansatör, güçlü kaynak |
| Pico'da USB takılıyken pil ısınıyor | USB, VSYS üzerinden pile akım basıyor | Pil hattına Schottky diyot ekle |
Doğru besleme, projenin kararlı çalışmasının yarısıdır: kartın girişini doğru seç, motorları ayrı besle, GND'leri birleştir ve pil ömrünü baştan hesapla. Pil ile çalışan bir proje kurmaya hazır olduğunda BlueGrays uygulamasındaki L298N'li Bluetooth kontrollü araba, engelden kaçan robot, akıllı sulama istasyonu, LCD ekranlı dijital voltmetre ve ESP32 deep sleep pil tasarrufu projelerine göz at; her birinde devre şeması, bağlantılar ve kod adım adım anlatılıyor.
Sıkça sorulan sorular
Arduino 9V pil ile çalışır mı?
Evet, 9V pil Arduino Uno'nun DC jakına ya da Vin pinine bağlanarak kullanılabilir ve kart 7–12 V aralığında rahat çalışır. Ancak 9V alkalin pilin kapasitesi yalnızca 400–600 mAh olduğu için Uno'yu tek başına 6–8 saat kadar çalıştırır; servo ya da motor eklenince bu süre çok kısalır. Uzun süreli projeler için 6×AA ya da seri bağlı iki 18650 daha iyi bir seçimdir.
Arduino powerbank ile çalışır mı?
Çalışır; powerbank'i USB kablosuyla Arduino'nun USB girişine takman yeterlidir ve kart USB sigortasıyla korunur. Sorun, birçok powerbank'in 50–100 mA'in altındaki yükleri algılamayıp çıkışı kısa süre içinde kapatmasıdır. Düşük akım modu olan bir model seçebilir ya da Arduino'ya birkaç saniyede bir kısa süreli yük çektiren bir uyanık tutma devresi ekleyebilirsin.
Arduino 12V adaptörle beslenir mi?
Evet, 12 V Uno'nun önerilen 7–12 V aralığının üst sınırıdır ve DC jaktan güvenle kullanılabilir. Ancak kart üzerindeki lineer regülatör fazladan 6–7 V'u ısıya çevirdiği için 5 V hattından 150 mA'den fazla akım çekersen regülatör aşırı ısınır. Daha fazla akım gerekiyorsa 9 V'luk adaptör kullan ya da 5 V'u ayrı bir buck modülüyle üret; Uno R4 ise 24 V'a kadar sorunsuz çalışır.
Arduino 5V pininden beslenir mi?
Beslenebilir, ancak 5V pini karttaki regülatörü, ters polarite diyotunu ve USB sigortasını atladığı için hiçbir koruma yoktur. Bu pine yalnızca multimetreyle ölçülmüş, 4,8–5,2 V aralığında regüleli bir kaynak (ör. 5,0 V'a ayarlanmış bir LM2596 ya da boost modülü) bağla. 5,5 V'u aşan ya da ters bağlanan bir kaynak ATmega328P'yi anında bozabilir.
Arduino 3.7V Li-ion pil ile çalışır mı?
Uno doğrudan 3,7 V ile güvenilir çalışmaz: DC jak için çok düşüktür, 5V pini için de yetersizdir. Tek hücreyi bir boost dönüştürücüyle 5 V'a yükseltip USB'ye ya da 5V pinine vermek veya iki hücreyi seri bağlayıp 7,4 V'luk paketi DC jakına takmak gerekir. 3,3 V'luk Pro Mini (RAW pini) ve Raspberry Pi Pico (VSYS pini) ise tek hücreden doğrudan, ESP32 ise düşük düşümlü bir 3,3 V regülatörle rahatça çalışır.
Arduino pil ile ne kadar süre çalışır?
Süre, kapasitenin ortalama akıma bölünmesiyle bulunur: kapasite (mAh) × 0,85 / ortalama akım (mA). Örneğin 50 mA çeken bir Uno, 3000 mAh'lik 2S 18650 paketle yaklaşık 50 saat çalışır. Derin uyku kullanan bir ESP32 ise aynı kapasiteyle aylarca dayanabilir; BlueGrays'teki batarya ömrü hesaplayıcısı uyku akımını da hesaba katar.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
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

Servo Motor Kullanım
Küçük bir servo motorun kolu sırayla üç konuma döner: en başa, tam ortaya ve en sona, her durakta iki saniye bekleyerek. Arduino motora hangi açıda durması gerektiğini söyler, motor da oraya gidip ora

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

Engelden Kaçan Robot
Kendi yolunu bulan akıllı bir araç yapmaya ne dersin? Engelden Kaçan Robot, önündeki ultrasonik sensör sayesinde çevresini sürekli tarar. Bir engelle karşılaştığında durur, servo motoruyla sağına ve s

Akıllı Sulama İstasyonu
Tatile gidince çiçeklerin kurumasın diye kendi kendine sulayan bir bahçıvan. Toprak nem sensörü toprağın ne kadar ıslak olduğunu ölçer; toprak kuruyunca Arduino su pompasını birkaç saniye çalıştırır v

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

ESP32 Servo Motor (Potansiyometre Kontrolü)
Bu projede potansiyometre ile SG90 servo motoru kontrol ediyoruz. Potansiyometreden okunan analog değeri 0-180 derece aralığına map'leyerek servo açısını ayarlıyoruz. ESP32Servo kütüphanesi, ESP32'nin çıkış verebilen uygun GPIO'larında servo sinyali üretir; bu projede GPIO 18 kullanılır. Bu, robotik kollar, kamera gimbal'ları ve otomatik kapı mekanizmaları için temel bir kontrol yöntemidir.
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ç

