Temeller · 14 dk okuma

7805 Voltaj Regülatörü: Bağlantı, Kondansatör ve Isı Hesabı

7805 voltaj regülatörü nasıl bağlanır? Pinler, 0,33 µF ve 0,1 µF kondansatör, dropout, ısı hesabı ve soğutucu, 78xx serisi, AMS1117-3.3 ve buck farkı.

7805 voltaj regülatörü, girişine verdiğin 7–35 V arasındaki yüksek ya da dalgalı bir gerilimi sabit 5 V'a düşüren, üç bacaklı ve çok ucuz bir entegredir. 12 V adaptörden, araba aküsünden ya da bir pil paketinden Arduino, sensörler ve röle kartları için temiz bir 5 V elde etmenin en kolay yoludur: yanına iki küçük kondansatör koyman yeter. Ancak 7805 fazla gerilimi ısıya çevirerek çalışır; bu yüzden doğru bağlantıyı, giriş gerilimi sınırlarını ve ne kadar ısınacağını bilmek, devrenin güvenle çalışmasının anahtarıdır.

Bu rehberde voltaj regülatörünün ne olduğunu, 7805'in pinlerini ve 0,33 µF / 0,1 µF kondansatörlerle bağlantısını, dropout gerilimini, P = (Vin − Vout) · I formülüyle ısı hesabını ve soğutucu seçimini adım adım öğreneceksin. Ardından 78xx ailesini, 3,3 V modüller için AMS1117-3.3 LDO'yu, lineer ve anahtarlamalı (buck) regülatör farkını, Arduino'nun kendi regülatörünü ve Vin sınırını inceleyip regülatörü Arduino, ESP32 ve Raspberry Pi Pico ile ölçen kodlara geçeceğiz.

LM7805 voltaj regülatörü modülü
LM7805 regülatör modülü: soğutucuya vidalanmış 7805, giriş ve çıkış klemensleri, filtre kondansatörleri, koruma diyotları ve 5 V çıkış pinleri tek kartta.

Voltaj regülatörü nedir, nasıl çalışır?

Voltaj regülatörü, girişindeki gerilim ya da çekilen akım değişse bile çıkışında sabit bir gerilim tutan devredir. 7805 bir lineer regülatördür: içinde, giriş ile çıkış arasına seri bağlı bir güç transistörü, sıcaklıkla değişmeyen bir iç referans gerilimi ve çıkışı bu referansla sürekli karşılaştıran bir hata yükselteci bulunur. Çıkış 5 V'un altına inerse transistör biraz daha iletime geçer, üstüne çıkarsa kısılır. Kısacası transistör, kendiliğinden ayarlanan bir direnç gibi davranır ve girişle çıkış arasındaki fazla gerilimi üzerinde tutar. Bu fazlalık akımla çarpılınca ısıya dönüşür; 7805'in hem basitliğinin hem de ısınmasının nedeni budur.

78 ailesinin son iki rakamı çıkış gerilimini söyler: 7805 5 V, 7812 12 V verir. Başındaki harfler yalnızca üreticiyi gösterir; LM7805, L7805CV, MC7805 ve KA7805 aynı işi yapar. Entegrenin içinde akım sınırlama, aşırı ısınınca kendini kapatma (termal koruma) ve güvenli çalışma alanı koruması vardır. Bu yüzden çıkış kısa devre olsa bile kolay kolay bozulmaz, yalnızca akımı kısar ya da soğuyana kadar kapanır.

ÖzellikDeğer
Çıkış gerilimi5 V (±%4: 4,8–5,2 V)
Giriş gerilimi7–25 V önerilir, mutlak sınır 35 V
Dropout (en küçük fark)Tipik 2 V (1 A yükte)
Çıkış akımı1 A, iyi soğutmayla 1,5 A'e kadar
Kısa devre akımıYaklaşık 2 A (iç sınırlama)
Boşta akım (Iq)Tipik 3–5 mA, en fazla 8 mA
Isıl direnç (TO-220)Yongadan kılıfa 4–5 °C/W, soğutucusuz havaya 50–65 °C/W
Termal korumaYonga yaklaşık 150 °C'de kendini kapatır
KılıflarTO-220 (1 A), D2PAK, DPAK; küçük kardeşi 78L05 TO-92 (100 mA)

7805 pinleri ve bağlantı şeması

7805'i yazılı yüzü sana bakacak ve bacakları aşağıda olacak şekilde tuttuğunda soldan sağa pinler 1: Giriş (IN), 2: GND ve 3: Çıkış (OUT) şeklindedir. Arkadaki delikli metal sırt da GND'ye bağlıdır; bu yüzden 7805'i devrenin GND'sine bağlı bir soğutucuya ya da metal kutuya yalıtkan kullanmadan vidalayabilirsin. Regülatörün giriş tarafındaki GND ile çıkış tarafındaki GND aynı noktadır: kaynak, regülatör ve beslediğin kart ortak GND'de buluşmalıdır. Aşağıdaki tablo 7805 çıkışının hangi karta nereden bağlanacağını gösteriyor.

7805 piniNeye bağlanır?Arduino UnoESP32 DevKitRaspberry Pi Pico
1 – Giriş (IN)7–25 V kaynağın artısı + 0,33 µFBağlanmazBağlanmazBağlanmaz
2 – GNDKaynağın eksisi ve kondansatörlerin ortak ucuGNDGNDGND (ör. pin 38)
3 – Çıkış (OUT)5 V hattı + 0,1 µF5V pini5V (VIN) piniVSYS (pin 39), Schottky diyot ile
7805'in çıkışını Arduino'nun Vin pinine ya da DC jakına bağlama: kartın kendi regülatörü de en az 7 V ister ve 5 V girişte kartın 5V hattı 3,5–4 V'a düşer. 7805 çıkışının yeri 5V pinidir. Ayrıca küçük TO-92 kılıflı 78L05'te pin sırası terstir (düz yüz sana bakarken 1: çıkış, 2: GND, 3: giriş) ve negatif gerilim veren 7905'te sıra GND, giriş, çıkış şeklindedir. Bacak sırasını her zaman kılıfa göre kontrol et.

