LM2596 Ayarlama: Voltaj Düşürücü ile 5 V ve 3,3 V Elde Etme
LM2596 ayarlama adım adım: trimpot ve multimetreyle 5 V ya da 3,3 V çıkış, 12 V'tan Arduino ve servo besleme, akım sınırı, ısınma, 7805 farkı ve sık hatalar.
LM2596 ayarlama, modülün girişine gerilim verip çıkışını multimetreyle ölçerken üzerindeki mavi trimpotun pirinç vidasını çevirerek çıkışı istediğin değere, örneğin 5 V ya da 3,3 V'a getirmektir. LM2596 step-down (buck) modülü; 12 V adaptörden, araba aküsünden ya da 2S Li-ion paketten Arduino, ESP32, servo ve LED şeritler için verimli biçimde düşük gerilim üreten, ucuz ve çok yaygın bir voltaj düşürücüdür. 4,5–40 V arası girişi yaklaşık 1,25 V ile 35 V arasında istediğin değere indirir ve 3 A'e kadar akım verebilir. Altın kural tek cümledir: çıkışı her zaman yük bağlamadan önce ayarla ve ölç.
Bu rehberde buck dönüştürücünün nasıl çalıştığını, modülün pinlerini ve üzerindeki parçaları, trimpotla multimetre eşliğinde adım adım 5 V ve 3,3 V ayarını ve çıkışı belirleyen Vout = 1,23 × (1 + R2 / R1) formülünü öğreneceksin. Ardından 12 V'tan Arduino ve servo beslemeyi, akım sınırını ve ısınmayı, verimi ve 7805 ile farkını, sık yapılan hataları (ters bağlama, yük altında gerilim düşmesi) inceleyip çıkışı Arduino, ESP32 ve Raspberry Pi Pico ile ölçen kodlara geçeceğiz.

