Regulator Tegangan 7805: Pinout, Kapasitor, dan Perhitungan Panas
Cara menghubungkan regulator tegangan 7805: pinout, kapasitor 0,33 µF dan 0,1 µF, dropout, rugi daya dan perhitungan heatsink, seri 78xx, AMS1117-3.3, serta buck vs linear.
Regulator tegangan 7805 adalah chip tiga kaki yang murah. Ia menerima tegangan yang lebih tinggi atau tidak stabil di mana saja antara 7 dan 35 V, lalu mengubahnya menjadi 5 V yang stabil. Ini cara termudah untuk mendapatkan 5 V yang bersih bagi Arduino, sensor, dan board relay dari adaptor 12 V, aki mobil, atau battery pack: kamu cukup menambahkan dua kapasitor kecil. Tapi 7805 bekerja dengan mengubah kelebihan tegangan menjadi panas, jadi memahami pengkabelan yang benar, batas tegangan input, dan seberapa panas ia nanti adalah kunci rangkaian yang berjalan dengan aman.
Di panduan ini kamu akan belajar langkah demi langkah apa itu regulator tegangan, pinout 7805 dan cara menghubungkannya dengan kapasitor 0,33 µF dan 0,1 µF, arti tegangan dropout, cara menghitung panas dengan P = (Vin − Vout) · I, dan cara memilih heatsink. Setelah itu kita membahas keluarga 78xx, LDO AMS1117-3.3 untuk modul 3,3 V, perbedaan regulator linear dan switching (buck), regulator bawaan Arduino beserta batas Vin-nya, lalu menutup dengan kode yang mengukur regulatormu menggunakan Arduino, ESP32, dan Raspberry Pi Pico.