Kondansatörler: neden 0,33 µF ve 0,1 µF?

Üretici bilgi sayfalarındaki standart devrede girişte 0,33 µF, çıkışta 0,1 µF kondansatör bulunur (bazı üreticiler girişte 0,22 µF yazar). Giriş kondansatörü, regülatör besleme kaynağının filtre kondansatöründen uzaktaysa kabloların endüktansının yol açabileceği salınımı önler. Çıkış kondansatörü kararlılık için şart olmasa da ani yük değişimlerinde gerilimin daha az oynamasını sağlar. İkisi de seramik olmalı ve bacaklara mümkün olduğunca yakın takılmalıdır. Seramik kondansatörün üzerinde 0,33 µF için 334, 0,1 µF için 104 yazar; başka kodları çözmek için kondansatör kodu hesaplayıcısını kullanabilirsin.

Pratikte bu iki küçük kondansatöre birer elektrolitik eklemek iyi bir alışkanlıktır: girişte 10–100 µF kaynaktan gelen dalgalanmayı yumuşatır, çıkışta 10–47 µF servo, röle ya da Wi-Fi modülü gibi ani akım çeken yüklerde gerilim çökmesini azaltır. Çıkışa 10 µF'tan büyük kondansatör koyduğunda, girişin kısa devre olma ihtimaline karşı çıkıştan girişe ters yönde bir 1N4001 diyot bağla; giriş aniden sıfıra düşerse büyük kondansatör regülatörün içinden değil bu diyot üzerinden boşalır. Girişe seri takılan ikinci bir 1N4001 ise kaynağı ters bağlamana karşı korur, ama yaklaşık 0,7 V düşüm ekler. Türleri ve yönleri için kondansatör nedir ve diyot nedir yazılarına bakabilirsin.

Adım adım: breadboard üzerinde 7805 ile 5 V besleme

  1. 7805'i breadboard'a, üç bacağı ayrı sütunlara gelecek ve yazılı yüzü sana bakacak şekilde tak.
  2. Kaynağın artısını (ör. 9 V adaptör) 1 numaralı giriş bacağına, eksisini 2 numaralı GND bacağına bağla. İstersen artı hattına ters polariteye karşı seri bir 1N4001 ekle.
  3. Giriş ile GND arasına 0,33 µF (334) seramik kondansatörü, bacaklara en yakın deliklere tak.
  4. Çıkış (3) ile GND arasına 0,1 µF (104) seramik kondansatörü ve isteğe bağlı 10–47 µF elektroliti tak; elektrolitin uzun bacağı artıya gelir.
  5. Yükü bağlamadan önce çıkışı multimetreyle ölç: 4,8–5,2 V arası görmelisin.
  6. Çıkışı Arduino'nun 5V pinine, GND'yi Arduino'nun GND'sine bağla. Kod yüklerken USB'yi ve harici beslemeyi aynı anda kullanmaktan kaçın.
  7. Birkaç dakika çalıştırdıktan sonra regülatörün sıcaklığını kontrol et; çok ısınıyorsa aşağıdaki ısı hesabına göre soğutucu ekle ya da giriş gerilimini düşür.
Breadboard'da sık sık 5 V ve 3,3 V gerekiyorsa üzerinde hazır regülatörler bulunan MB102 breadboard güç modülünü kullanabilirsin. O modülde de AMS1117-5.0 ve AMS1117-3.3 lineer regülatörler vardır, yani bu yazıdaki dropout ve ısı kuralları onun için de geçerlidir.

Dropout gerilimi: girişe en az kaç volt vermelisin?

Lineer regülatörün çıkışı sabit tutabilmesi için girişin çıkıştan belirli bir miktar yüksek olması gerekir; bu en küçük farka dropout gerilimi denir. 7805'te tipik dropout 1 A yükte 2 V'tur, yani 5 V çıkış için girişte en az 7 V olmalıdır; bilgi sayfalarındaki ölçümler de 7–7,5 V'tan başlar. Fark bunun altına inerse regülatör artık regüle edemez ve çıkış, girişi yaklaşık 2 V geriden takip eder: 6 V girişte çıkış 4 V civarına düşer, Arduino resetlenir ya da analog ölçümler kayar.

Önemli olan ortalama değer değil, girişin en düşük anıdır. Trafo, köprü diyot ve filtre kondansatöründen oluşan klasik bir beslemede gerilim her yarım periyotta dalgalanır; bu dalgalanma yaklaşık ΔV = I / (100 · C) formülüyle bulunur (50 Hz şebeke, tam dalga doğrultma). 500 mA yük ve 2200 µF kondansatörle ΔV ≈ 2,3 V olur. 9 V'luk bir AC trafo doğrultulduğunda tepe yaklaşık 11,3 V'tur ve dalgalanmanın dibi 9 V civarında kalır; 7 V'un üstünde olduğu için yeterlidir. Aynı mantıkla 9 V pil yük altında hızla 7 V'un altına iner; bu yüzden 7805'i 9 V pille beslemek kısa ömürlüdür. Pil seçenekleri için Arduino'yu pille çalıştırma rehberine bakabilirsin.

Isı hesabı: P = (Vin − Vout) · I