LM2596 nedir, nasıl çalışır?
LM2596, ilk olarak National Semiconductor'ın geliştirdiği ve bugün Texas Instruments'ın ürettiği anahtarlamalı bir düşürücü regülatör entegresidir. 7805 gibi lineer regülatörler fazla gerilimi ısıya çevirerek atar; LM2596 ise içindeki güç transistörünü saniyede yaklaşık 150 bin kez (150 kHz) açıp kapatır. Transistör açıkken akım bobinden geçerek yüke gider ve bobin manyetik alanında enerji depolar; transistör kapandığında bobin bu enerjiyi bir Schottky diyot üzerinden yüke vermeye devam eder. Çıkıştaki kondansatör de bu darbeleri düzleştirir. Transistörün açık kaldığı sürenin oranına doluluk oranı (duty cycle) denir ve yaklaşık D ≈ Vout / Vin'dir: 12 V'tan 5 V elde etmek için anahtar zamanın yaklaşık %42'sinde açıktır.
Enerji yakılmadığı için verim %80–90 civarındadır ve girişten çekilen akım, çıkıştan verilen akımdan daha azdır: 12 V'tan 5 V'a 2 A veren bir modül girişten yalnızca 1 A civarı çeker. Çıkış geriliminin sabit kalmasını FB (geri besleme) pini sağlar. Yonga FB pinindeki gerilimi kendi içindeki 1,23 V'luk referansla karşılaştırır ve doluluk oranını buna göre değiştirir. Hazır modülde FB pinine giden gerilim bölücünün bir kolu çok turlu bir trimpottur; vidayı çevirdiğinde bölücü oranı ve dolayısıyla çıkış gerilimi değişir. LM2596'nın 3,3 V, 5 V ve 12 V'luk sabit sürümleri de vardır, ama Arduino dünyasında en yaygın olanı ayarlanabilir (ADJ) sürümle yapılmış mavi modüldür.
| Özellik | LM2596 yongası (bilgi sayfası) | Hazır modül (tipik) |
|---|---|---|
| Giriş gerilimi | 4,5–40 V (mutlak sınır 45 V) | 4,5–40 V; çıkıştan en az 1,5–2 V yüksek |
| Çıkış gerilimi | ADJ: 1,23–37 V; sabit: 3,3 / 5 / 12 V | Trimpotla yaklaşık 1,25–35 V |
| Çıkış akımı | 3 A | Soğutucusuz sürekli ~2 A, soğutucuyla 3 A |
| Anahtarlama frekansı | 150 kHz (127–173 kHz) | 150 kHz |
| Geri besleme referansı | 1,23 V | 1,23 V |
| Verim | %73–90 (gerilime ve akıma göre) | 12 V → 5 V'ta tipik %80–88 |
| Boşta akım | Tipik 5 mA, en fazla 10 mA; ON/OFF ile kapalıyken 80 µA | 5–10 mA + güç LED'i (varsa) |
| Akım sınırı | Tepe akımda tipik 4,5 A (3,6–6,9 A) | Ayarlanamaz (yalnızca CC/CV sürümlerde ayar var) |
| Koruma | Akım sınırlama ve aşırı ısınmada kapanma | Ters polarite koruması yok |
Modülün pinleri ve üzerindeki parçalar
Mavi LM2596 modülünün dört bağlantı noktası vardır: IN+ ve IN− giriş, OUT+ ve OUT− çıkıştır. IN− ile OUT− kart üzerinde birbirine bağlıdır; buck dönüştürücü girişle çıkışı yalıtmaz, yani kaynak, modül ve beslediğin kart ortak GND'yi paylaşır. Kartta beş bacaklı LM2596S yongası (TO-263 kılıf: VIN, çıkış, GND, FB ve ON/OFF), üzerinde genellikle 330 ya da 470 yazan 33–47 µH'lik büyük bir bobin, SS34 gibi 3 A'lik bir Schottky diyot, girişte ve çıkışta birer elektrolitik kondansatör (çoğunlukla 100–220 µF) ve üzerinde 103 (10 kΩ) yazan çok turlu bir trimpot bulunur. Bobinin üzerindeki kodu bobin kodu hesaplayıcısıyla çözebilirsin. Yonganın ON/OFF pini çoğu modülde GND'ye bağlıdır, yani modül enerji verildiği anda çalışmaya başlar.
| Modül pini | Görevi | Neye bağlanır? |
|---|---|---|
| IN+ | Giriş artı (4,5–40 V) | Adaptörün, akünün ya da pil paketinin artısı |
| IN− | Giriş eksi (GND) | Kaynağın eksisi |
| OUT+ | Ayarlanmış çıkış artı | Arduino 5V ya da Vin, ESP32 5V, Pico VSYS, servonun kırmızı kablosu |
| OUT− | Çıkış eksi (IN− ile aynı GND) | Kartın GND'si, servonun kahverengi ya da siyah kablosu |
Adım adım LM2596 ayarlama: multimetreyle 5 V ya da 3,3 V
- Çıkışa hiçbir şey bağlama. Modül yüksüz ayarlanır; Arduino'yu ya da ESP32'yi ancak doğru gerilimi gördükten sonra bağlarsın.
- Girişe projede kullanacağın gerçek kaynağı bağla (ör. 12 V 2 A adaptör): artıyı IN+'ya, eksiyi IN−'ye. Kartta LED varsa yanar.
- Multimetreyi DC gerilim kademesine (20 V ya da otomatik) al; kırmızı probu OUT+'ya, siyah probu OUT−'ye değdir. İlk değer girişe yakın çıkabilir, çünkü fabrika ayarı belli değildir.
- Küçük bir düz tornavidayla trimpotun pirinç vidasını bir yöne 2–3 tur çevir ve ekrana bak. Gerilim düşüyorsa doğru yöndesin, artıyorsa ters yöne çevir. Yön, trimpotun karta bağlanışına göre modülden modüle değişebilir.
- Yaklaşık 25 turluk çok turlu trimpotta tüm aralığı geçmek için 20 tur ve fazlası gerekebilir. Vidanın ucunda durdurucu yoktur; sona gelince hafif bir tıklamayla boşa döner ve gerilim değişmez. Bu durumda ters yöne dön.
- Hedefe yaklaşınca çeyrek tur, sonra daha küçük adımlarla ilerle. 5 V için 5,00–5,10 V, 3,3 V için 3,30–3,35 V aralığında bırak; ESP32 ve Pico gibi 3,3 V'luk kartlarda 3,6 V'u asla aşma.
- Yükü bağla ya da 5 V'ta yaklaşık 500 mA çeken 10 Ω / 5 W'lık bir dirençle dene ve ölçümü yük altında tekrarla. Gerilim 0,1–0,2 V'tan fazla düşüyorsa kaynağı ve kabloları kontrol et.
- Ayar bittiğinde trimpotun vidasına bir damla oje ya da sıcak silikon sür; titreşimli robotlarda ayar zamanla kayabilir.
Çıkış formülü: Vout = 1,23 × (1 + R2 / R1)
LM2596 çıkışı, FB pinindeki gerilim 1,23 V olacak şekilde ayarlar. Çıkış ile FB arasındaki dirence R2, FB ile GND arasındakine R1 dersek çıkış Vout = 1,23 × (1 + R2 / R1) olur. Modülde R2'nin yerini 10 kΩ'luk trimpot alır, R1 ise kart üzerindeki sabit küçük dirençtir. Formülden iki önemli sonuç çıkar: R2 sıfıra yaklaşsa bile çıkış 1,23 V'un altına inemez; R2 büyüdükçe de çıkış girişi aşamaz. Trimpotu fazla açarsan yonga anahtarı sürekli açık tutar ve çıkış girişin yaklaşık 1–2 V altında takılı kalır. "Modül gerilimi düşürmüyor" şikâyetinin en sık sebebi budur.
Titreşimli ya da uzun ömürlü bir projede trimpot yerine sabit direnç kullanmak istersen bilgi sayfasının önerisini izle ve R1'i 240 Ω ile 1,5 kΩ arasında seç. R1 = 1 kΩ için 5 V'ta R2 = 1 kΩ × (5 / 1,23 − 1) ≈ 3,07 kΩ çıkar; %1'lik 3,09 kΩ ile çıkış 5,03 V olur. 3,3 V için R2 ≈ 1,68 kΩ bulunur, %1'lik 1,69 kΩ ile 3,31 V elde edersin. Bu aslında bir gerilim bölücüdür; oranları gerilim bölücü hesaplayıcısıyla kontrol edebilirsin.
| Hedef çıkış | Önerilen en düşük giriş | Tipik kullanım |
|---|---|---|
| 3,3 V | 5 V | ESP32 ya da Pico'nun 3V3 pini, 3,3 V'luk sensörler |
| 4,0–4,1 V | 6 V | SIM800L GSM modülü |
| 5,0 V | 7 V | Arduino 5V pini, ESP32 5V pini, SG90 servolar, WS2812B LED |
| 6,0 V | 8 V | MG996R servolar (SG90 ve MG90S için üst sınır) |
| 7,5–9 V | 10–11 V | Arduino DC jakı ya da Vin pini |
| 12 V | 14–15 V | 24 V sistemden 12 V fan, röle ve LED şerit |
Tablodaki en düşük giriş değerleri 2–3 A'lik yük içindir: LM2596'nın anahtarı 3 A'de tipik 1,16 V düşüm yapar, bobin ve kablolar da birkaç yüz milivolt ekler. Hafif yükte (1 A civarı) bu fark 1,5 V'a kadar iner. 7,4 V'luk 2S Li-ion paket boşalırken 6,4 V civarına düşer; bu, 1 A'lik bir 5 V hattı için hâlâ yeterlidir ama 6 V'luk bir servo hattı için yetmez. 4 V isteyen bir GSM modülünün ayarı için SIM800L yazısına bakabilirsin.
12 V adaptör ya da aküden Arduino beslemek
Arduino'yu bir LM2596 ile beslemenin iki doğru yolu vardır. Birincisi modülü 5,0 V'a ayarlayıp çıkışı doğrudan 5V pinine bağlamaktır. Bu yol kartın kendi regülatörünü atladığı için neredeyse hiç ısı üretmez ve en verimlisidir; ama kartı koruyan hiçbir şey kalmaz. Trimpot kayarsa ya da modül arızalanıp girişi çıkışa geçirirse 12 V doğrudan mikrodenetleyiciye gider. Bu bağlantıda USB kablosunu da takarsan bilgisayarın USB hattı ile modülün çıkışı birbirine bağlanır; kod yüklerken modülü ayırmak en güvenlisidir.
İkinci yol, modülü 7,5–9 V'a ayarlayıp DC jakına ya da Vin pinine bağlamaktır. Bu durumda son düzeltmeyi kartın regülatörü yapar, jak girişindeki diyot da ters bağlamaya karşı korur. 12 V'u doğrudan jaka vermek de çalışır, ama 200 mA'lik bir yükte kartın küçük regülatörü (12 − 5) × 0,2 = 1,4 W ısı üretir; LM2596'yı 7,5 V'a ayarlarsan bu kayıp (7,5 − 5) × 0,2 = 0,5 W'a iner. Tüm besleme seçeneklerini Arduino güç besleme yazısında, pinlerin yerini Arduino Uno pinleri yazısında bulabilirsin.
| Bağlantı | LM2596 ayarı | Artısı | Dikkat |
|---|---|---|---|
| Arduino 5V pini | 5,0–5,1 V | En serin ve en verimli yol | Koruma yok; USB'yi aynı anda takma |
| Arduino DC jakı | 7,5–9 V | Ters bağlama diyotu ve kart regülatörü korur | Diyot yaklaşık 0,7 V düşürür |
| Arduino Vin pini | 7,5–9 V | Jak gerekmez, kart regülatörü korur | Ters bağlama koruması yok |
| ESP32 5V (VIN) pini | 5,0 V | Kart üzerindeki LDO 3,3 V üretir | 5 V'u asla 3V3 pinine verme |
| ESP32 3V3 pini | 3,30 V | Kartın regülatörünü atlar | 3,6 V'u aşarsa ESP32 bozulabilir |
| Pico VSYS pini | 5,0 V | VSYS 1,8–5,5 V kabul eder | USB ile birlikteyse Schottky diyot ekle |
Servo ve motor beslemek: akım hesabı
LM2596'nın en sık kullanıldığı yer servo hattıdır. Bir SG90 hareket ederken 100–250 mA çeker, kalkışta ve zorlandığında 600–700 mA'e çıkar. MG996R ise 6 V'ta zorlandığında 2,5 A civarına ulaşır. Modülü seçerken ortalamayı değil, aynı anda zorlanabilecek servoların toplam akımını hesaba kat. Soğutucusuz bir LM2596'dan sürekli 2 A beklemek gerçekçidir: 3 adet SG90 rahat çalışır, ama 4–6 MG996R'li bir robot kolu tek modülle beslemek resetlere ve titremeye davetiye çıkarır. Bu durumda her bir ya da iki servo için ayrı bir modül ya da XL4015 gibi 5 A'lik bir modül kullan.