Apa itu regulator tegangan dan bagaimana cara kerjanya?
Regulator tegangan adalah rangkaian yang menjaga tegangan output tetap konstan meskipun tegangan input atau arus beban berubah. 7805 adalah regulator linear: di dalamnya ada transistor daya yang dipasang seri antara input dan output, tegangan referensi internal yang tidak bergeser karena suhu, dan penguat error yang terus-menerus membandingkan output dengan referensi tersebut. Kalau output turun di bawah 5 V, transistor menghantar sedikit lebih banyak; kalau naik di atasnya, transistor mengurangi hantarannya. Singkatnya, transistor itu berperilaku seperti resistor yang menyetel dirinya sendiri dan menahan kelebihan tegangan antara input dan output pada dirinya. Kelebihan tegangan itu dikalikan arus menjadi panas, dan inilah alasan 7805 begitu sederhana sekaligus alasan ia menjadi hangat.
Dua digit terakhir keluarga 78 menunjukkan tegangan output: 7805 memberi 5 V, 7812 memberi 12 V. Huruf di depannya hanya menandai produsen, jadi LM7805, L7805CV, MC7805, dan KA7805 semuanya melakukan tugas yang sama. Chip ini punya pembatas arus bawaan, thermal shutdown (mati sendiri ketika terlalu panas), dan proteksi safe operating area. Karena itu ia jarang rusak meskipun output-nya korsleting: ia hanya membatasi arus atau mati sampai dingin kembali.
| Parameter | Nilai |
|---|---|
| Tegangan output | 5 V (±4%: 4,8–5,2 V) |
| Tegangan input | Disarankan 7–25 V, maksimum absolut 35 V |
| Dropout (selisih minimum) | Tipikal 2 V (pada 1 A) |
| Arus output | 1 A, sampai 1,5 A dengan pendinginan yang baik |
| Arus hubung singkat | Sekitar 2 A (batas internal) |
| Arus diam (Iq) | Tipikal 3–5 mA, maks. 8 mA |
| Resistansi termal (TO-220) | Junction ke casing 4–5 °C/W, ke udara tanpa heatsink 50–65 °C/W |
| Proteksi termal | Mati ketika suhu junction sekitar 150 °C |
| Kemasan | TO-220 (1 A), D2PAK, DPAK; versi kecil 78L05 dalam TO-92 (100 mA) |
Pinout dan diagram pengkabelan 7805
Pegang 7805 dengan sisi bertulisan menghadap kamu dan kaki mengarah ke bawah; dari kiri ke kanan pin-nya adalah 1: Input (IN), 2: GND, dan 3: Output (OUT). Tab logam yang berlubang juga terhubung ke GND, jadi kamu bisa membaut 7805 ke heatsink atau casing logam yang tersambung ke ground rangkaian tanpa isolator. GND di sisi input dan GND di sisi output adalah titik yang sama: catu daya, regulator, dan board yang kamu beri daya harus bertemu di ground bersama. Tabel di bawah menunjukkan ke mana output 7805 dihubungkan di setiap board.
| Pin 7805 | Dihubungkan ke | Arduino Uno | ESP32 DevKit | Raspberry Pi Pico |
|---|---|---|---|---|
| 1 – Input (IN) | Positif catu daya 7–25 V + 0,33 µF | Tidak dihubungkan | Tidak dihubungkan | Tidak dihubungkan |
| 2 – GND | Negatif catu daya dan sisi bersama kapasitor | GND | GND | GND (mis. pin 38) |
| 3 – Output (OUT) | Jalur 5 V + 0,1 µF | Pin 5V | Pin 5V (VIN) | VSYS (pin 39), lewat dioda Schottky |
Kapasitor: kenapa 0,33 µF dan 0,1 µF?
Rangkaian standar di datasheet produsen memakai kapasitor 0,33 µF di input dan 0,1 µF di output (beberapa produsen menulis 0,22 µF di input). Kapasitor input mencegah osilasi akibat induktansi kabel ketika regulator letaknya jauh dari kapasitor filter catu daya. Kapasitor output tidak wajib untuk kestabilan, tapi membuat tegangan lebih tenang ketika beban berubah mendadak. Keduanya sebaiknya keramik dan dipasang sedekat mungkin dengan pin. Kapasitor keramik 0,33 µF bertanda 334 dan yang 0,1 µF bertanda 104; untuk membaca tanda lainnya, pakai kalkulator kode kapasitor.
Dalam praktiknya, kebiasaan yang baik adalah menambahkan kapasitor elektrolit di samping masing-masing kapasitor kecil ini: 10–100 µF di input meredam riak dari catu daya, dan 10–47 µF di output mengurangi penurunan tegangan pada beban yang menarik arus mendadak, seperti servo, relay, atau modul Wi-Fi. Kalau kamu memasang lebih dari 10 µF di output, tambahkan dioda 1N4001 dari output ke input (bias mundur dalam operasi normal) untuk berjaga-jaga kalau input korsleting: jika input tiba-tiba turun ke nol, kapasitor besar itu membuang muatannya lewat dioda ini, bukan lewat regulator. Dioda 1N4001 kedua yang dipasang seri dengan input melindungi dari polaritas terbalik, tapi menambah drop sekitar 0,7 V. Untuk jenis dan arah pemasangannya, baca Apa Itu Kapasitor? dan Apa Itu Dioda?.
Langkah demi langkah: catu daya 5 V dengan 7805 di breadboard
- Tancapkan 7805 ke breadboard dengan setiap kaki di kolom terpisah dan sisi bertulisan menghadap kamu.
- Hubungkan positif catu daya (mis. adaptor 9 V) ke pin 1, yaitu input, dan negatifnya ke pin 2, GND. Kalau mau, tambahkan 1N4001 seri di jalur positif untuk melindungi dari polaritas terbalik.
- Pasang kapasitor keramik 0,33 µF (334) di antara input dan GND, di lubang yang paling dekat dengan pin.
- Pasang kapasitor keramik 0,1 µF (104) dan, jika perlu, kapasitor elektrolit 10–47 µF di antara output (3) dan GND; kaki panjang kapasitor elektrolit ke positif.
- Sebelum menghubungkan beban, ukur output dengan multimeter: seharusnya terbaca 4,8–5,2 V.
- Hubungkan output ke pin 5V Arduino dan GND ke GND Arduino. Hindari memakai USB dan catu daya eksternal bersamaan ketika meng-upload kode.
- Setelah berjalan beberapa menit, cek suhu regulator; kalau sangat panas, tambahkan heatsink berdasarkan perhitungan panas di bawah atau turunkan tegangan input.
Tegangan dropout: berapa tegangan input minimum?
Agar regulator linear bisa menjaga output tetap stabil, input harus lebih tinggi dari output dengan selisih tertentu; selisih minimum itu disebut tegangan dropout. Dropout tipikal 7805 adalah 2 V pada 1 A, jadi untuk output 5 V kamu butuh minimal 7 V di input, dan kondisi uji di datasheet juga dimulai dari 7–7,5 V. Kalau selisihnya kurang dari itu, regulator tidak bisa meregulasi lagi dan output hanya mengikuti input sekitar 2 V lebih rendah: dengan input 6 V, output melorot ke sekitar 4 V, Arduino reset, atau pembacaan analog bergeser.
Yang penting bukan nilai rata-rata, melainkan titik terendah input. Pada catu daya klasik yang terdiri dari trafo, penyearah jembatan, dan kapasitor filter, tegangan beriak setiap setengah siklus; riak itu kira-kira ΔV = I / (100 · C) (listrik 50 Hz seperti listrik PLN, penyearahan gelombang penuh; pakai 120, bukan 100, untuk listrik 60 Hz). Dengan beban 500 mA dan kapasitor 2200 µF, ΔV ≈ 2,3 V. Trafo AC 9 V yang disearahkan punya puncak sekitar 11,3 V, jadi dasar riaknya tetap di sekitar 9 V; itu di atas 7 V, jadi cukup. Dengan logika yang sama, baterai 9 V cepat turun di bawah 7 V ketika dibebani, makanya memberi daya 7805 dari baterai 9 V tidak tahan lama. Untuk pilihan baterai, lihat panduan Cara Memberi Daya ke Arduino dengan baterai.
Perhitungan panas: P = (Vin − Vout) · I
Arus yang ditarik 7805 di input hampir sama dengan arus yang ia berikan di output; bedanya hanya beberapa miliampere arus diam. Jadi daya yang berubah menjadi panas di regulator adalah P = (Vin − Vout) · I, dan efisiensinya kira-kira Vout / Vin. Contoh: memberi daya rangkaian yang menarik 500 mA dari adaptor 12 V menghasilkan panas P = (12 − 5) × 0,5 = 3,5 W. Untuk 2,5 W yang sampai ke beban, 3,5 W terbuang dan efisiensinya hanya 42%. Beri daya rangkaian yang sama dari catu daya 7,5 V dan rugi dayanya turun ke 1,25 W. Dengan kata lain, tegangan input yang lebih tinggi dari yang diperlukan tidak berguna selain membebani regulator dengan panas tambahan. Untuk menyegarkan pemahaman tentang arus, tegangan, dan daya, baca artikel Hukum Ohm.
| Input (Vin) | 100 mA | 300 mA | 500 mA | 1 A |
|---|---|---|---|---|
| 7 V | 0,2 W | 0,6 W | 1,0 W | 2,0 W |
| 9 V | 0,4 W | 1,2 W | 2,0 W | 4,0 W |
| 12 V | 0,7 W | 2,1 W | 3,5 W | 7,0 W |
| 24 V | 1,9 W | 5,7 W | 9,5 W | 19 W |
Memilih heatsink
Suhu junction dihitung dengan Tj = Tambient + P · θ, dengan Tambient adalah suhu lingkungan dan θ (theta) adalah resistansi termal dalam °C/W. Kemasan TO-220 tanpa heatsink punya resistansi termal junction ke udara 50–65 °C/W: rugi daya 1 W menaikkan suhu chip 50–65 °C di atas suhu lingkungan. Dalam desain yang aman, junction tetap di bawah 125 °C, artinya paling banyak sekitar 1,5 W tanpa heatsink di ruangan 25 °C. Kalau bagian dalam casing-mu memanas sampai 50–60 °C, batasnya turun ke 1 W. Setiap kasus di tabel atas yang melebihi 1 W sudah seharusnya membuatmu memikirkan heatsink.
Untuk daya yang lebih besar, hitung resistansi termal heatsink: θtotal = θJC + θCS + θSA. Pada 7805, θJC dari junction ke casing sekitar 5 °C/W, dan θCS dari casing ke heatsink dengan pasta termal sekitar 0,5–1 °C/W. Pada contoh 3,5 W, untuk menjaga junction di 110 °C di dalam casing bersuhu 40 °C diperlukan θtotal ≤ (110 − 40) / 3,5 = 20 °C/W, jadi heatsink-nya sendiri harus θSA ≤ 20 − 5 − 1 = 14 °C/W. Heatsink klip TO-220 yang kecil biasanya 20–30 °C/W, jadi tidak cukup; kamu butuh heatsink aluminium bersirip berukuran sedang. Produsen heatsink mencantumkan nilai ini dalam °C/W di katalog mereka.
- Pakai pasta termal: celah udara tipis antara kemasan dan heatsink sangat mengurangi perpindahan panas; satu lapisan pasta yang tipis sudah cukup.
- Tab-nya adalah GND: pada 78xx tab logamnya terhubung ke GND, jadi heatsink tidak perlu diisolasi dan beberapa 78xx bisa berbagi satu heatsink. Pada 79xx tab-nya terhubung ke input dan harus diisolasi dengan ring mika dan bushing plastik.
- Jangan mengandalkan proteksi termal: 7805 yang terlalu panas akan mematikan dirinya dan menyala lagi ketika sudah dingin. Output-nya terputus setiap beberapa detik dan Arduino terus reset; itu proteksi pilihan terakhir, bukan operasi normal.
- Bagi panasnya: solusi paling efektif adalah menurunkan input. Untuk mendapatkan 5 V dari 24 V, turunkan dulu ke 7–8 V dengan buck converter, lalu pakai 7805 sebagai tahap akhir.
Seri 78xx: 7805, 7809, 7812, dan lainnya
| Model | Output | Input minimum | Input maksimum | Pemakaian umum |
|---|---|---|---|---|
| 7805 | 5 V | 7 V | 35 V | Arduino, sensor, board relay |
| 7808 | 8 V | 10,5 V | 35 V | Catu daya perantara untuk Vin Arduino |
| 7809 | 9 V | 11,5 V | 35 V | Rangkaian 9 V, Vin Arduino |
| 7812 | 12 V | 14,5 V | 35 V | Kipas dan relay 12 V (arus rendah) |
| 7815 | 15 V | 17,5 V | 35 V | Rangkaian op-amp |
| 7824 | 24 V | 27 V | 40 V | Sensor industri 24 V |
| 78L05 | 5 V, 100 mA | 7 V | 30 V | Kemasan TO-92, rangkaian arus rendah |
| 7905 | −5 V | −7 V | −35 V | Catu daya negatif (urutan pin berbeda) |
Kalau kamu butuh tegangan yang bisa diatur, pakai sepupu keluarga ini, LM317: dengan dua resistor ia memberi output berapa saja dari 1,25 sampai 37 V, ditentukan oleh Vout = 1,25 × (1 + R2 / R1) (R1 biasanya 240 Ω). Aturan panas dan dropout-nya sama dengan 7805. 78M05 500 mA adalah versi daya menengah yang sering kamu lihat di board SMD (surface-mount). Model apa pun yang kamu pilih, aturannya tetap: input minimum harus sekitar 2–3 V di atas output.
LDO AMS1117-3.3: untuk modul 3,3 V
ESP32, Raspberry Pi Pico, nRF24L01, dan banyak sensor bekerja pada 3,3 V. Kamu tidak bisa mendapatkan 3,3 V dari 7805; pilihan paling umum untuk itu adalah AMS1117-3.3. AMS1117 adalah regulator LDO (low dropout, dropout rendah): dropout-nya pada 800 mA tipikal 1,1 V dan paling tinggi 1,3 V, jadi ia dengan mudah membuat 3,3 V dari 5 V. Ia bisa memberi arus sampai 1 A, menerima input maksimal 15 V, dan menarik sekitar 5 mA ketika diam. Regulator inilah juga yang menurunkan 5 V ke 3,3 V di kebanyakan board pengembangan ESP32.