7805'in girişten çektiği akım, çıkıştan verdiği akımla neredeyse aynıdır; fark yalnızca birkaç miliamperlik boşta akımdır. Bu yüzden regülatörde ısıya dönüşen güç P = (Vin − Vout) · I formülüyle hesaplanır, verim ise kabaca Vout / Vin'dir. Örnek: 12 V adaptörden 500 mA çeken bir devreyi beslersen P = (12 − 5) × 0,5 = 3,5 W ısı oluşur. Yüke giden 2,5 W'a karşılık 3,5 W boşa gider ve verim yalnızca %42'dir. Aynı devreyi 7,5 V'luk bir kaynaktan beslersen kayıp 1,25 W'a iner. Yani gereğinden yüksek giriş gerilimi, regülatöre fazladan ısı yüklemekten başka bir işe yaramaz. Akım, gerilim ve güç ilişkisini tazelemek istersen Ohm kanunu yazısına göz at.

Giriş (Vin)100 mA300 mA500 mA1 A
7 V0,2 W0,6 W1,0 W2,0 W
9 V0,4 W1,2 W2,0 W4,0 W
12 V0,7 W2,1 W3,5 W7,0 W
24 V1,9 W5,7 W9,5 W19 W

Soğutucu (heatsink) seçimi

Yonganın sıcaklığı Tj = Tortam + P · θ ile bulunur; θ (teta) ısıl dirençtir ve birimi °C/W'tır. Soğutucusuz bir TO-220 kılıfın yongadan havaya ısıl direnci 50–65 °C/W'tır: 1 W'lık kayıp, yongayı ortamın 50–65 °C üstüne çıkarır. Güvenli bir tasarımda yonga sıcaklığı 125 °C'nin altında kalmalıdır; bu da 25 °C'lik bir odada soğutucusuz en fazla 1,5 W civarı demektir. Kutunun içi 50–60 °C'ye ısınıyorsa sınır 1 W'a iner. Yukarıdaki tabloda 1 W'ı aşan her durum için soğutucu düşünmelisin.

Daha fazla güç için soğutucunun ısıl direncini hesapla: θtoplam = θJC + θCS + θSA. 7805'te yongadan kılıfa θJC yaklaşık 5 °C/W, termal macunla kılıftan soğutucuya θCS yaklaşık 0,5–1 °C/W'tır. 3,5 W'lık örnekte, 40 °C'lik bir kutuda yongayı 110 °C'de tutmak için θtoplam ≤ (110 − 40) / 3,5 = 20 °C/W olmalıdır; buradan soğutucunun kendisi için θSA ≤ 20 − 5 − 1 = 14 °C/W bulunur. Küçük klipsli TO-220 soğutucular genellikle 20–30 °C/W olduğu için yetmez; kanatlı, orta boy bir alüminyum soğutucu gerekir. Soğutucu üreticileri bu değeri kataloglarında °C/W olarak verir.

  • Termal macun kullan: Kılıf ile soğutucu arasındaki ince hava boşluğu ısı aktarımını ciddi biçimde azaltır; ince bir kat macun yeterlidir.
  • Sırt GND'dir: 78xx'te metal sırt GND'ye bağlı olduğu için soğutucuyu yalıtmak gerekmez ve birden çok 78xx aynı soğutucuyu paylaşabilir. 79xx'te ise sırt girişe bağlıdır; mika pul ve plastik burçla yalıtılmalıdır.
  • Termal korumaya güvenme: Aşırı ısınan 7805 kendini kapatır, soğuyunca yeniden açılır. Çıkış birkaç saniyede bir kesilir ve Arduino durmadan resetlenir; bu normal çalışma değil, son çare korumadır.
  • Isıyı bölmek: En etkili çözüm girişi düşürmektir. 24 V'tan 5 V elde edeceksen önce bir buck dönüştürücüyle 7–8 V'a in, son adımda 7805 kullan.

78xx serisi: 7805, 7809, 7812 ve diğerleri

ModelÇıkışEn düşük girişEn yüksek girişTipik kullanım
78055 V7 V35 VArduino, sensörler, röle kartları
78088 V10,5 V35 VArduino Vin girişi için ara besleme
78099 V11,5 V35 V9 V'luk devreler, Arduino Vin
781212 V14,5 V35 V12 V fan ve röleler (düşük akım)
781515 V17,5 V35 VOp-amp devreleri
782424 V27 V40 V24 V endüstriyel sensörler
78L055 V, 100 mA7 V30 VTO-92 kılıf, düşük akımlı devreler
7905−5 V−7 V−35 VNegatif besleme (pin sırası farklı)

Ayarlanabilir bir gerilim gerekiyorsa ailenin kuzeni LM317'yi kullanabilirsin: iki dirençle 1,25–37 V arası istediğin çıkışı verir ve çıkış Vout = 1,25 × (1 + R2 / R1) formülüyle bulunur (R1 genellikle 240 Ω). Isı ve dropout kuralları 7805 ile aynıdır. 500 mA'lik 78M05 ise yüzeye montaj kartlarda sık görülen orta güçlü sürümdür. Hangi modeli seçersen seç, en düşük giriş geriliminin çıkıştan yaklaşık 2–3 V yüksek olması kuralı değişmez.

AMS1117-3.3 LDO: 3,3 V modüller için