Girişten çekilecek akımı da hesaplamalısın, çünkü adaptör yetmezse modül ne kadar iyi olursa olsun çıkış düşer. Formül Iin = (Vout × Iout) / (Vin × η) şeklindedir. 5 V'ta 2 A, %85 verimle 12 V'tan beslenirse Iin = 10 W / (12 V × 0,85) ≈ 0,98 A olur; 12 V 2 A'lik bir adaptör yeterlidir. Aynı yük 7,4 V'luk 2S pil paketinden yaklaşık 1,6 A çeker. Servo hattının yanına 470–1000 µF'lık bir elektrolitik kondansatör koymak, kalkış akımlarını modül yerine kondansatörün karşılamasını sağlar. Servo kaynaklı resetlerin bütün çözümleri için Arduino kendini resetliyor, servo bağlantısı için servo motor nedir ve MG996R servo yazılarına bakabilirsin.
Akım sınırı, ısınma ve soğutucu
Buck dönüştürücü verimli olsa da kayıpsız değildir. Kayıp güç yaklaşık Pkayıp = Pçıkış × (1/η − 1) ile bulunur ve yonga, Schottky diyot ve bobin arasında paylaşılır. 5 V 2 A (10 W) çıkışta %85 verimle yaklaşık 1,8 W ısı oluşur. Modüldeki LM2596S küçük bir bakır alana lehimli TO-263 kılıftadır; bilgi sayfasına göre bu kılıfın havaya ısıl direnci bakır alanına bağlı olarak 30–50 °C/W'tır. Bu yüzden yonga 2 A'de elle uzun süre tutulamayacak kadar ısınır; 3 A'de ise yapıştırmalı küçük bir alüminyum soğutucu ve hava akışı şarttır. Kapalı bir kutunun içindeki modülde bu sınırlar daha da düşer.
| Yük (12 V → 5 V) | Çıkış gücü | Tahmini kayıp | Durum |
|---|---|---|---|
| 0,5 A | 2,5 W | ~0,4 W | Ilık, soğutucu gerekmez |
| 1 A | 5 W | ~0,8 W | Sıcak ama rahat |
| 2 A | 10 W | ~1,8 W | Çok sıcak, hava akışı gerekir |
| 3 A | 15 W | ~3,5 W | Soğutucu ve fan şart |
LM2596'nın akım sınırı kullanıcı tarafından ayarlanamaz. Yonga, anahtar akımı tepede yaklaşık 4,5 A'e (üretim farkıyla 3,6–6,9 A) ulaştığında darbeleri kısar, aşırı yükte frekansı düşürür ve fazla ısınırsa kendini kapatır. Bu korumalar kısa devrede modülü çoğu zaman kurtarır, ama bir sigortanın yerini tutmaz. Güç LED'i sürmek ya da akım sınırlı bir test beslemesi kurmak gibi akımı ayarlaman gereken işler için ikinci bir trimpotla akım ayarı yapılan CC/CV (sabit akım / sabit gerilim) LM2596 modülleri vardır. Kısa devreye karşı sağlam bir hat istiyorsan girişe uygun değerli bir sigorta da ekle.
Verim ve 7805 ile karşılaştırma
Aynı işi yapan 7805 voltaj regülatörü ile karşılaştırınca farkın büyüklüğü netleşir. 12 V'tan 5 V'a 1 A verirken 7805 girişten de 1 A çeker ve (12 − 5) × 1 = 7 W'ı ısıya çevirir; verimi yalnızca %42'dir ve büyük bir soğutucu ister. LM2596 aynı yükte girişten yaklaşık 0,49 A çeker ve 1 W'ın altında kayıpla çalışır. Pille çalışan projelerde bu fark doğrudan çalışma süresine yansır: verim iki katına çıkınca pil de yaklaşık iki kat uzun gider.
Buck'ın bedeli gürültüdür. Bilgi sayfasına göre çıkıştaki testere dişi dalgalanma tipik olarak çıkış geriliminin %0,5–3'ü kadardır, yani 5 V'ta 25–150 mV; üstüne 150 kHz'lik anahtarlama gürültüsü eklenir. Arduino, servo, röle ve LED için bu sorun değildir, ama hassas analog ölçüm, mikrofon ya da ses yükselteci beslerken fark edilir. Böyle durumlarda iki yolu birleştir: LM2596 ile önce 7–8 V'a in, ardından 7805 ya da bir LDO ile temiz 5 V elde et; hem verimden hem sessizlikten kazanırsın. Breadboard üzerindeki küçük akımlı deneyler için ise hazır MB102 breadboard güç modülü pratik bir seçenektir.
| Özellik | LM2596 (buck) | 7805 (lineer) | AMS1117-3.3 (LDO) |
|---|---|---|---|
| Çalışma şekli | 150 kHz anahtarlama, bobinde enerji depolama | Fazla gerilimi ısıya çevirir | Fazla gerilimi ısıya çevirir |
| 12 V girişte verim | %80–90 | 5 V çıkışta ~%42 | 3,3 V çıkışta ~%27 (giriş en fazla 15 V) |
| En büyük akım | 3 A (pratikte sürekli 2 A) | 1–1,5 A | 0,8–1 A |
| En küçük giriş-çıkış farkı | ~1,5–2 V | ~2 V | ~1,1–1,3 V |
| Çıkış gürültüsü | Onlarca mV dalgalanma | Çok düşük | Çok düşük |
| Çıkış ayarı | Trimpotla 1,25–35 V | Sabit 5 V | Sabit 3,3 V |
| Boşta akım | 5–10 mA | 3–8 mA | ~5 mA |
| En iyi olduğu iş | Büyük gerilim farkı, yüksek akım, pil | Küçük fark, düşük akım, sessiz besleme | 5 V'tan 3,3 V, birkaç yüz mA |