Pada kemasan SOT-223 milik AMS1117, urutan pin berbeda dari 7805: 1: GND/ADJ, 2: Output, 3: Input, dan tab besarnya terhubung ke output. Datasheet menyarankan kapasitor tantalum 22 µF di output untuk kestabilan; modul jadi biasanya dilengkapi kapasitor 10 µF dan bekerja baik dengan beban normal, tapi kalau kamu merakit rangkaian sendiri, pasang 22 µF di output. Regulator ini lebih sensitif terhadap panas: resistansi termal kemasan SOT-223 adalah 46–90 °C/W tergantung luas tembaga di board, dan produsen tidak menjamin regulasi di atas sekitar 1,2 W. Dari 5 V ke 3,3 V pada 300 mA, P = 1,7 × 0,3 = 0,51 W, dan itu aman; tapi dari 12 V ke 3,3 V arus yang sama berarti 2,6 W dan modulnya akan segera masuk thermal shutdown.
| Regulator | Output | Dropout | Input maks. | Arus maks. | Arus diam |
|---|---|---|---|---|---|
| 7805 (TO-220) | 5 V | ~2 V | 35 V | 1–1,5 A | 3–8 mA |
| AMS1117-3.3 (SOT-223) | 3,3 V | 1,1–1,3 V | 15 V | 1 A | ~5 mA |
| AMS1117-5.0 (SOT-223) | 5 V | 1,1–1,3 V | 15 V | 1 A | ~5 mA |
| MCP1700-3302 (TO-92 / SOT-23) | 3,3 V | ~0,18 V (250 mA) | 6 V | 250 mA | 1,6 µA |
Pada proyek yang harus berjalan berbulan-bulan dengan baterai, arus diam sama pentingnya dengan dropout: AMS1117 menarik sekitar 5 mA bahkan ketika tidak memberi daya ke apa pun, ratusan kali lipat konsumsi ESP32 dalam deep sleep. Drop 1,1 V milik AMS1117 juga terlalu besar untuk membuat 3,3 V dari satu sel Li-ion (3,0–4,2 V): bahkan dengan sel yang terisi penuh 4,2 V, output-nya hanya mencapai sekitar 3,1 V, dan terus turun seiring baterai habis. Untuk proyek seperti ini, LDO seperti MCP1700 dengan arus diam level mikroampere dan dropout kurang dari 0,2 V adalah pilihan yang lebih baik.
Linear atau switching (buck)?
Regulator switching buck (step-down) tidak membakar kelebihan tegangan menjadi panas; ia menyalakan dan mematikan input puluhan ribu kali per detik dan memindahkan energinya ke output dengan menyimpannya di induktor dan kapasitor. Hasilnya, efisiensi naik ke 80–95%, dan arus yang ditarik dari input lebih rendah daripada arus output. Contohnya, modul berbasis LM2596 memberi output yang bisa diatur sampai 3 A dari input 4,5–40 V dan bekerja dengan frekuensi switching 150 kHz. Harganya adalah riak switching beberapa puluh milivolt di output, derau elektromagnetik, dan komponen yang lebih banyak. Cara menyetel dan menghubungkan modulnya dibahas di artikel buck converter LM2596.
| 12 V → 5 V, beban 1 A | 7805 (linear) | LM2596 (buck, efisiensi ~85%) |
|---|---|---|
| Arus input | ≈ 1 A | ≈ 0,49 A |
| Daya yang hilang menjadi panas | 7 W | ≈ 0,9 W |
| Efisiensi | 42% | ~85% |
| Heatsink | Wajib heatsink besar | Biasanya tidak perlu |
| Derau output | Sangat rendah | Riak puluhan mV |
| Jumlah komponen | 1 chip + 2 kapasitor | Modul jadi, atau induktor, dioda, dan kapasitor |