ESP32, Raspberry Pi Pico, nRF24L01 ve birçok sensör 3,3 V ile çalışır. 7805 ile 3,3 V elde edemezsin; bunun için en yaygın seçim AMS1117-3.3'tür. AMS1117 bir LDO (low dropout, düşük düşümlü) regülatördür: 800 mA'de dropout'u tipik 1,1 V, en fazla 1,3 V'tur, yani 5 V'tan rahatça 3,3 V üretir. 1 A'e kadar akım verebilir, girişi en fazla 15 V'tur ve boşta yaklaşık 5 mA çeker. Çoğu ESP32 geliştirme kartında 5 V'u 3,3 V'a düşüren regülatör de budur.

AMS1117 3.3V voltaj regülatörü modülü
AMS1117-3.3 modülü: VIN ve GND'den 5 V girer, VOUT'tan 3,3 V çıkar; girişte ve çıkışta 10 µF (106) ve 0,1 µF (104) kondansatörler hazır takılıdır.

AMS1117'nin SOT-223 kılıfında pin sırası 7805'ten farklıdır: 1: GND/ADJ, 2: Çıkış, 3: Giriş ve büyük sırt çıkışa bağlıdır. Bilgi sayfası kararlılık için çıkışa 22 µF tantal kondansatör önerir; hazır modüllerde 10 µF kondansatörler takılı gelir ve normal yüklerde sorunsuz çalışır, ama kendi devreni kuruyorsan çıkışa 22 µF koy. Isı tarafında daha hassastır: SOT-223 kılıfın ısıl direnci karttaki bakır alana göre 46–90 °C/W arasındadır ve üretici yaklaşık 1,2 W'tan sonrasını garanti etmez. 5 V'tan 3,3 V'a 300 mA için P = 1,7 × 0,3 = 0,51 W'tır ve sorun olmaz; ama 12 V'tan 3,3 V'a aynı akım 2,6 W demektir ve modül kısa sürede termal korumaya girer.

RegülatörÇıkışDropoutMaks. girişMaks. akımBoşta akım
7805 (TO-220)5 V~2 V35 V1–1,5 A3–8 mA
AMS1117-3.3 (SOT-223)3,3 V1,1–1,3 V15 V1 A~5 mA
AMS1117-5.0 (SOT-223)5 V1,1–1,3 V15 V1 A~5 mA
MCP1700-3302 (TO-92 / SOT-23)3,3 V~0,18 V (250 mA)6 V250 mA1,6 µA

Pille aylarca çalışacak bir projede boşta akım, dropout kadar önemlidir: AMS1117 hiçbir şey beslemezken bile yaklaşık 5 mA çeker ve bu, derin uykudaki bir ESP32'nin tüketiminin yüzlerce katıdır. Tek hücreli bir Li-ion pilden (3,0–4,2 V) 3,3 V üretmek için de AMS1117'nin 1,1 V'luk düşümü fazla gelir: tam dolu 4,2 V'luk hücrede bile çıkış 3,1 V civarında kalır ve pil boşaldıkça düşer. Bu tür projelerde MCP1700 gibi mikroamper düzeyinde boşta akım çeken ve dropout'u 0,2 V'un altında olan LDO'lar tercih edilir.

Lineer mi, anahtarlamalı (buck) mı?

Anahtarlamalı bir buck (gerilim düşürücü) regülatör, fazla gerilimi ısıya çevirmek yerine girişi saniyede on binlerce kez açıp kapatır ve enerjiyi bir bobin ile kondansatörde depolayarak çıkışa aktarır. Böylece verim %80–95'e çıkar ve girişten çekilen akım, çıkış akımından daha düşük olur. Örneğin LM2596 tabanlı modüller 4,5–40 V girişten 3 A'e kadar ayarlanabilir çıkış verir ve 150 kHz'te anahtarlama yapar. Bedeli; çıkışta onlarca milivoltluk anahtarlama dalgalanması (ripple), elektromanyetik gürültü ve daha fazla parçadır. Modülün ayarı ve bağlantısı LM2596 voltaj düşürücü yazısında.

12 V → 5 V, 1 A yük7805 (lineer)LM2596 (buck, ~%85 verim)
Girişten çekilen akım≈ 1 A≈ 0,49 A
Isıya giden güç7 W≈ 0,9 W
Verim%42~%85
SoğutucuBüyük soğutucu şartGenellikle gerekmez
Çıkış gürültüsüÇok düşükOnlarca mV dalgalanma
Parça sayısı1 entegre + 2 kondansatörHazır modül ya da bobin, diyot ve kondansatörler
LM2596 step-down buck modülü
LM2596 buck modülü: mavi trimpotla çıkış gerilimi ayarlanır; aynı 5 V'u 7805'ten çok daha az ısıyla üretir.

Pratik kural şu: giriş ile çıkış arasındaki fark küçükse (2–4 V) ve akım birkaç yüz miliamperi geçmiyorsa 7805 ya da bir LDO basit, sessiz ve ucuzdur. Fark büyükse, akım 500 mA'i geçiyorsa ya da pille çalışıyorsan buck dönüştürücü seç. Analog ölçüm, ses ya da hassas sensör beslediğin durumlarda ikisini birleştirmek de yaygındır: önce buck ile 7–8 V'a in, sonra 7805 ile gürültüsü düşük 5 V elde et. Böylece hem verim hem temiz besleme kazanırsın.

Arduino'nun kendi regülatörü ve Vin sınırı

Arduino Uno R3'ün DC jakından ya da Vin pininden verdiğin gerilim, kart üzerindeki 1117 ailesinden bir 5 V LDO regülatörden geçer (orijinal kartta NCP1117, klonlarda çoğunlukla AMS1117); jakın arkasında da ters bağlamaya karşı 4007 tipi bir diyot vardır. Arduino'nun önerdiği aralık 7–12 V, kartın sınırı ise 6–20 V'tur. Alt sınırın nedeni dropout'tur: diyot ve regülatör birlikte yaklaşık 2 V yer, 7 V'un altında 5V hattı düşer. Üst sınırın nedeni ise ısıdır: SOT-223 kılıflı küçük regülatör, Vin 12 V iken 200 mA çekildiğinde (12 − 5) × 0,2 = 1,4 W ısı üretir ve dokunulamayacak kadar ısınır. 20 V'ta aynı yük 3 W demektir.