Arduino ile LM2596 çıkışını yük altında ölçmek
Gerilimin yük altında ne kadar düştüğünü anlamanın en iyi yolu, düşüşü yük çalışırken ölçmektir. Aşağıdaki kod bir servoyu 0 ile 180 derece arasında sürekli döndürür ve bu sırada LM2596 çıkışında görülen en düşük ve en yüksek gerilimi Seri Monitör'e yazar. Bağlantı şöyle: servonun kırmızı kablosu OUT+'ya, kahverengi kablosu OUT−'ye, sinyal kablosu D9'a gider; OUT+ ile GND arasına 47 kΩ ve 10 kΩ'luk bir gerilim bölücü kurup orta noktasını A0'a bağlarsın. Arduino USB'den beslenir ve OUT− ile Arduino GND'si mutlaka birleşir.
1// LM2596 yük testi: servo dönerken çıkış gerilimini izle / LM2596 load test: watch the output while a servo moves
2// Kart: Arduino Uno / Nano (ATmega328P) / Board: Arduino Uno / Nano (ATmega328P)
3#include <Servo.h>
4
5const int SENSE_PIN = A0; // OUT+ -> 47k -> A0 -> 10k -> GND
6const int SERVO_PIN = 9; // servo sinyal kablosu / servo signal wire
7const float R_TOP = 47000.0; // bölücü üst direnç / divider top resistor
8const float R_BOTTOM = 10000.0; // bölücü alt direnç / divider bottom resistor
9const float AREF_V = 1.1; // dahili referans, multimetreyle düzelt / internal reference, calibrate with a multimeter
10const float LOW_LIMIT = 4.6; // 5 V hat için uyarı sınırı / warning limit for a 5 V rail
11
12Servo servo;
13float vMin, vMax;
14
15float readOutput() {
16 long sum = 0;
17 for (int i = 0; i < 8; i++) {
18 sum += analogRead(SENSE_PIN); // 8 örneğin toplamı / sum of 8 samples
19 }
20 float vPin = (sum / 8.0) * AREF_V / 1023.0;
21 return vPin * (R_TOP + R_BOTTOM) / R_BOTTOM; // bölücüyü geri hesapla / undo the divider
22}
23
24void track() {
25 float v = readOutput();
26 if (v < vMin) vMin = v; // en düşük değer / lowest value
27 if (v > vMax) vMax = v; // en yüksek değer / highest value
28}
29
30void setup() {
31 Serial.begin(9600);
32 analogReference(INTERNAL); // 1,1 V referans, beslemeden bağımsız / 1.1 V reference, independent of the supply
33 for (int i = 0; i < 10; i++) { // referans otursun, ilk okumaları at / let the reference settle, drop first readings
34 analogRead(SENSE_PIN);
35 delay(5);
36 }
37 servo.attach(SERVO_PIN);
38}
39
40void loop() {
41 vMin = 99.0;
42 vMax = 0.0;
43 for (int a = 0; a <= 180; a += 2) { // 0 -> 180 derece / 0 -> 180 degrees
44 servo.write(a);
45 for (int k = 0; k < 5; k++) { track(); delay(2); }
46 }
47 for (int a = 180; a >= 0; a -= 2) { // 180 -> 0 derece / 180 -> 0 degrees
48 servo.write(a);
49 for (int k = 0; k < 5; k++) { track(); delay(2); }
50 }
51 Serial.print(F("Min: "));
52 Serial.print(vMin, 2);
53 Serial.print(F(" V Max: "));
54 Serial.print(vMax, 2);
55 Serial.print(F(" V Dusus / Drop: "));
56 Serial.print(vMax - vMin, 2);
57 Serial.println(F(" V"));
58 if (vMin < LOW_LIMIT) {
59 Serial.println(F("UYARI: gerilim cok dusuyor / WARNING: voltage sags too much"));
60 }
61 delay(1000);
62}Kod, Arduino'nun kendi besleme gerilimi yerine ATmega328P'nin içindeki 1,1 V'luk referansı kullanır (analogReference(INTERNAL)); böylece ölçüm, USB'nin 4,7 V ya da 5,1 V olmasından etkilenmez. 47k/10k bölücüyle ölçebileceğin en yüksek gerilim yaklaşık 6,2 V'tur; 6 V'luk bir servo hattında referans toleransına karşı üst direnci 56 kΩ yapıp R_TOP sabitini değiştir. Dahili referans yongadan yongaya yaklaşık ±%10 farklı olabildiği için çıkışı bir kez multimetreyle ölç ve AREF_V değerini (ör. 1,08) iki sonuç eşleşene kadar düzelt. Servo dönerken düşüş 0,3 V'u geçiyorsa kabloları kısalt, kalın kablo kullan ve servo hattına 470 µF ekle; 0,1 V'un altındaysa beslemen sağlıklıdır.
ESP32: 12 V aküden beslemek ve aküyü izlemek
Bahçedeki bir sensör istasyonu ya da araç içi bir takip cihazı için ESP32'yi 12 V aküden beslemek yaygın bir senaryodur. LM2596'yı 5,0 V'a ayarlayıp ESP32 kartının 5V (VIN) pinine bağla; kartın kendi LDO'su 3,3 V'u üretir. ESP32'nin Wi-Fi gönderirken çektiği kısa akım darbelerini LM2596 rahatça karşılar; zayıf besleme belirtilerini ESP32 brownout hatası yazısında ayrıntılı bulabilirsin. Aşağıdaki kod akü gerilimini 100 kΩ / 22 kΩ'luk bir bölücüyle GPIO34'ten okur ve gerilim kurşun asit akünün güvenli alt sınırına inince ESP32'yi 10 dakikalığına derin uykuya alır.
1// ESP32: LM2596 ile 12 V aküden beslen, aküyü izle / ESP32: run from a 12 V battery via an LM2596, monitor the battery
2#include <Arduino.h>
3#include "esp_sleep.h"
4
5const int BAT_PIN = 34; // GPIO34: yalnız giriş, ADC1 / input-only, ADC1
6const float RATIO = (100.0 + 22.0) / 22.0; // 100k / 22k bölücü (~5,55) / divider (~5.55)
7const float LOW_V = 11.8; // kurşun asit akü alt sınırı / lead-acid low limit
8const uint64_t SLEEP_US = 10ULL * 60 * 1000000; // 10 dakika (mikrosaniye) / 10 minutes (microseconds)
9
10float batteryVolts() {
11 uint32_t mv = 0;
12 for (int i = 0; i < 16; i++) {
13 mv += analogReadMilliVolts(BAT_PIN); // kalibre edilmiş mV / calibrated mV
14 }
15 return mv / 16.0 / 1000.0 * RATIO; // bölücüyü geri hesapla / undo the divider
16}
17
18void setup() {
19 Serial.begin(115200);
20 delay(200);
21}
22
23void loop() {
24 float v = batteryVolts();
25 Serial.printf("Aku / Battery: %.2f V\n", v);
26 if (v < LOW_V) {
27 Serial.println("Aku zayif, 10 dk uyku / Battery low, sleeping 10 min");
28 Serial.flush();
29 esp_sleep_enable_timer_wakeup(SLEEP_US); // zamanlayıcıyla uyan / wake up by timer
30 esp_deep_sleep_start(); // derin uyku / deep sleep
31 }
32 delay(5000);
33}Bölücü 14,4 V'luk şarj gerilimini bile yaklaşık 2,6 V'a indirir, yani ESP32'nin ADC ölçüm aralığının içinde kalırsın. Kurşun asit akü dinlenirken 12,6–12,8 V civarında doludur; 11,8 V'un altına inmek onu derin deşarja yaklaştırır ve ömrünü kısaltır. Dikkat edilmesi gereken bir nokta var: LM2596 boştayken bile kendisi 5–10 mA çeker. ESP32 derin uykuda yalnızca mikroamper harcarken modül günde 120–240 mAh tüketir ve 7 Ah'lik bir akü sırf bu yüzden 1–2 ayda boşalır. Hesabı pil ömrü hesaplayıcısıyla kendi değerlerinle yapabilirsin. Aylarca uyuyacak projelerde EN (ON/OFF) pini dışarı çıkarılmış bir modülle beslemeyi tamamen kesmek ya da boşta akımı çok düşük bir düşürücü seçmek gerekir; uyku tekniklerinin ayrıntısı ESP32 deep sleep yazısında.
Raspberry Pi Pico ile ayar yardımcısı (MicroPython)
Ayarı bir bilgisayar ekranında izlemek istersen Pico'yu basit bir voltmetre gibi kullanabilirsin. Pico'nun ADC'si en fazla 3,3 V okuduğu için LM2596 çıkışını 100 kΩ ve 10 kΩ'luk bir bölücüyle GP26'ya bağla; bu oranla 36 V'a kadar güvenle ölçebilirsin, yani modül henüz ayarlanmamışken girişe yakın bir gerilim verse bile Pico zarar görmez. Pico USB'den beslenir ve GND'ler birleşir. Kod, hedef değere göre "yüksek" ya da "düşük" yazar ve çıkış ±%1 aralığına girince kart üzerindeki LED'i yakar. Pico'ya yeni başlıyorsan Raspberry Pi Pico nedir? yazısından başlayabilirsin.
1# Pico: LM2596 ayar yardımcısı / Pico: LM2596 adjustment helper
2from machine import ADC, Pin
3import time
4
5adc = ADC(26) # GP26 (ADC0): OUT+ -> 100k -> GP26 -> 10k -> GND
6led = Pin("LED", Pin.OUT) # dahili LED (Pico ve Pico W) / onboard LED (Pico and Pico W)
7RATIO = (100 + 10) / 10 # bölücü oranı 11, en fazla ~36 V / divider ratio 11, up to ~36 V
8VREF = 3.3 # ADC referansı (V) / ADC reference (V)
9CAL = 1.000 # multimetreyle düzeltme katsayısı / multimeter correction factor
10TARGET = 5.00 # hedef: 5.00 ya da 3.30 / target: 5.00 or 3.30
11
12def read_volts(n=64):
13 total = 0
14 for _ in range(n):
15 total += adc.read_u16() # 0-65535 ham değer / raw value
16 return total / n / 65535 * VREF * RATIO * CAL
17
18while True:
19 v = read_volts()
20 err = (v - TARGET) / TARGET * 100 # hedeften sapma (%) / deviation from target (%)
21 led.value(abs(err) <= 1.0) # ±%1 içinde LED yanar / LED on within ±1%
22 if err > 1.0:
23 hint = "yuksek, dusur / high, lower it"
24 elif err < -1.0:
25 hint = "dusuk, artir / low, raise it"
26 else:
27 hint = "tamam / OK"
28 print("{:.2f} V {:+.1f} % {}".format(v, err, hint))
29 time.sleep(0.3)Pico'nun ADC'si yaklaşık %1–2 hata yapabildiği için CAL katsayısını bir kez multimetreyle karşılaştırarak düzelt; son ayarı yine multimetreyle doğrulamak en iyisidir. Ayardan sonra Pico'yu da LM2596'dan beslemek istersen 5,0 V'luk çıkışı bir 1N5819 Schottky diyot üzerinden VSYS pinine bağla; diyot, USB takılıyken iki kaynağın birbirine karşı çalışmasını önler. Modülün çıkışını hiçbir zaman Pico'nun 3V3 pinine bağlama.
LM2596 ile proje fikirleri
- Robot araba: 2S 18650 paket (7,4 V) motorları L298N üzerinden doğrudan besler, 5 V'a ayarlı bir LM2596 da Arduino'yu ve sensörleri. Adımlar Arduino robot araba yapımı yazısında.
- Robot kol: 6 V'a ayarlı LM2596 ile MG996R servolara Arduino'dan bağımsız, güçlü bir hat kur; ayrıntılar Arduino robot kol rehberinde.
- 12 V'luk akıllı sera: Tek bir 12 V adaptör fanı ve pompayı besler, LM2596 aynı hattan Arduino, röle ve LCD için 5 V üretir; bkz. akıllı sera projesi.
- Ayarlı tezgâh güç kaynağı: LM2596, eski bir dizüstü adaptörü ve Arduino ile kurduğun dijital voltmetreyle çıkışı ekranda gösteren küçük bir laboratuvar kaynağı yap.
- WS2812B LED şerit: 60 LED tam beyazda 3,6 A'e kadar çıkabilir; parlaklığı sınırlayıp 5 V'luk bir LM2596 ile 2 A'in altında kal. Akım hesabı WS2812B NeoPixel yazısında.
- Araç içi ESP32 cihazı: 12–14,4 V'luk akü gerilimini 5 V'a indir; girişe bir sigorta ve araçtaki gerilim sıçramalarına karşı bir TVS diyot ekle.
Sık yapılan hatalar ve çözümleri
| Belirti | Olası sebep | Çözüm |
|---|---|---|
| Çıkış girişle neredeyse aynı (ör. 12 V'ta 11 V) | Trimpot en üst ayarda ya da hedef girişten yüksek | Yüksüzken ölçerek düşürme yönünde 10–20 tur çevir |
| Trimpotu çevirdikçe değer değişmiyor | Çok turlu trimpot uçta boşa dönüyor | Ters yönde 5–10 tur çevir; yine değişmiyorsa modül arızalı olabilir |
| Yük bağlanınca 5 V, 4,3 V'a düşüyor | Adaptör akımı yetmiyor, giriş-çıkış farkı az ya da kablolar ince | Girişi yük altında ölç, en az 2 V fark bırak, kısa ve kalın kablo kullan |
| Servo dönünce Arduino resetleniyor | Servo ve Arduino aynı zayıf hattan besleniyor | Servolara ayrı modül, 470–1000 µF kondansatör ve ortak GND |
| Modül birkaç dakika sonra kesilip açılıyor | Aşırı ısınma koruması devrede | Yükü azalt, soğutucu ve hava akışı ekle ya da 5 A'lik modüle geç |
| Ters bağlamadan sonra çıkış 0 V ya da girişe eşit | Yonga ve diyot yanmış | Modülü değiştir, girişe seri Schottky diyot ekle |
| Analog okumalarda ya da seste gürültü | 150 kHz anahtarlama dalgalanması | Çıkışa LC filtre ekle ya da buck + LDO kullan, GND yolunu kısa tut |
| Ayar zamanla kayıyor | Titreşim trimpotu çevirmiş | Trimpotu oje ya da silikonla sabitle veya sabit direnç kullan |
LM2596; doğru ayarlandığında, giriş-çıkış farkı yeterli tutulduğunda ve 2 A sınırına saygı gösterildiğinde bir projeyi tek bir adaptörden ya da aküden besleyen en pratik parçalardan biridir. Sırayı unutma: önce yüksüz ayarla, sonra yük altında ölç, en son kartı bağla. BlueGrays uygulamasında L298N'li Bluetooth araba, engelden kaçan robot, servo projeleri, 32 servolu koreografi, WS2812B şerit kontrolü, LCD'li dijital voltmetre ve akıllı sulama istasyonu gibi ayrı besleme isteyen projeleri adım adım devre şeması ve koduyla bulabilirsin.
Sıkça sorulan sorular
LM2596 nasıl ayarlanır?
Girişe kaynağı bağla ve çıkışa hiçbir şey bağlamadan multimetrenin problarını OUT+ ve OUT− uçlarına değdir. Mavi trimpotun vidasını küçük bir tornavidayla çevir ve istediğin değeri (ör. 5,00 V) görünce dur. Son olarak yükü bağlayıp ölçümü yük altında tekrarla.
LM2596 kaç amper verir?
LM2596 yongası 3 A için tasarlanmıştır ve içindeki akım sınırı tepe akımda yaklaşık 4,5 A'de devreye girer. Hazır modüller soğutucusuz sürekli 2 A civarında rahat çalışır; 3 A için soğutucu ve hava akışı gerekir. Ucuz modüllerdeki sahte yongalar daha azını verebildiği için tasarımı 2 A üzerinden yapmak güvenlidir.
LM2596 trimpot hangi yöne çevrilince voltaj artar?
Yön, trimpotun karta nasıl bağlandığına göre modülden modüle değişebilir; bu yüzden ezbere güvenme. Vidayı bir yöne 2–3 tur çevirip multimetreye bak; gerilim düşüyorsa o yön azaltır. Trimpot yaklaşık 25 turludur ve ucunda durdurucu olmadığı için sona gelince tıklayarak boşa döner.
LM2596 çıkış voltajı neden düşmüyor?
En sık sebep trimpotun en üst ayarda olmasıdır; çok turlu trimpotta gerilimin değişmeye başlaması için 10–20 tur çevirmen gerekebilir. Ayarlanan değer girişten yüksekse çıkış girişin 1–2 V altında takılı kalır. Hiçbir tur değişiklik yapmıyor ve çıkış girişe eşitse yonga içeriden kısa devre olmuştur; modülü değiştir.
LM2596 ile Arduino nasıl beslenir?
Modülü 5,0 V'a ayarlayıp çıkışı Arduino'nun 5V pinine bağlayabilirsin; bu en serin yöntemdir ama kartı koruyan bir şey kalmaz. Daha güvenli seçenek, modülü 7,5–9 V'a ayarlayıp DC jakına ya da Vin pinine bağlamaktır. Her iki durumda da modülün OUT− ucu Arduino'nun GND'sine bağlanmalıdır.
LM2596 mı 7805 mi daha iyi?
Giriş ile çıkış arasındaki fark büyük ve akım yüksekse LM2596 çok daha iyidir: 12 V'tan 5 V'a 1 A'de 7805 7 W ısı üretirken LM2596'nın kaybı 1 W'ın altında kalır. Fark küçük, akım düşük ve sessiz bir besleme gerekiyorsa 7805 daha basittir. Hassas analog devrelerde ikisi art arda kullanılabilir.
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

Servo Çember Koreografisi — 32 Servo ile Animasyonlu Desenler
Arduino Mega üzerinde çember şeklinde dizilmiş 32 servo motorla çalışan görsel bir animasyon projesi. Servolar tek bir dizi (array) içinde yönetiliyor ve Mega'nın 22–53 numaralı pinlerine bağlanarak dört farklı hareket dizisi sergiliyor: tüm servoların rastgele açılara gittiği kaotik bir titreşim, hepsinin aynı anda hareket ettiği senkron süpürme, çember etrafında akıcı şekilde dönen bir dalga ve son olarak sağa sola sallanan bir pusula ibresi. Dönen dalga efekti, her servonun aktif servoya olan

ESP32 WS2812B NeoPixel Şerit Kontrolü
WS2812B (NeoPixel) adreslenebilir LED'ler, tek bir veri pini üzerinden zincirleme kontrol edilebilen akıllı RGB LED'lerdir. Bu projede 8 LED'lik bir WS2812B şeridi Adafruit_NeoPixel kütüphanesi ile kontrol edip akıcı bir gökkuşağı animasyonu üreteceğiz. ESP32'nin 3.3V mantık seviyesi çoğu WS2812B partisinde sorunsuz çalışsa da, kararsızlık durumunda 470Ω seri direnç ve 1000µF kondansatör çözümünü göstereceğiz. Animasyon, HSV renk uzayında ton (hue) değerini kaydırarak elde edilir.

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
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ç