Patokan praktisnya begini: kalau selisih antara input dan output kecil (2–4 V) dan arusnya tetap di bawah beberapa ratus miliampere, 7805 atau LDO itu sederhana, minim derau, dan murah. Kalau selisihnya besar, arusnya melebihi 500 mA, atau kamu memakai baterai, pilih buck converter. Ketika memberi daya pada pengukuran analog, audio, atau sensor yang sensitif, menggabungkan keduanya juga umum: turunkan dulu ke 7–8 V dengan buck, lalu dapatkan 5 V berderau rendah dari 7805. Dengan begitu kamu mendapat efisiensi sekaligus catu daya yang bersih.
Regulator bawaan Arduino dan batas Vin
Tegangan yang kamu masukkan ke jack DC atau pin Vin Arduino Uno R3 melewati LDO 5 V dari keluarga 1117 di board (NCP1117 di board asli, biasanya AMS1117 di board klon), dan di belakang jack ada dioda tipe 4007 yang melindungi dari polaritas terbalik. Arduino menyarankan 7–12 V, dan batas board-nya 6–20 V. Batas bawah berkaitan dengan dropout: dioda dan regulator bersama-sama memakan sekitar 2 V, jadi di bawah 7 V jalur 5V melorot. Batas atas berkaitan dengan panas: dengan 12 V di Vin dan arus 200 mA, regulator kecil SOT-223 itu menghasilkan (12 − 5) × 0,2 = 1,4 W dan menjadi terlalu panas untuk disentuh. Pada 20 V, beban yang sama berarti 3 W.
| Board | Regulator di board | Input yang disarankan | Batas |
|---|---|---|---|
| Arduino Uno R3 / Mega | LDO 5 V (keluarga 1117) | 7–12 V (jack atau Vin) | 6–20 V |
| Arduino Nano | LDO 5 V (di klon kebanyakan AMS1117) | 7–12 V (Vin) | 6–20 V |
| Arduino Uno R4 | Konverter switching (buck) | 6–24 V (jack atau Vin) | 24 V |
| ESP32 DevKit | LDO 3,3 V (biasanya AMS1117) | 5 V (USB atau pin 5V) | Tetap di bawah 6 V karena panas |
| Raspberry Pi Pico | Buck-boost (switching) | VSYS: 1,8–5,5 V | 5,5 V |
Kamu juga bisa mengambil daya dari pin 5V board, tapi arus itu juga melewati regulator yang sama. Dengan daya USB, jalur 5V datang langsung dari USB dan dibatasi sekering 500 mA; ketika diberi daya dari jack, batasnya ditentukan oleh panas regulator. Karena itu, beri daya beban seperti servo, LED strip, atau motor dari 7805 atau modul buck terpisah, bukan dari pin 5V Arduino, dan satukan ground-nya. Pin 3.3V hanya bisa memberi 50 mA; untuk modul yang rakus arus seperti ESP-01 atau nRF24L01 berantena, pakai AMS1117-3.3 terpisah. Untuk tata letak pin, lihat artikel pinout Arduino Uno.
Menguji regulator dengan Arduino: input, output, dan panas
Kode di bawah mengukur tegangan input dan output 7805, menampilkan selisihnya, daya yang terbuang, dan perkiraan suhu junction di Serial Monitor, serta memperingatkanmu ketika mendekati dropout atau butuh heatsink. Tegangan input-nya di atas 5 V, jadi tidak boleh langsung masuk ke pin analog: hubungkan input ke A0 lewat pembagi tegangan 100 kΩ dan 22 kΩ (bisa mengukur sampai sekitar 27 V), dan output ke A1 lewat dua resistor 10 kΩ. Kamu bisa mengecek rasio untuk resistormu sendiri dengan kalkulator pembagi tegangan. Semua ground harus tersambung bersama.
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}Alih-alih mengasumsikan tegangan suplai yang menjadi acuan pembacaan analog, kode ini mengukurnya dengan fungsi readVcc(): ia membaca referensi tetap internal ATmega328P sekitar 1,1 V lalu menghitung balik Vcc yang sebenarnya. Dengan begitu pembacaan tetap benar, entah Arduino diberi daya dari USB atau dari 7805 itu sendiri. Metode ini untuk board ATmega328P seperti Uno dan Nano; karena referensi internalnya bisa berbeda sekitar ±10% dari chip ke chip, bandingkan hasilnya sekali dengan multimeter dan sesuaikan konstanta 1125300. Isi LOAD_A dengan arus beban yang kamu ukur pakai multimeter; kalau kamu memasang heatsink, ganti THETA_JA dengan resistansi termal total dari perhitungan heatsink-mu.
ESP32: AMS1117 dan lonjakan arus Wi-Fi
Board pengembangan ESP32 menurunkan input 5 V ke 3,3 V dengan LDO di board. Biasanya board menarik 50–100 mA, tapi selama transmisi Wi-Fi arusnya melonjak sekejap ke sekitar 300 mA; karena itu Espressif menyarankan catu daya yang mampu memberi minimal 500 mA. Catu daya yang lemah, kabel USB yang tipis dan panjang, atau regulator yang panas membuat jalur 3V3 anjlok selama lonjakan itu, lalu ESP32 menulis “Brownout detector was triggered” di Serial Monitor dan me-reset dirinya. Kode di bawah memberi tahu apakah reset terakhir disebabkan brownout dan mencatat tegangan terendah yang dialami jalur 3V3 selama terhubung ke Wi-Fi. Hubungkan pin 3V3 ke GPIO 34 lewat pembagi dari dua resistor 10 kΩ.
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}Kalau nilai minimum selama koneksi turun di bawah 3,0 V, catu dayanya kurang memadai. ADC tidak bisa menangkap setiap penurunan yang sangat singkat, tapi trennya terlihat jelas. Solusinya biasanya sederhana: kabel USB yang pendek dan tebal, kapasitor elektrolit 470 µF di antara 5V dan GND dekat board, atau catu daya yang mampu memberi minimal 500 mA. Kalau kamu memberi daya ESP32 dari 12 V, jangan masukkan 12 V ke AMS1117 di board; turunkan dulu ke 5 V dengan modul buck. Untuk pemecahan masalah yang lebih detail, baca artikel brownout dan Guru Meditation ESP32.
Raspberry Pi Pico: VSYS dan 7805
Raspberry Pi Pico memakai konverter buck-boost yang efisien, bukan regulator linear, dan pin VSYS-nya menerima tegangan berapa saja dari 1,8 sampai 5,5 V. Untuk menjalankan Pico di sistem 12 V, kamu bisa menghubungkan output 7805 ke VSYS; kalau kamu juga memakai USB bersamaan, pasang dioda Schottky seperti 1N5819 di antaranya, kalau tidak 5 V dari USB dan 7805 akan saling berebut. Jangan pernah menghubungkan output 7805 ke pin 3V3; pin itu tidak tahan lebih dari 3,3 V. Kode MicroPython di bawah mengukur input 7805 lewat pembagi di GP26, dan VSYS lewat kanal GP29 di board.
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)ADC Pico membaca paling tinggi 3,3 V, jadi dengan pembagi 100k/22k kamu bisa mengukur sampai sekitar 18 V. Nilai VSYS keluar sedikit lebih rendah dari output 7805 karena drop dioda Schottky sekitar 0,3 V; itu normal. Pada Pico W, GP29 dipakai bersama chip nirkabel, jadi pengukuran VSYS butuh pengaturan tambahan; dalam kasus itu pakai hanya pembacaan GP26. Kalau kamu baru mengenal Pico, artikel Apa Itu Raspberry Pi Pico? adalah titik awal yang bagus.
Ide proyek dengan 7805 dan regulator lainnya
- Catu daya meja 5 V: buat kotak kecil berisi adaptor 12 V, 7805, heatsink, dan sakelar yang memberi 5 V stabil untuk proyek breadboard-mu.
- Catu daya dengan tampilan tegangan dan panas: pindahkan kode uji di atas ke LCD dan tampilkan input, output, dan rugi daya secara langsung; ide dasar pengukurannya ada di artikel voltmeter Arduino.
- Arduino di mobil: turunkan tegangan aki 12–14,4 V ke 7–8 V dengan buck, lalu ke 5 V dengan 7805; tambahkan dioda TVS di input untuk melawan lonjakan tegangan di kendaraan.
- Kendali LED strip 12 V dan relay: jalankan strip langsung dari 12 V, lalu beri daya Arduino dan modul relay dari output 7805.
- Jalur terpisah untuk servo dan NeoPixel: pakai 7805 untuk beban di bawah 1 A dan buck di atasnya untuk memberi daya motor servo dan LED WS2812B dari jalur 5 V terpisah dengan ground bersama.
- Board sensor 3,3 V: beri daya modul 3,3 V seperti BME280 dan nRF24L01 dari AMS1117-3.3 secara terpisah dari Arduino; pakai konverter level logika untuk level sinyalnya.
Kesalahan umum dan cara mengatasinya
| Gejala | Kemungkinan penyebab | Solusi |
|---|---|---|
| Output 3,5–4,5 V, bukan 5 V | Input di bawah 7 V (dropout) atau baterai lemah | Naikkan input ke 7,5–9 V dan ukur dalam keadaan berbeban |
| 7805 berjalan beberapa detik lalu mati | Proteksi termal bekerja, rugi dayanya terlalu tinggi | Tambahkan heatsink, turunkan input, atau pakai buck |
| Output sama dengan input (mis. 12 V) | Kaki GND putus, atau regulator rusak dan korsleting di dalam | Cek sambungan GND; lepaskan beban lalu ukur, ganti jika perlu |
| Output 0 V dan regulator tetap dingin | Urutan pin salah (tertukar dengan 78L05 atau 7905), atau input dan output terbalik | Pastikan urutan pin sesuai kemasannya |
| Arduino reset secara acak | Kapasitor tidak ada atau jauh dari pin | Pasang 0,33 µF dan 0,1 µF dekat pin dan tambahkan kapasitor elektrolit 10–47 µF |
| Regulator Arduino sangat panas | 12 V di Vin dan banyak arus ditarik dari pin 5V | Beri daya beban dari 7805 atau buck terpisah; jaga Vin di 7–9 V |
| ESP32 reset ketika Wi-Fi mulai aktif | Catu daya atau AMS1117 tidak sanggup memenuhi arus puncak | Kabel pendek, kapasitor 470 µF, catu daya minimal 500 mA |
| Output AMS1117-3.3 sekitar 3 V | Input di bawah 4,4 V (mis. satu sel Li-ion) | Beri input 5 V atau pilih LDO dengan dropout rendah |
Dengan tegangan input yang tepat, dua kapasitor kecil, dan heatsink bila perlu, 7805 adalah salah satu komponen paling andal di dunia elektronika dan akan bekerja selama bertahun-tahun. Ingat aturannya: makin besar selisih antara input dan output, makin banyak panasnya. Untuk selisih besar pilih buck, untuk 3,3 V pilih AMS1117, dan untuk baterai yang awet pilih LDO dengan arus diam rendah. Di aplikasi BlueGrays kamu akan menemukan proyek Voltmeter Digital dengan Layar LCD, Mobil Kendali Bluetooth dengan L298N, Robot Penghindar Rintangan, Stasiun Penyiraman Pintar, dan Deep Sleep ESP32, lengkap dengan skema rangkaian dan kode langkah demi langkah, dan kamu bisa merakit bagian catu dayanya sendiri dengan perhitungan di panduan ini.
Pertanyaan umum
Pin 7805 mana yang input dan mana yang output?
Dengan sisi bertulisan menghadap kamu dan kaki mengarah ke bawah, dari kiri ke kanan pin 1 adalah input (IN), pin 2 adalah GND, dan pin 3 adalah output (OUT). Tab logamnya juga terhubung ke GND. Pada 78L05 dalam kemasan TO-92 urutannya terbalik (1 output, 2 GND, 3 input), jadi selalu cek kemasannya.
Berapa arus yang bisa diberikan 7805?
7805 dalam kemasan TO-220 dengan heatsink yang baik bisa memberi 1 A, dan sampai 1,5 A tergantung kondisinya; pembatas arus internalnya bekerja di sekitar 2 A ketika terjadi korsleting. Dalam praktiknya yang membatasi adalah panas, bukan arus: tanpa heatsink, (Vin − Vout) · I sebaiknya tetap di bawah 1–1,5 W. 78L05 yang kecil hanya memberi 100 mA.
Kenapa 7805-ku panas, dan apakah aku perlu heatsink?
7805 adalah regulator linear, jadi ia mengubah kelebihan tegangan antara input dan output menjadi panas. Menarik 500 mA dengan input 12 V berarti panas 3,5 W, dan itu mustahil tanpa heatsink. Kalau rugi dayanya di bawah 1 W, kamu tidak perlu heatsink; di atas itu pakai heatsink, dan kalau sudah beberapa watt lebih, pakai buck converter.
Apakah 7805 bisa bekerja tanpa kapasitor?
Sering kali bisa, kalau kabelnya pendek dan dekat dengan catu daya yang terfilter baik, tapi tidak disarankan. Kapasitor 0,33 µF di input mencegah osilasi akibat pengkabelan, dan 0,1 µF di output menstabilkan tegangan ketika beban berubah mendadak. Dua kapasitor murah ini mencegah reset dan derau yang tidak jelas penyebabnya.
Berapa tegangan input maksimum 7805?
Maksimum absolutnya 35 V (40 V untuk 7824), tapi bekerja dekat batas itu tidak praktis karena panasnya. Untuk output 5 V, input 7,5–12 V adalah yang ideal. Dengan tegangan tinggi seperti 24 V, jauh lebih cerdas menurunkan tegangannya dulu dengan buck converter.
Apakah 7805 bisa memberi 3,3 V?
Tidak, 7805 hanya memberi 5 V. Untuk 3,3 V kamu memakai LDO seperti AMS1117-3.3, yang dengan mudah membuat 3,3 V dari input 5 V dan memberi arus sampai 1 A. Untuk proyek bertenaga baterai, LDO dengan arus diam level mikroampere seperti MCP1700 lebih cocok.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
Voltmeter Digital dengan Layar LCD
Cari tahu berapa tegangan yang diberikan baterai atau adaptor daya dengan alat ukur buatanmu sendiri. Pembagi dari dua resistor menurunkan tegangan tinggi ke tingkat yang bisa dibaca board, dan Arduin