KartKart üzerindeki regülatörÖnerilen girişSınır
Arduino Uno R3 / Mega5 V LDO (1117 ailesi)7–12 V (jak ya da Vin)6–20 V
Arduino Nano5 V LDO (klonlarda çoğunlukla AMS1117)7–12 V (Vin)6–20 V
Arduino Uno R4Anahtarlamalı (buck) dönüştürücü6–24 V (jak ya da Vin)24 V
ESP32 DevKit3,3 V LDO (çoğunlukla AMS1117)5 V (USB ya da 5V pini)Isı nedeniyle 6 V'u aşma
Raspberry Pi PicoBuck-boost (anahtarlamalı)VSYS: 1,8–5,5 V5,5 V

Kartın 5V pininden de çıkış alabilirsin, ama bu akım da aynı regülatörden geçer. USB ile beslerken 5V hattı doğrudan USB'den gelir ve 500 mA'lik sigortayla sınırlıdır; jaktan beslerken ise sınırı regülatörün ısısı belirler. Bu yüzden servo, LED şerit ya da motor gibi yükleri Arduino'nun 5V pininden değil, ayrı bir 7805 ya da buck modülünden besle ve GND'leri birleştir. 3.3V pini ise yalnızca 50 mA verebilir; ESP-01 ya da antenli nRF24L01 gibi akımı yüksek modüller için ayrı bir AMS1117-3.3 kullan. Pinlerin yerleşimi için Arduino Uno pinleri yazısına bakabilirsin.

Arduino ile regülatörü test etmek: giriş, çıkış ve ısı

Aşağıdaki kod, 7805'in giriş ve çıkış gerilimini ölçer; aradaki farkı, harcanan gücü ve tahmini yonga sıcaklığını Seri Monitör'e yazar, dropout'a yaklaştığında ya da soğutucu gerektiğinde uyarır. Giriş gerilimi 5 V'u aştığı için doğrudan analog pine bağlanamaz: girişi 100 kΩ ve 22 kΩ'luk bir gerilim bölücüyle A0'a (yaklaşık 27 V'a kadar ölçer), çıkışı iki adet 10 kΩ ile A1'e bağla. Oranları kendi dirençlerine göre gerilim bölücü hesaplayıcısıyla kontrol edebilirsin. Tüm GND'ler ortak olmalıdır.

C++ (Arduino IDE)
1// 7805 test istasyonu: giriş, çıkış ve ısı / 7805 test bench: input, output and heat
2// Kart: Arduino Uno / Nano (ATmega328P) / Board: Arduino Uno / Nano (ATmega328P)
3
4const float R1_IN  = 100000.0;  // giriş bölücü üst direnç / input divider top resistor
5const float R2_IN  = 22000.0;   // giriş bölücü alt direnç / input divider bottom resistor
6const float R1_OUT = 10000.0;   // çıkış bölücü üst direnç / output divider top resistor
7const float R2_OUT = 10000.0;   // çıkış bölücü alt direnç / output divider bottom resistor
8
9const float LOAD_A    = 0.30;   // multimetreyle ölçtüğün yük akımı (A) / load current measured with a multimeter (A)
10const float THETA_JA  = 60.0;   // soğutucusuz TO-220, °C/W / TO-220 without heatsink, °C/W
11const float T_AMBIENT = 30.0;   // ortam sıcaklığı (°C) / ambient temperature (°C)
12const float DROPOUT_V = 2.0;    // 7805 için gereken en az fark (V) / minimum headroom for the 7805 (V)
13
14// Gerçek besleme gerilimini dahili 1,1 V referansla ölçer (mV)
15// Measures the real supply voltage with the internal 1.1 V reference (mV)
16long readVcc() {
17  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);  // referans AVcc, kanal 1,1 V / AVcc reference, 1.1 V channel
18  delay(2);                                               // referansın oturmasını bekle / let the reference settle
19  ADCSRA |= _BV(ADSC);                                    // dönüşümü başlat / start a conversion
20  while (bit_is_set(ADCSRA, ADSC));                       // bitmesini bekle / wait until it finishes
21  long raw = ADCL;                                        // önce ADCL okunmalı / ADCL must be read first
22  raw |= ADCH << 8;
23  return 1125300L / raw;                                  // 1,1 x 1023 x 1000
24}
25
26// Bölücünün arkasındaki gerçek gerilimi hesaplar / Calculates the real voltage behind a divider
27float readVolts(uint8_t pin, float vcc, float r1, float r2) {
28  analogRead(pin);                                        // ilk okumayı at / discard the first reading
29  long sum = 0;
30  for (int i = 0; i < 16; i++) sum += analogRead(pin);    // 16 örneğin ortalaması / average of 16 samples
31  float vPin = (sum / 16.0) * vcc / 1023.0;
32  return vPin * (r1 + r2) / r2;
33}
34
35void setup() {
36  Serial.begin(9600);
37}
38
39void loop() {
40  float vcc  = readVcc() / 1000.0;
41  float vin  = readVolts(A0, vcc, R1_IN, R2_IN);
42  float vout = readVolts(A1, vcc, R1_OUT, R2_OUT);
43
44  float headroom = vin - vout;                    // regülatör üzerindeki gerilim / voltage across the regulator
45  float heatW    = headroom * LOAD_A;             // P = (Vin - Vout) x I
46  float tj       = T_AMBIENT + heatW * THETA_JA;  // tahmini yonga sıcaklığı / estimated junction temperature
47  float eff      = (vin > 1.0) ? 100.0 * vout / vin : 0.0;  // verim (%) / efficiency (%)
48
49  Serial.print(F("Vin "));      Serial.print(vin, 2);
50  Serial.print(F(" V | Vout ")); Serial.print(vout, 2);
51  Serial.print(F(" V | Fark ")); Serial.print(headroom, 2);
52  Serial.print(F(" V | Isi "));  Serial.print(heatW, 2);
53  Serial.print(F(" W | Tj ~"));  Serial.print(tj, 0);
54  Serial.print(F(" C | Verim %")); Serial.println(eff, 0);
55
56  if (headroom < DROPOUT_V) Serial.println(F("UYARI: giris dusuk, dropout / WARNING: input too low, dropout"));
57  if (tj > 125.0)           Serial.println(F("UYARI: sogutucu gerekli / WARNING: heatsink required"));
58  delay(1000);
59}

Kod, analog ölçümlerin referansı olan besleme gerilimini varsaymak yerine readVcc() fonksiyonuyla ölçer: ATmega328P'nin içindeki yaklaşık 1,1 V'luk sabit referansı okuyup gerçek Vcc'yi geri hesaplar. Böylece Arduino'yu USB'den ya da 7805'in kendisinden beslesen de ölçümler doğru kalır. Bu yöntem Uno ve Nano gibi ATmega328P kartlar içindir; dahili referans yongadan yongaya yaklaşık ±%10 farklı olabildiği için sonucu bir kez multimetreyle karşılaştırıp 1125300 sabitini düzeltmen önerilir. LOAD_A değerine multimetreyle ölçtüğün yük akımını yaz; regülatöre soğutucu taktıysan THETA_JA yerine soğutucu hesabındaki toplam ısıl direnci kullan.

ESP32: AMS1117 ve Wi-Fi akım darbeleri

ESP32 geliştirme kartları 5 V girişi kart üzerindeki LDO ile 3,3 V'a düşürür. Kart normalde 50–100 mA çekse de Wi-Fi gönderimi sırasında akım bir anlığına 300 mA civarına çıkar; Espressif bu yüzden en az 500 mA verebilen bir kaynak önerir. Zayıf bir kaynak, ince ve uzun bir USB kablosu ya da ısınmış bir regülatör bu darbede 3V3 hattını çökertir ve ESP32 Seri Monitör'e "Brownout detector was triggered" yazıp kendini resetler. Aşağıdaki kod son resetin nedeninin brownout olup olmadığını söyler ve Wi-Fi'ye bağlanırken 3V3 hattının gördüğü en düşük gerilimi kaydeder. 3V3 pinini iki adet 10 kΩ'luk bölücüyle GPIO 34'e bağla.

C++ (Arduino IDE)
1// ESP32: 3V3 hattını ve brownout resetini izle / ESP32: watch the 3V3 rail and brownout resets
2#include <WiFi.h>
3#include "esp_system.h"
4
5const char* WIFI_SSID = "AgAdi";   // Wi-Fi ağ adı / Wi-Fi network name
6const char* WIFI_PASS = "Sifre";   // Wi-Fi şifresi / Wi-Fi password
7const int SENSE_PIN = 34;          // 3V3 -> 10k -> GPIO34 -> 10k -> GND (yalnız giriş, ADC1) / input-only ADC1 pin
8
9int minMv = 9999;                  // görülen en düşük gerilim (mV) / lowest voltage seen (mV)
10
11int rail3v3() {
12  return analogReadMilliVolts(SENSE_PIN) * 2;  // bölücü yarıya indirir / the divider halves it
13}
14
15void setup() {
16  Serial.begin(115200);
17  delay(300);
18  if (esp_reset_reason() == ESP_RST_BROWNOUT) {
19    Serial.println("Son reset: BROWNOUT, besleme yetersiz / Last reset: BROWNOUT, weak supply");
20  }
21  Serial.printf("Wi-Fi oncesi 3V3: %d mV\n", rail3v3());
22
23  WiFi.begin(WIFI_SSID, WIFI_PASS);
24  unsigned long t0 = millis();
25  while (WiFi.status() != WL_CONNECTED && millis() - t0 < 15000) {
26    int mv = rail3v3();                        // bağlanırken sürekli ölç / keep sampling while connecting
27    if (mv < minMv) minMv = mv;
28    delay(1);
29  }
30  Serial.printf("Baglanirken en dusuk 3V3: %d mV\n", minMv);
31}
32
33void loop() {
34  int mv = rail3v3();
35  if (mv < minMv) minMv = mv;
36  Serial.printf("3V3: %d mV | en dusuk / min: %d mV\n", mv, minMv);
37  delay(1000);
38}

Bağlantı sırasında en düşük değer 3,0 V'un altına iniyorsa besleme yetersizdir. ADC çok kısa çöküşlerin hepsini yakalayamaz, ama eğilimi açıkça gösterir. Çözüm genellikle basittir: kısa ve kalın bir USB kablosu, 5V ile GND arasına karta yakın 470 µF'lık bir elektrolitik kondansatör ya da en az 500 mA verebilen bir kaynak. ESP32'yi 12 V'tan besleyeceksen 12 V'u karttaki AMS1117'ye vermek yerine önce bir buck modülüyle 5 V'a indir. Ayrıntılı sorun giderme için ESP32 brownout ve Guru Meditation hataları yazısına bakabilirsin.

Raspberry Pi Pico: VSYS ve 7805