Mobil Kendali Bluetooth dengan L298N
Jadikan ponselmu remote dan kendarai mobil robotmu sendiri. Arduino menerima perintah dari aplikasi remote control di ponselmu lewat modul Bluetooth dan memutar roda dengan driver motor; mobil maju, m

Robot Penghindar Rintangan
Bagaimana kalau membuat kendaraan pintar yang mencari jalannya sendiri? Robot Penghindar Rintangan terus memindai sekelilingnya berkat sensor ultrasonik di depannya. Ketika menemui rintangan, robot be

Stasiun Penyiraman Pintar
Tukang kebun yang menyiram tanamanmu sendiri, supaya tanaman tidak kering ketika kamu berlibur. Sensor kelembapan tanah mengukur seberapa basah tanahnya; ketika kering, Arduino menyalakan pompa air be

Deep Sleep ESP32: Hemat Baterai (OLED + Penghitung RTC RAM)
Mode Deep Sleep ESP32 menurunkan konsumsi arus hingga ~10 µA dengan mematikan CPU dan sebagian besar periferal, sehingga sangat penting untuk perangkat IoT bertenaga baterai. Di proyek ini, kita memakai tiga sumber bangun yang berbeda: timer (15 detik), pin eksternal (EXT0, tombol GPIO 33), dan sentuhan (T0/GPIO 4). Variabel yang ditandai RTC_DATA_ATTR dipertahankan selama deep sleep; penghitung boot, penghitung bangun karena timer, dan penghitung bangun karena tombol terus dilacak.