Raspberry Pi Pico'da lineer regülatör yerine verimli bir buck-boost dönüştürücü vardır ve VSYS pini 1,8–5,5 V arası gerilim kabul eder. 12 V'luk bir sistemde Pico'yu çalıştırmak için 7805 çıkışını VSYS'e bağlayabilirsin; USB ile aynı anda kullanacaksan araya 1N5819 gibi bir Schottky diyot koy, aksi halde USB'nin 5 V'u ile 7805 birbirine karşı çalışır. 7805 çıkışını asla 3V3 pinine bağlama; bu pin 3,3 V'un üstünü kaldırmaz. Aşağıdaki MicroPython kodu GP26'ya bağlı bölücüyle 7805'in girişini, kart üzerindeki GP29 kanalıyla da VSYS'i ölçer.

MicroPython
1# Pico: 7805 girişini ve VSYS'i ölç / Pico: measure the 7805 input and VSYS
2from machine import ADC
3import time
4
5adc_in = ADC(26)            # GP26 (ADC0): 100k/22k bölücü / 100k/22k divider
6adc_vsys = ADC(29)          # GP29 (ADC3): kart üzerinde VSYS/3 / VSYS/3 on the board
7
8K_IN = (100 + 22) / 22      # bölücü oranı (~5,55) / divider ratio (~5.55)
9V_OUT = 5.0                 # 7805 çıkışı (V) / 7805 output (V)
10LOAD_A = 0.30               # ölçtüğün yük akımı (A) / load current you measured (A)
11
12def volts(adc, ratio, n=16):
13    total = 0
14    for _ in range(n):
15        total += adc.read_u16()          # 0-65535 arası ham değer / raw value 0-65535
16    return total / n * 3.3 / 65535 * ratio
17
18while True:
19    vin = volts(adc_in, K_IN)
20    vsys = volts(adc_vsys, 3)
21    heat = (vin - V_OUT) * LOAD_A        # P = (Vin - Vout) x I
22    print("Vin {:.2f} V | VSYS {:.2f} V | 7805 isi {:.2f} W".format(vin, vsys, heat))
23    if vin - V_OUT < 2.0:
24        print("UYARI: dropout / WARNING: dropout")
25    time.sleep(1)

Pico'nun ADC'si en fazla 3,3 V okuduğu için 100k/22k bölücüyle yaklaşık 18 V'a kadar ölçebilirsin. VSYS değeri, Schottky diyotun yaklaşık 0,3 V'luk düşümü nedeniyle 7805 çıkışından biraz düşük çıkar; bu normaldir. Pico W kullanıyorsan GP29 kablosuz yongayla paylaşıldığı için VSYS ölçümü ek ayar ister; o durumda yalnızca GP26 ölçümünü kullan. Pico'ya yeni başlıyorsan Raspberry Pi Pico nedir? yazısı iyi bir başlangıç noktasıdır.

7805 ve regülatörlerle proje fikirleri

  • Tezgâh tipi 5 V besleme: 12 V adaptör, 7805, soğutucu ve bir anahtarla breadboard projelerine sabit 5 V veren küçük bir kutu yap.
  • Gerilim ve ısı göstergeli besleme: Yukarıdaki test kodunu bir LCD'ye taşıyıp giriş, çıkış ve kaybı canlı göster; temel ölçüm mantığı Arduino voltmetre yapımı yazısında.
  • Araç içi Arduino: 12–14,4 V akü gerilimini önce buck ile 7–8 V'a, ardından 7805 ile 5 V'a indir; araçtaki gerilim sıçramalarına karşı girişe bir TVS diyot ekle.
  • 12 V LED şerit ve röle kontrolü: Şeridi doğrudan 12 V'tan, Arduino'yu ve röle modülünü 7805 çıkışından besle.
  • Servo ve NeoPixel için ayrı hat: 1 A'in altındaki yüklerde 7805, üstünde buck kullanarak servo motorları ve WS2812B LED'leri ortak GND'li ayrı bir 5 V hattından besle.
  • 3,3 V sensör kartı: AMS1117-3.3 ile BME280 ve nRF24L01 gibi 3,3 V modülleri Arduino'dan bağımsız besle; sinyal seviyeleri için lojik seviye dönüştürücü kullan.

Sık yapılan hatalar ve çözümleri

BelirtiOlası sebepÇözüm
Çıkışta 5 V yerine 3,5–4,5 V varGiriş 7 V'un altında (dropout) ya da pil zayıfGirişi 7,5–9 V'a çıkar, ölçümü yük altında yap
7805 birkaç saniye çalışıp kesiliyorTermal koruma devrede, kayıp çok yüksekSoğutucu ekle, girişi düşür ya da buck kullan
Çıkış girişle aynı (ör. 12 V)GND bacağı kopuk ya da regülatör içeriden kısa devre olmuşGND bağlantısını kontrol et; yükü ayırıp ölç, gerekirse değiştir
Çıkış 0 V, regülatör ısınmıyorPin sırası yanlış (78L05 ya da 7905 karışmış) ya da giriş ve çıkış tersKılıfa göre pin sırasını doğrula
Arduino rastgele resetleniyorKondansatörler eksik ya da bacaklardan uzak0,33 µF ve 0,1 µF'ı bacaklara yakın tak, 10–47 µF elektrolit ekle
Arduino'nun regülatörü çok ısınıyorVin 12 V ve 5V pininden çok akım çekiliyorYükleri ayrı 7805 ya da buck ile besle; Vin'i 7–9 V tut
ESP32 Wi-Fi açılınca resetleniyorKaynak ya da AMS1117 tepe akımı karşılamıyorKısa kablo, 470 µF kondansatör, en az 500 mA kaynak
AMS1117-3.3 çıkışı 3 V civarındaGiriş 4,4 V'un altında (ör. tek Li-ion hücre)Girişi 5 V yap ya da düşük dropout'lu bir LDO seç
Bir regülatör devresinde arıza ararken her zaman üç ölçüm yap: giriş gerilimi, çıkış gerilimi ve yük altındayken aradaki fark. Fark 2 V'un altındaysa sorun kaynaktadır; çıkış girişe eşitse sorun GND bağlantısında ya da regülatördedir. Kartın zarar gördüğünden şüpheleniyorsan Arduino yandı mı? yazısındaki kontrol adımlarını izle.