Koneksi Wi-Fi STA ESP32 (dengan Layar LCD)
Di proyek ini, kita menyambungkan ESP32 ke jaringan Wi-Fi rumah dalam mode Station (STA) dengan cara yang aman dan tahan gangguan. Kita menyimpan SSID dan kata sandi di file secrets.h terpisah agar tidak bocor ke Git, menyiapkan mekanisme sambung ulang otomatis, dan menampilkan tingkat sinyal RSSI dan alamat IP di layar LCD I2C. LED bawaan bekerja sebagai indikator status. Ini adalah pengelola koneksi kelas produksi.

Kendali Strip NeoPixel WS2812B ESP32
LED addressable WS2812B (NeoPixel) adalah LED RGB pintar yang bisa dikendalikan secara berantai lewat satu pin data. Di proyek ini, kita mengendalikan strip WS2812B 8 LED dengan library Adafruit_NeoPixel untuk membuat animasi pelangi yang halus. Meskipun level logika 3,3V ESP32 bekerja lancar dengan sebagian besar komponen WS2812B, kita menunjukkan solusi dengan resistor seri 470Ω dan kapasitor 1000µF untuk berjaga-jaga jika tidak stabil. Animasinya dibuat dengan menggeser nilai hue.
Artikel lainnya
Aplikasi BlueGrays
Rakit rangkaian ini langkah demi langkah di ponselmu
Skema pengkabelan, kode, dan daftar komponen dalam satu layar. 200+ proyek Arduino, ESP32, dan Pico siap dibuat.
Pindai dengan ponselmu
Arahkan kamera ke kode ini dan toko aplikasi di ponselmu akan terbuka.
atau buka toko aplikasi