7805; doğru giriş gerilimi, iki küçük kondansatör ve gerektiğinde bir soğutucuyla yıllarca sorunsuz çalışan, elektroniğin en güvenilir parçalarından biridir. Kuralı unutma: giriş ile çıkış arasındaki fark ne kadar büyükse ısı o kadar fazladır. Büyük farklarda buck, 3,3 V için AMS1117, pille uzun süre çalışacak projeler için düşük boşta akımlı bir LDO seç. BlueGrays uygulamasında LCD ekranlı dijital voltmetre, L298N'li Bluetooth kontrollü araba, engelden kaçan robot, akıllı sulama istasyonu ve ESP32 deep sleep projelerini adım adım devre şeması ve koduyla bulabilir, besleme kısmını bu rehberdeki hesaplarla kendin kurabilirsin.

Sıkça sorulan sorular

7805'in bacakları hangisi giriş, hangisi çıkış?

Yazılı yüzü sana bakarken ve bacaklar aşağıdayken soldan sağa 1. bacak giriş (IN), 2. bacak GND, 3. bacak çıkıştır (OUT). Metal sırt da GND'ye bağlıdır. TO-92 kılıflı 78L05'te sıra terstir (1 çıkış, 2 GND, 3 giriş), bu yüzden kılıfı mutlaka kontrol et.

7805 kaç amper verir?

TO-220 kılıflı 7805 iyi bir soğutucuyla 1 A, koşullara bağlı olarak 1,5 A'e kadar akım verebilir; içindeki akım sınırlama kısa devrede yaklaşık 2 A'de devreye girer. Pratikte sınırı akım değil ısı belirler: soğutucusuz kullanımda (Vin − Vout) · I değeri 1–1,5 W'ı aşmamalıdır. Küçük 78L05 ise yalnızca 100 mA verir.

7805 neden ısınıyor, soğutucu gerekli mi?

7805 lineer bir regülatör olduğu için girişle çıkış arasındaki fazla gerilimi ısıya çevirir. 12 V girişte 500 mA çekmek 3,5 W ısı demektir ve bu soğutucusuz mümkün değildir. Kayıp 1 W'ın altındaysa soğutucu gerekmez; daha fazlasında soğutucu, birkaç watt'ın üstünde ise buck dönüştürücü kullan.

7805 kondansatörsüz çalışır mı?

Kısa kablolarla, iyi filtrelenmiş bir kaynağa yakın kurulduğunda çoğu zaman çalışır ama önerilmez. Girişteki 0,33 µF kablolardan kaynaklanan salınımı önler, çıkıştaki 0,1 µF ani yük değişimlerinde gerilimi dengeler. Bu iki ucuz kondansatör, açıklanamayan resetlerin ve gürültünün önüne geçer.

7805'e en fazla kaç volt verilir?

Mutlak sınır 35 V'tur (7824'te 40 V), ama bu sınıra yakın çalışmak ısı yüzünden pratik değildir. 5 V çıkış için 7,5–12 V giriş idealdir. 24 V gibi yüksek gerilimlerde önce bir buck dönüştürücüyle gerilimi düşürmek çok daha akıllıcadır.

7805 ile 3,3 V elde edilir mi?

Hayır, 7805 yalnızca 5 V verir. 3,3 V için AMS1117-3.3 gibi bir LDO kullanılır; 5 V girişten rahatça 3,3 V üretir ve 1 A'e kadar akım verir. Pille çalışan projelerde boşta akımı mikroamper düzeyinde olan MCP1700 gibi LDO'lar daha uygundur.

Tüm projeleri gör
LCD Ekran ile Dijital Voltmetre
#56Orta
Premium

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

4.5(27)
36
L298N ile Bluetooth Kontrollü Araba
#80İleri
Premium

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

5.0(38)
65
Engelden Kaçan Robot
#81İleri
Premium

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

5.0(38)
49
Akıllı Sulama İstasyonu
#83İleri
Premium

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

5.0(42)
57
ESP32 Deep Sleep — Pil Tasarrufu (OLED + RTC RAM Sayaç)
#135İleri
Premium

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

4.3(10)
16
ESP32 Wi-Fi STA Bağlantısı (LCD Ekranlı)
#127İleri

ESP32 Wi-Fi STA Bağlantısı (LCD Ekranlı)

Bu projede ESP32'yi Station (STA) modunda evdeki Wi-Fi ağına güvenli ve hata toleranslı şekilde bağlıyoruz. SSID/şifreyi secrets.h dosyasına ayırarak Git'e sızmasını önlüyor, otomatik yeniden bağlanma mekanizması kuruyor, RSSI sinyal seviyesini ve IP adresini I2C LCD ekranda gösteriyoruz. Dahili LED durum göstergesi olarak çalışır. Üretim seviyesi bir bağlantı yöneticisidir.

4.4(21)
34
ESP32 WS2812B NeoPixel Şerit Kontrolü
#126Orta
Premium

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.

4.9(19)
30