IC Timer 555: Penjelasan Pinout, Rangkaian Astabil, dan Monostabil
Bagaimana cara kerja IC timer 555? Pinout, pengkabelan astabil dan monostabil, rumus f = 1,44/((R1+2R2)C) dan t = 1,1RC, lampu kedip LED, serta kode Arduino.
IC timer 555 adalah chip timer 8 pin yang murah dan bisa mengatur selang waktu dari mikrodetik sampai berjam-jam hanya dengan sebuah resistor dan sebuah kapasitor. Mengedipkan LED dengan kecepatan tertentu, menyalakan lampu selama satu menit setelah tombol ditekan, membunyikan nada di buzzer, atau menggerakkan motor dengan PWM: semuanya bisa dilakukan tanpa mikrokontroler dan tanpa satu baris kode pun. Dirancang oleh Hans Camenzind untuk Signetics pada 1971 dan dirilis pada 1972, chip ini menjadi salah satu chip yang paling banyak diproduksi di dunia; pada 2003 diperkirakan satu miliar unit dibuat setiap tahun.
Di panduan ini kamu akan mempelajari pinout 555, cara kerja komparator dan flip-flop di dalamnya, dua rangkaian dasarnya (lampu kedip astabil dan one-shot monostabil), asal rumus frekuensi dan waktu, cara menurunkan duty cycle di bawah 50%, serta cara memakai 555 bersama Arduino, ESP32, dan Raspberry Pi Pico. Kalau kamu tidak mau menghitung manual, kalkulator timer 555 langsung menampilkan frekuensi, duty cycle, dan bentuk gelombangnya.
Apa itu timer 555 dan bagaimana cara kerjanya?
Di dalam 555 ada empat bagian utama. Yang pertama adalah pembagi tegangan dari tiga resistor yang sama besar yang tersusun seri antara VCC dan GND (masing-masing 5 kΩ pada NE555 klasik); bagian ini menghasilkan dua tegangan referensi: 2/3 dan 1/3 VCC. Yang kedua adalah sepasang komparator yang terhubung ke referensi tersebut: komparator threshold membandingkan pin THRES dengan 2/3 VCC, dan komparator trigger membandingkan pin TRIG dengan 1/3 VCC. Yang ketiga adalah flip-flop SR yang di-set dan di-reset oleh kedua komparator, dan yang keempat adalah tahap output yang digerakkan flip-flop, bersama transistor discharge yang mengosongkan kapasitor.
Aturannya sebenarnya sangat sederhana: ketika tegangan di TRIG turun di bawah 1/3 VCC, output menjadi HIGH dan transistor discharge mati. Ketika tegangan di THRES naik di atas 2/3 VCC, output menjadi LOW dan transistor discharge menyala, menarik pin 7 ke GND. Kalau tidak terjadi keduanya, output mempertahankan keadaan sebelumnya. Yang menentukan waktu adalah berapa lama kapasitor eksternal terisi dan terkosongkan di antara kedua ambang ini melalui resistor. Dengan catu daya 5 V, ambangnya 3,33 V dan 1,67 V; dengan 9 V, ambangnya 6 V dan 3 V. Sering dikatakan nama chip ini berasal dari tiga resistor 5 kΩ di dalamnya, tetapi Camenzind menjelaskan bahwa Signetics memilih angka itu begitu saja.
| Fitur | NE555 (bipolar) | TLC555 (CMOS) |
|---|---|---|
| Tegangan catu daya | 4,5–16 V (SE555: sampai 18 V) | 2–15 V (LMC555: mulai 1,5 V) |
| Arus diam (5 V) | 2–6 mA | Sekitar 0,2 mA |
| Arus output | Mengeluarkan dan menyerap sampai 200 mA | Mengeluarkan sekitar 10 mA, menyerap 100 mA |
| Level output HIGH | Sekitar 1,5–1,7 V di bawah VCC | Sampai VCC (rail-to-rail) |
| Frekuensi maksimum yang disarankan | 100 kHz | Sekitar 2 MHz |
| Bisa jalan di 3,3 V | Tidak | Ya |
| Versi timer ganda | NE556 (14 pin) | TLC556 (14 pin) |
Pinout timer 555
Takik setengah lingkaran atau titik kecil di atas chip menandai pin 1. Dengan takik di kiri dan dilihat dari atas, pin 1–4 berurutan dari kiri ke kanan di baris bawah, dan pin 5–8 dari kanan ke kiri di baris atas; dengan kata lain, nomornya naik berlawanan arah jarum jam dan pin 8 (VCC) berada tepat di seberang pin 1. Kemasan DIP-8 pas sekali melintang di atas celah tengah breadboard: satu baris kaki harus berada di setiap sisi celah.
| Pin | Nama | Fungsi | Koneksi umum |
|---|---|---|---|
| 1 | GND | Ground (0 V) | Catu daya negatif |
| 2 | TRIG (trigger) | Membuat output HIGH dan memulai pewaktuan ketika turun di bawah 1/3 VCC | Astabil: ke pin 6; monostabil: pull-up + tombol |
| 3 | OUT (output) | Output; pada NE555 mengeluarkan atau menyerap sampai 200 mA | LED lewat resistor, buzzer, transistor |
| 4 | RESET | Memaksa output LOW ketika ditarik di bawah sekitar 0,7 V | Langsung ke VCC kalau tidak dipakai |
| 5 | CONT (control) | Akses langsung ke referensi 2/3 VCC; menggeser ambang | Kapasitor 10 nF ke GND |
| 6 | THRES (threshold) | Membuat output LOW dan mengakhiri pewaktuan di atas 2/3 VCC | Ke kapasitor pewaktu |
| 7 | DISCH (discharge) | Pin open-collector yang terhubung singkat ke GND selama output LOW | Astabil: di antara R1 dan R2; monostabil: ke pin 6 |
| 8 | VCC | Catu daya positif (NE555: 4,5–16 V) | Catu daya positif + decoupling 100 nF |
Tiga mode kerja: astabil, monostabil, dan bistabil
| Mode | Nama lain | Fungsinya | Pemakaian umum |
|---|---|---|---|
| Astabil | Multivibrator bebas (free-running) | Menghasilkan gelombang kotak terus-menerus dengan sendirinya | Lampu kedip LED, nada buzzer, sinyal clock, PWM |
| Monostabil | One-shot | Tetap HIGH selama waktu tertentu ketika dipicu, lalu kembali LOW | Lampu tunda, timer lampu tangga, memperpanjang pulsa |
| Bistabil | Flip-flop | Menjadi HIGH dengan TRIG dan LOW dengan RESET lalu mempertahankan keadaannya; tanpa pewaktuan | Saklar on/off dua tombol |
Rangkaian astabil: lampu kedip LED dengan 555
Pada rangkaian astabil, pin TRIG (2) dan THRES (6) disambung jadi satu dan dihubungkan ke kapasitor pewaktu. Kapasitor terisi dari VCC melalui R1 dan R2; ketika tegangannya mencapai 2/3 VCC, output menjadi LOW, transistor discharge menyala, dan sekarang kapasitor terkosongkan ke pin 7 hanya melalui R2. Ketika tegangannya turun ke 1/3 VCC, output kembali HIGH dan siklusnya berulang dengan sendirinya. Kapasitor tidak pernah kosong sepenuhnya, melainkan berayun di antara 1/3 dan 2/3 VCC; hanya ketika baru dinyalakan ia mulai dari kosong, karena itu periode HIGH pertama sedikit lebih panjang. Rangkaian di bawah ini berjalan dari baterai 9 V dan mengedipkan dua LED bergantian sekali per detik; ini lampu polisi paling sederhana yang bisa dibuat.
- Pasang 555 melintang di atas celah tengah breadboard dengan takik menghadap ke kiri. Kalau kamu belum tahu bagaimana breadboard terhubung di dalamnya, baca dulu Apa Itu Breadboard?.
- Hubungkan pin 8 (VCC) dan 4 (RESET) ke jalur +9 V, dan pin 1 (GND) ke jalur negatif. Pasang kapasitor keramik 100 nF di antara pin 8 dan 1, sedekat mungkin dengan chip.
- Pasang R1 = 10 kΩ di antara pin 8 dan 7, dan R2 = 68 kΩ di antara pin 7 dan 6.
- Sambungkan pin 6 dan 2 dengan kabel. Dari titik ini, hubungkan kapasitor elektrolit C = 10 µF ke GND; kakinya yang pendek (negatif) harus ke sisi GND.
- Pasang kapasitor 10 nF (bertanda 103) dari pin 5 (CONT) ke GND.
- Dari pin output 3, lewatkan resistor 470 Ω ke anoda LED pertama dan hubungkan katodanya ke GND; LED ini menyala selama output HIGH. Hubungkan anoda LED kedua ke +9 V lewat 470 Ω dan katodanya ke output; LED ini menyala selama output LOW.
- Pasang baterai: kedua LED harus menyala bergantian selama sekitar 0,54 dtk dan 0,47 dtk. Kalau tidak ada LED yang menyala, cek dulu apakah pin 4 sudah di VCC.
Di 9 V, output HIGH NE555 sekitar 7,5 V, jadi sekitar 12 mA mengalir lewat LED pertama dan sekitar 15 mA lewat LED kedua. Kalau rangkaian dijalankan dari 5 V, turunkan resistornya ke 220–330 Ω; pakai kalkulator resistor LED untuk menghitung nilainya dan baca Apa Itu LED? tentang LED-nya sendiri. Karena frekuensinya tidak bergantung pada tegangan catu daya, R1, R2, dan C yang sama tetap menghasilkan satu kedipan per detik di 5 V.
Rumus frekuensi dan waktu timer 555
Ketika kapasitor terisi melalui resistor R, tegangannya naik mengikuti kurva eksponensial; τ = R·C adalah konstanta waktu, yang dijelaskan rinci di Apa Itu Kapasitor?. Naik dari 1/3 VCC ke 2/3 VCC butuh tepat ln 2 · R · C ≈ 0,693 · R · C, karena sisa jarak ke target berkurang setengahnya dalam waktu itu. Karena pengisian terjadi melalui R1 + R2 dan pengosongan hanya melalui R2, waktu HIGH dan LOW berbeda. Menjumlahkan kedua waktu lalu mengambil kebalikannya menghasilkan faktor 1 / 0,693 ≈ 1,44 dan rumus yang terkenal: f = 1,44 / ((R1 + 2·R2) · C).
| Besaran | Rumus | Contoh: R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF |
|---|---|---|
| Waktu HIGH (tH) | 0,693 · (R1 + R2) · C | 0,54 dtk |
| Waktu LOW (tL) | 0,693 · R2 · C | 0,47 dtk |
| Periode (T) | 0,693 · (R1 + 2·R2) · C | 1,01 dtk |
| Frekuensi (f) | 1,44 / ((R1 + 2·R2) · C) | 0,99 Hz |
| Duty cycle | (R1 + R2) / (R1 + 2·R2) | 53,4% |
| Lebar pulsa monostabil (t) | 1,1 · R · C | 1,1 dtk untuk R = 100 kΩ, C = 10 µF |

Ingat beberapa batas ketika memilih nilai. R1 minimal 1 kΩ; kalau tidak, ketika transistor discharge menyala, VCC hampir langsung terhubung ke GND. Menurut datasheet Texas Instruments, arus kecil yang ditarik input threshold berarti R1 + R2 sebaiknya tidak melebihi sekitar 3,4 MΩ di 5 V atau 10 MΩ di 15 V; dalam praktiknya, bertahan di antara 1 kΩ dan 1 MΩ paling aman. Jangan memakai kapasitor di bawah 1 nF, karena kapasitansi breadboard dan kabel sendiri akan mengacaukan perhitungan. Pakai NE555 di bawah 100 kHz; untuk sinyal yang lebih cepat pilih versi CMOS. Untuk membaca angka yang tercetak di kapasitor pakai alat kode kapasitor, dan untuk melihat kurva pengisian pakai alat konstanta waktu RC.
| R1 | R2 | C | Frekuensi | Duty | Pemakaian |
|---|---|---|---|---|---|
| 10 kΩ | 100 kΩ | 10 µF | 0,69 Hz | 52% | Lampu peringatan lambat |
| 10 kΩ | 68 kΩ | 10 µF | 0,99 Hz | 53% | Lampu kedip LED, sekali per detik |
| 4,7 kΩ | 47 kΩ | 1 µF | 14,6 Hz | 52% | Efek strobo cepat |
| 1 kΩ | 10 kΩ | 100 nF | 686 Hz | 52% | Nada buzzer |
| 1 kΩ | 6,8 kΩ | 100 nF | 986 Hz | 53% | Sinyal uji sekitar 1 kHz |
| 1 kΩ | 10 kΩ | 10 nF | 6,86 kHz | 52% | Nada tinggi, PWM |
| 1 kΩ | 18 kΩ | 1 nF | 38,9 kHz | 51% | Carrier remote IR (setel ke 38 kHz dengan trimmer) |
Mengatur duty cycle: turun di bawah 50%
Pada rangkaian astabil dasar, kapasitor terisi melalui R1 + R2 tetapi terkosongkan hanya melalui R2, jadi waktu HIGH selalu lebih panjang daripada waktu LOW dan duty cycle tidak bisa turun di bawah 50%; membuat R2 jauh lebih besar daripada R1 mendekatkanmu ke 50%, tapi tidak pernah di bawahnya. Solusinya adalah dioda 1N4148 yang dipasang paralel dengan R2, anodanya ke arah pin 7 dan katodanya ke arah pin 6. Selama pengisian, arus mengalir lewat dioda dan melewati R2; selama pengosongan, dioda dalam bias mundur dan arus mengalir lewat R2. Hasilnya tH ≈ 0,693 · R1 · C dan tL ≈ 0,693 · R2 · C, dan duty cycle turun menjadi R1 / (R1 + R2). Misalnya, dengan R1 = 10 kΩ, R2 = 47 kΩ, dan C = 10 µF, LED menyala 69 ms dan mati 326 ms: kedipan singkat yang menarik perhatian dengan duty 17,5%. Tegangan maju dioda sekitar 0,6 V membuat waktu HIGH sedikit lebih panjang dari perhitungan, terutama di 5 V. Tentang perilaku dioda secara umum, lihat Apa Itu Dioda?.
Kalau kamu ingin frekuensinya tetap dan hanya duty cycle yang diatur, pakai potensiometer dan dua dioda. Hubungkan wiper pot ke pin 7; hubungkan satu ujung pot ke kapasitor lewat sebuah dioda (anoda di sisi pot) dan ujung lainnya ke kapasitor lewat dioda kedua yang menghadap berlawanan (katoda di sisi pot). Dengan R1 = 1 kΩ, pot 100 kΩ, dan C = 10 nF, frekuensinya tetap sekitar 1,4 kHz sementara duty cycle berubah kira-kira dari 1% sampai 99%, karena jumlah hambatan pengisian dan pengosongan tetap sama ketika pot diputar. Dengan MOSFET di output, inilah cara klasik mengatur kecepatan motor DC atau kecerahan LED strip 12 V; lihat Apa Itu PWM? dan Memakai MOSFET dengan Arduino untuk detailnya.
Rangkaian monostabil: pulsa one-shot dan lampu tunda
Pada rangkaian monostabil, pin 6 (THRES) dan 7 (DISCH) disambung jadi satu; resistor R dipasang dari titik ini ke VCC dan kapasitor C ke GND. Pin TRIG (2) dijaga HIGH dengan resistor pull-up. Ketika diam, output LOW dan transistor discharge menjaga kapasitor tetap kosong. Ketika pulsa LOW singkat tiba di TRIG, output menjadi HIGH, transistor discharge mati, dan kapasitor mulai terisi melalui R. Ketika tegangannya mencapai 2/3 VCC, output kembali LOW dan kapasitor langsung terkosongkan. Kali ini kapasitor terisi penuh dari nol sampai 2/3 VCC, jadi pulsanya berlangsung ln 3 · R · C ≈ 1,1 · R · C, yang lagi-lagi tidak bergantung pada tegangan catu daya.
- Hubungkan pin 8 dan 4 ke +5 V dan pin 1 ke GND; pasang kapasitor 100 nF di antara pin 8 dan 1, serta kapasitor 10 nF di antara pin 5 dan GND.
- Sambungkan pin 6 dan 7. Dari titik ini, hubungkan R = 470 kΩ ke +5 V dan kapasitor elektrolit C = 100 µF ke GND (kaki negatif ke GND).
- Tarik TRIG (pin 2) ke +5 V dengan 10 kΩ dan pasang push button di antara pin 2 dan GND. Selengkapnya tentang pengkabelan tombol, lihat Cara Menghubungkan Push Button ke Arduino.
- Untuk uji pertama, hubungkan LED ke pin output 3 lewat resistor 330 Ω.
- Tekan tombol sebentar: LED tetap menyala sekitar 1,1 × 470 kΩ × 100 µF ≈ 52 detik lalu padam. Karena toleransi kapasitor elektrolit ±20%, nilai di antara 42 dan 62 detik itu normal.
- Untuk lampu sungguhan, gerakkan relay alih-alih LED: dari output lewat 1 kΩ ke basis transistor BC547, hubungkan emitor ke GND dan kolektor ke salah satu ujung kumparan relay; ujung kumparan lainnya ke +5 V. Jangan lupa dioda 1N4007 melintang di kumparan (katoda di sisi +5 V); tentang peran transistor, lihat Apa Itu Transistor?.
| R | C | Waktu (1,1 · R · C) | Pemakaian |
|---|---|---|---|
| 10 kΩ | 1 µF | 11 ms | Debounce tombol, memperpanjang pulsa pendek |
| 100 kΩ | 10 µF | 1,1 dtk | Bunyi bip singkat, bel pintu |
| 220 kΩ | 47 µF | 11,4 dtk | Penerangan jangka pendek |
| 470 kΩ | 100 µF | 52 dtk | Timer lampu tangga, lampu tunda |
| 10 kΩ + pot 1 MΩ | 100 µF | 1,1–111 dtk | Timer yang bisa diatur |
Untuk memotong waktu tunda, kamu bisa menambahkan tombol kedua di pin RESET (4): tarik pin itu ke VCC dengan 10 kΩ dan pasang tombol di antara RESET dan GND; begitu ditekan, output menjadi LOW dan kapasitor terkosongkan. Rangkaian monostabil kadang memicu dirinya sendiri sekali ketika daya pertama kali diberikan. Untuk mencegahnya, hubungkan pin RESET ke VCC lewat 10 kΩ dan ke GND lewat 10 µF: ketika dinyalakan, chip ditahan dalam keadaan reset selama waktu singkat yang dibutuhkan kapasitor itu untuk terisi, lalu mulai bekerja normal begitu catu dayanya stabil.
Bagaimana cara memakai timer 555 dengan Arduino?
555 dan Arduino bukan saingan; keduanya tim yang bagus. Kamu memang bisa membuat lampu kedip sederhana di Arduino dengan millis(), tetapi 555 tidak butuh kode, bisa jalan dengan catu daya sampai 16 V, memberikan 200 mA dari output-nya, dan tetap bekerja walaupun Arduino-nya hang. Karena itu 555 biasanya bergabung dengan Arduino dalam salah satu dari tiga peran: sebagai sumber sinyal yang diukur Arduino, sebagai timer hardware yang dipicu Arduino (pengukur kapasitansi, pemanjang pulsa), dan sebagai osilator yang dinyalakan dan dimatikan Arduino lewat pin RESET (sirene atau nada buzzer). Untuk kasus terakhir, cukup hubungkan pin 4 dari 555 ke output Arduino: selama pin itu HIGH osilator berjalan, dan selama LOW ia diam.
| Pin 555 | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| 8 VCC | 5V | 3V3 (hanya 555 CMOS) | 3V3(OUT) (555 CMOS) atau VBUS (NE555) |
| 1 GND | GND | GND | GND |
| 3 OUT | D2 | GPIO 27 | GP15 (lewat pembagi 10 kΩ + 20 kΩ dengan NE555) |
| 2 TRIG (contoh trigger) | D7 | GPIO 26 | GP14 (hanya dengan 555 CMOS yang diberi daya dari 3V3) |
| 4 RESET | 5V atau pin digital | 3V3 | 3V3(OUT) |
Di contoh pertama, Arduino mengukur frekuensi dan duty cycle lampu kedip lalu membandingkannya dengan nilai dari rumus. Rangkaiannya sama dengan rangkaian astabil di atas (R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF), hanya saja diberi daya dari pin 5V Arduino, bukan 9 V, dan pin output 3 ke D2. Fungsi pulseIn() mengembalikan berapa lama sebuah pin tetap HIGH atau LOW, dalam mikrodetik.
1// 555 flaşörünün frekansını ve duty cycle'ını ölçer / Measures the frequency and duty cycle of a 555 flasher
2const int SIGNAL_PIN = 2; // 555 çıkışı (pin 3) / 555 output (pin 3)
3const float R1_OHM = 10000.0; // R1 = 10 kΩ
4const float R2_OHM = 68000.0; // R2 = 68 kΩ
5const float C_FARAD = 10e-6; // C = 10 µF
6const unsigned long TIMEOUT_US = 3000000UL; // 3 s: ~1 Hz sinyal için / for a ~1 Hz signal
7
8void setup() {
9 Serial.begin(9600);
10 pinMode(SIGNAL_PIN, INPUT);
11
12 // Formüllerle hesaplanan değerler / Values from the formulas
13 float fCalc = 1.44 / ((R1_OHM + 2 * R2_OHM) * C_FARAD);
14 float dutyCalc = 100.0 * (R1_OHM + R2_OHM) / (R1_OHM + 2 * R2_OHM);
15 Serial.print(F("Hesaplanan / Calculated: f = "));
16 Serial.print(fCalc, 3);
17 Serial.print(F(" Hz, duty = "));
18 Serial.print(dutyCalc, 1);
19 Serial.println(F(" %"));
20}
21
22void loop() {
23 unsigned long highUs = pulseIn(SIGNAL_PIN, HIGH, TIMEOUT_US); // HIGH süresi / HIGH time
24 unsigned long lowUs = pulseIn(SIGNAL_PIN, LOW, TIMEOUT_US); // LOW süresi / LOW time
25
26 if (highUs == 0 || lowUs == 0) { // zaman aşımı / timeout
27 Serial.println(F("Sinyal yok / No signal"));
28 return;
29 }
30
31 unsigned long periodUs = highUs + lowUs;
32 float f = 1000000.0 / periodUs; // f = 1 / T
33 float duty = 100.0 * highUs / periodUs; // duty = tH / T
34
35 Serial.print(F("Olculen / Measured: f = "));
36 Serial.print(f, 3);
37 Serial.print(F(" Hz, duty = "));
38 Serial.print(duty, 1);
39 Serial.print(F(" %, tH = "));
40 Serial.print(highUs / 1000);
41 Serial.print(F(" ms, tL = "));
42 Serial.print(lowUs / 1000);
43 Serial.println(F(" ms"));
44}Secara default pulseIn() menunggu paling lama 1 detik; dengan sinyal sekitar 1 Hz, ia menunggu dulu pulsa yang sedang berjalan selesai lalu menunggu pulsa baru dimulai, jadi kami menaikkan timeout-nya ke 3 detik. Wajar kalau frekuensi terukur di Serial Monitor berbeda 5–20% dari nilai hitungan; sebagian besar perbedaannya berasal dari toleransi kapasitor elektrolit. Perbedaan itu juga bisa dipakai untuk mencari nilai asli kapasitor: masukkan frekuensi terukur ke f = 1,44 / ((R1 + 2·R2) · C) lalu cari C. Untuk sinyal yang lebih cepat, menghitung tepi sinyal dengan interrupt alih-alih pulseIn() memberi hasil yang lebih akurat.
Memicu 555 dari Arduino: pengukur kapasitansi
Karena lebar pulsa monostabil adalah t = 1,1 · R · C, kalau kamu tahu R dan mengukur t, nilai kapasitor bisa dicari dengan C = t / (1,1 · R). Ini rangkaiannya: pin 6 dan 7 disambung, dengan 100 kΩ dari titik ini ke 5 V dan kapasitor yang diuji ke GND; pin 4 dan 8 di 5 V, dan pin 5 ke GND lewat 10 nF. TRIG (pin 2) ditarik ke 5 V dengan 10 kΩ dan dihubungkan ke D7, dan pin output 3 ke D2. Arduino mengirim pulsa LOW 10 µs dari D7 lalu mengukur berapa lama output tetap HIGH dengan micros().
1// 555 monostable ile kondansatör ölçer / Capacitance meter with a 555 monostable
2const int TRIG_PIN = 7; // 555 pin 2 (TRIG)
3const int OUT_PIN = 2; // 555 pin 3 (OUT)
4const float R_OHM = 100000.0; // 6-7 ile 5V arasındaki direnç / resistor between pins 6-7 and 5V
5const float CAL = 1.0; // kalibrasyon: gerçek / ölçülen / calibration: real / measured
6const unsigned long TIMEOUT_US = 6000000UL; // 6 s: ~47 µF'a kadar / up to ~47 µF
7
8void setup() {
9 Serial.begin(9600);
10 pinMode(OUT_PIN, INPUT);
11 pinMode(TRIG_PIN, OUTPUT);
12 digitalWrite(TRIG_PIN, HIGH); // TRIG beklemede HIGH / TRIG idles HIGH
13}
14
15void loop() {
16 while (digitalRead(OUT_PIN) == HIGH) {} // önceki darbenin bitmesini bekle / wait for any previous pulse to end
17
18 digitalWrite(TRIG_PIN, LOW); // 10 µs'lik LOW darbesiyle tetikle / trigger with a 10 µs LOW pulse
19 delayMicroseconds(10);
20 digitalWrite(TRIG_PIN, HIGH);
21
22 unsigned long t0 = micros();
23 while (digitalRead(OUT_PIN) == LOW) { // çıkışın HIGH olmasını bekle / wait for OUT to go HIGH
24 if (micros() - t0 > 1000) {
25 Serial.println(F("555 yanit vermiyor / 555 not responding"));
26 delay(1000);
27 return;
28 }
29 }
30
31 t0 = micros();
32 while (digitalRead(OUT_PIN) == HIGH) { // darbe süresini ölç / time the pulse
33 if (micros() - t0 > TIMEOUT_US) {
34 Serial.println(F("Kondansator cok buyuk / Capacitor too large"));
35 delay(1000);
36 return;
37 }
38 }
39 unsigned long widthUs = micros() - t0;
40
41 // t = 1,1 · R · C -> C = t / (1,1 · R)
42 float capNf = CAL * (widthUs * 1e-6) / (1.1 * R_OHM) * 1e9;
43
44 Serial.print(F("t = "));
45 Serial.print(widthUs);
46 Serial.print(F(" us, C = "));
47 if (capNf >= 1000.0) {
48 Serial.print(capNf / 1000.0, 2);
49 Serial.println(F(" uF"));
50 } else {
51 Serial.print(capNf, 1);
52 Serial.println(F(" nF"));
53 }
54 delay(1000);
55}Di sini kita mengukur manual dengan micros(), bukan pulseIn(), karena output sudah HIGH tepat setelah dipicu dan pulseIn() akan menganggap pulsa itu sebagai “pulsa sebelumnya” lalu melewatinya. Pada Uno, micros() punya resolusi 4 µs; dengan 100 kΩ, kapasitor 1 nF menghasilkan pulsa 110 µs, jadi jangkauan ukurnya kira-kira 1 nF sampai 47 µF. Ukur kapasitor yang nilainya sudah diketahui dan tulis perbandingan nilai aslinya dengan nilai terukur ke faktor CAL untuk mengkalibrasi alat ukurmu. Sebelum memasang kapasitor elektrolit, kosongkan dulu dengan menghubungsingkatkan kakinya, dan hubungkan kaki positifnya ke sisi pin 6–7.
Memakai timer 555 dengan ESP32 dan Raspberry Pi Pico
ESP32 dan Raspberry Pi Pico bekerja di 3,3 V dan pin-pinnya tidak tahan 5 V. Sebaliknya, NE555 klasik butuh minimal 4,5 V, jadi tidak bisa jalan dari 3,3 V. Solusi paling rapi adalah 555 CMOS seperti TLC555, LMC555, atau ICM7555: pinout-nya sama, bisa jalan dari pin 3V3, dan output-nya berayun di antara 0 dan 3,3 V, jadi bisa langsung dihubungkan ke GPIO. Kalau kamu cuma punya NE555, beri daya dari 5 V dan bagi output-nya dengan 10 kΩ (seri) dan 20 kΩ (ke GND). Karena level HIGH NE555 sekitar 3,5 V, output pembagi turun ke sekitar 2,3 V: cukup untuk ambang 2 V milik Pico, tapi pas-pasan untuk ambang ESP32 yang sekitar 2,5 V. Karena itu, dengan ESP32 sebaiknya pilih 555 CMOS.
Di contoh ESP32, 555 CMOS dengan R1 = 1 kΩ, R2 = 6,8 kΩ, dan C = 100 nF menghasilkan sinyal sekitar 986 Hz; perbandingannya sama dengan lampu kedip, hanya seribu kali lebih cepat. ESP32 menjalankan rutin interrupt di setiap tepi naik dan mencetak berapa tepi yang dihitung dalam satu detik; angka itu langsung menjadi frekuensi dalam Hz. Duty cycle dihitung dari satu waktu HIGH yang diukur dengan pulseIn().
1// ESP32 + CMOS 555 (TLC555) frekans ve duty ölçer / ESP32 + CMOS 555 (TLC555) frequency and duty meter
2const int SIGNAL_PIN = 27; // 555 çıkışı (pin 3) / 555 output (pin 3)
3
4volatile uint32_t edgeCount = 0;
5portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED;
6
7void IRAM_ATTR onRise() {
8 portENTER_CRITICAL_ISR(&mux);
9 edgeCount++; // her yükselen kenarı say / count every rising edge
10 portEXIT_CRITICAL_ISR(&mux);
11}
12
13void setup() {
14 Serial.begin(115200);
15 pinMode(SIGNAL_PIN, INPUT);
16 attachInterrupt(digitalPinToInterrupt(SIGNAL_PIN), onRise, RISING);
17}
18
19void loop() {
20 static uint32_t lastMs = millis();
21 if (millis() - lastMs < 1000) return; // 1 saniyelik ölçüm penceresi / 1-second gate
22 lastMs += 1000;
23
24 portENTER_CRITICAL(&mux);
25 uint32_t edges = edgeCount; // sayacı oku ve sıfırla / read and reset the counter
26 edgeCount = 0;
27 portEXIT_CRITICAL(&mux);
28
29 unsigned long highUs = pulseIn(SIGNAL_PIN, HIGH, 100000UL); // tek bir HIGH süresi / one HIGH time
30 float duty = highUs * (float)edges / 10000.0; // duty % = tH(µs) · f(Hz) / 10000
31
32 Serial.printf("f = %u Hz, tH = %lu us, duty = %.1f %%\n", (unsigned)edges, highUs, duty);
33}Di Pico, fungsi machine.time_pulse_us() MicroPython setara dengan pulseIn() di Arduino, dengan satu perbedaan penting: kalau pin sudah berada di level yang diminta, ia langsung mulai menghitung waktu. Karena itu panggilan pertama dipakai untuk melewati pulsa yang tidak utuh dan menyinkronkan diri ke tepi sinyal; pengukuran LOW dan HIGH setelahnya adalah pulsa penuh. Contoh ini mengukur rangkaian lampu kedip sekali per detik dan membalik keadaan LED onboard di setiap pembacaan.
1# Pico ile 555 flaşörünü ölçmek / Measuring a 555 flasher with the Pico
2from machine import Pin, time_pulse_us
3import time
4
5sig = Pin(15, Pin.IN) # 555 çıkışı: CMOS 555 doğrudan, NE555 bölücüyle / 555 output: CMOS 555 direct, NE555 via a divider
6led = Pin(25, Pin.OUT) # dahili LED (Pico W'de Pin("LED")) / onboard LED (Pin("LED") on a Pico W)
7TIMEOUT = 2_000_000 # 2 s zaman aşımı / 2 s timeout
8
9while True:
10 # İlk ölçüm yarım darbeyi atlar ve kenara senkronlar / The first call skips a partial pulse and syncs to an edge
11 if time_pulse_us(sig, 1, TIMEOUT) < 0:
12 print("Sinyal yok / No signal")
13 continue
14 low_us = time_pulse_us(sig, 0, TIMEOUT) # tam LOW süresi / full LOW time
15 high_us = time_pulse_us(sig, 1, TIMEOUT) # tam HIGH süresi / full HIGH time
16 if low_us < 0 or high_us < 0:
17 continue
18 period = low_us + high_us
19 print("f = {:.3f} Hz, duty = {:.1f} %, tH = {} ms, tL = {} ms".format(
20 1_000_000 / period, 100 * high_us / period, high_us // 1000, low_us // 1000))
21 led.toggle() # her ölçümde LED'i değiştir / toggle the LED on every reading
22 time.sleep_ms(200)Ide proyek timer 555
- Lampu polisi: Kedipkan LED merah dan biru bergantian, satu dihubungkan dari output ke GND dan satunya dari VCC ke output; 4,7 kΩ, 47 kΩ, dan 1 µF menghasilkan efek strobo cepat.
- Sirene dua nada: Masukkan output dari 555 pertama yang lambat lewat resistor ke pin 5 (CONT) dari 555 kedua; ketika ambangnya bergeser, nada chip kedua naik turun. Pakai buzzer pasif atau speaker kecil untuk suaranya.
- Timer lampu tangga: Buat timer dengan 555 monostabil, relay, dan tombol yang menyalakan lampu selama satu menit, dengan tombol-tombol di lantai yang berbeda dipasang paralel.
- Pengukur kapasitansi: Pakai kode Arduino di artikel ini untuk mengukur kapasitor yang tandanya sudah pudar, lalu tampilkan hasilnya di layar LCD I2C.
- Pemancar IR: Gerakkan LED IR dengan 555 astabil yang disetel ke 38 kHz lalu deteksi sinyalnya dengan penerima IR; jadilah alarm pemutus sinar sederhana. Penerima remote seperti TSOP atau VS1838B bisa menganggap carrier yang terus-menerus sebagai noise dan meredamnya setelah beberapa waktu, jadi nyalakan dan matikan 555 ini lewat pin RESET-nya dengan 555 kedua yang lambat untuk mengirim semburan sinyal.
- Pengatur kecepatan motor: Hubungkan rangkaian PWM berfrekuensi tetap dengan potensiometer ke MOSFET untuk mengatur daya motor DC 12 V atau LED strip.
- Detektor pulsa hilang: Pasang transistor PNP (mis. BC557) melintang di kapasitor pewaktu dengan basisnya disambung ke TRIG; setiap pulsa LOW yang dikirim Arduino secara berkala sekaligus memicu 555 dan mengosongkan kapasitor, sehingga pewaktuan dimulai ulang. Kalau Arduino hang dan pulsanya berhenti, waktunya habis dan 555 membunyikan alarm atau me-restart sistem.
Kesalahan umum dan cara memperbaikinya
| Gejala | Kemungkinan penyebab | Solusi |
|---|---|---|
| LED tidak berkedip, terus menyala atau terus mati | RESET (4) mengambang atau di GND; di mode astabil, pin 2 dan 6 tidak disambung | Sambungkan RESET ke VCC dan sambungkan pin 2 dan 6 dengan kabel |
| Frekuensi jauh dari nilai hitungan | Toleransi kapasitor elektrolit ±20%, salah baca nilai (nF bukan µF), C terlalu kecil | Ukur kapasitornya, cek kodenya, pakai kapasitor film untuk pekerjaan presisi |
| Rangkaian tidak stabil atau memicu dirinya sendiri | Tidak ada decoupling catu daya, pin CONT atau TRIG mengambang | 100 nF + 10 µF di antara pin 8 dan 1, 10 nF di pin 5, pull-up 10 kΩ di TRIG |
| Chip jadi panas | Output terhubung singkat ke LED tanpa resistor atau ke GND; R1 terlalu kecil | Tambahkan resistor seri ke LED, buat R1 minimal 1 kΩ |
| Waktu tunda monostabil tidak pernah selesai | Tombol ditahan atau TRIG tertahan di LOW | Tekan tombol sebentar saja atau kirim pulsa LOW singkat dari Arduino |
| Chip ter-reset atau rusak ketika relay lepas | Tidak ada dioda untuk meredam tegangan balik kumparan | Pasang 1N4007 melintang di kumparan relay |
| Arduino membaca nilai yang salah atau pinnya rusak | 555 diberi daya dari 9–12 V | Beri daya 555 dari 5 V atau turunkan output-nya dengan pembagi tegangan |
| Duty cycle tidak mau turun di bawah 50% | Batas alami rangkaian astabil dasar | Tambahkan dioda 1N4148 paralel dengan R2 |
Timer 555 adalah salah satu komponen terbaik untuk belajar, karena ia memperlihatkan ide inti pewaktuan di elektronika (pengisian RC, ambang, komparator, flip-flop) dalam satu chip murah. Mulailah dengan lampu kedip sekali per detik, ubah nilainya untuk mendapatkan nada buzzer, lalu coba lampu tunda monostabil dan pengukur kapasitansi Arduino. Di aplikasi BlueGrays kamu akan menemukan proyek lampu polisi, lampu tangga, dan buzzer langkah demi langkah lengkap dengan skema rangkaian dan kode, jadi kamu bisa mencoba versi Arduino dan Pico dari rangkaian 555-mu berdampingan.
Pertanyaan umum
Untuk apa timer 555 dipakai?
555 adalah chip timer serbaguna yang mengatur selang waktu dengan sebuah resistor dan sebuah kapasitor. Dalam mode astabil ia menghasilkan gelombang kotak terus-menerus untuk lampu kedip LED, nada buzzer, atau sinyal clock; dalam mode monostabil ia menghasilkan output yang menyala selama waktu tertentu setelah dipicu, untuk lampu tunda atau timer. Ia tidak butuh mikrokontroler dan tidak butuh kode.
Berapa tegangan yang dibutuhkan timer 555?
NE555 klasik bekerja dari 4,5 sampai 16 V (SE555 sampai 18 V); 5, 9, dan 12 V adalah catu daya yang paling umum. Untuk tegangan yang lebih rendah seperti 3,3 V, pakai versi CMOS seperti TLC555 (2–15 V), ICM7555, atau LMC555 yang mulai dari 1,5 V. Selama catu dayanya konstan, frekuensi dan waktunya tidak bergantung pada tegangan.
Nilai berapa yang menghasilkan lampu kedip 555 1 Hz?
Dengan R1 = 10 kΩ, R2 = 68 kΩ, dan C = 10 µF kamu mendapatkan f = 1,44 / ((10 kΩ + 2 · 68 kΩ) · 10 µF) ≈ 0,99 Hz; LED menyala sekitar 0,54 dtk dan mati 0,47 dtk. Karena toleransi kapasitor elektrolit ±20%, nilai aslinya akan sedikit berbeda. Untuk penyetelan halus, ganti R2 dengan trimmer.
Bagaimana cara membuat duty cycle 555 di bawah 50%?
Pada rangkaian astabil dasar, kapasitor terisi melalui R1 + R2 tetapi terkosongkan hanya melalui R2, jadi waktu HIGH selalu lebih panjang daripada waktu LOW. Kalau kamu menambahkan dioda 1N4148 paralel dengan R2, anoda ke arah pin 7, kapasitor hanya terisi melalui R1. Maka tH ≈ 0,693 · R1 · C dan tL ≈ 0,693 · R2 · C, dan memilih R1 lebih kecil dari R2 membawamu ke bawah 50%.
Apa bedanya NE555 dan TLC555?
NE555 dibuat dengan transistor bipolar, butuh minimal 4,5 V, dan bisa memberikan sampai 200 mA dari output-nya, tetapi menarik 2–6 mA ketika diam dan kesulitan di atas 100 kHz. TLC555 adalah versi CMOS: bisa jalan dari 2 V, menarik sekitar 0,2 mA, mencapai sekitar 2 MHz, dan output-nya naik penuh sampai tegangan catu daya; di sisi lain, ia hanya bisa mengeluarkan sekitar 10 mA. Keduanya punya pinout yang sama.
Apakah pin 4 dan 5 pada 555 boleh dibiarkan tidak terhubung?
Pin RESET (4) jangan pernah dibiarkan mengambang; kalau tidak dipakai, sambungkan langsung ke VCC, karena kalau tidak, noise bisa me-reset chip secara acak. Pin CONT (5) secara teknis boleh dibiarkan terbuka, tetapi menghubungkannya ke GND lewat kapasitor 10 nF adalah kebiasaan yang baik agar noise tidak menggeser ambangnya. Kalau kamu memberikan tegangan eksternal ke pin ini, ambangnya, dan karena itu frekuensinya, ikut berubah.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
Lampu Polisi LED
Persis seperti lampu di mobil polisi: LED merah berkedip tiga kali dengan cepat, lalu LED biru berkedip tiga kali, dan polanya terus berulang tanpa henti. Yang kamu butuhkan hanya dua LED dan dua resi

Menggunakan Buzzer
Pernah penasaran bagaimana bel pintu atau alarm mengeluarkan suaranya? Arduino membuat buzzer kecil berbunyi bip dengan jeda singkat: bip, jeda, bip, jeda. Kamu melihat bagaimana suara dibuat dengan l

Mengatur Frekuensi Buzzer
Kamu mengendalikan suara buzzer dengan empat tombol: satu memulai suara, satu membungkamnya, dan dua lainnya membuatnya lebih tinggi atau lebih rendah. Tahan tombol naik atau turun dan nadanya berubah

Efek Lampu Strobo Polisi Raspberry Pi Pico (Merah + Biru)
Kita menyimulasikan bar lampu mobil polisi dengan Raspberry Pi Pico dalam bentuk paling sederhana! LED merah dan biru menyala bergantian (flip-flop): ketika merah menyala, biru mati, dan keduanya bertukar setiap 0,3 detik, selamanya. Kode menulis dua langkah itu langsung di satu loop while True; kecepatannya diatur dengan konstanta WAIT_MS.

Lampu Tangga dan Koridor Pintar
Injak tangga atau masuk ke lorong, dan lampu menyala satu per satu ke arah kamu berjalan. Ada sensor jarak di setiap ujung; sensor mana pun yang kamu lewati, delapan LED menyala satu per satu dari uju

Menyalakan Bohlam 220V dengan Tombol Tekan
Selama kamu menahan tombol, bohlam 220 volt sungguhan tetap menyala, dan mati begitu kamu melepasnya. Sinyal kecil Arduino tidak bisa langsung menyalakan bohlam, jadi relay, sakelar yang dikendalikan

Efek Lampu Strobo Polisi ESP32
Tiru lampu strobo mobil polisi dengan mengedipkan kelompok LED merah dan biru secara cepat. Memakai 2 LED di setiap kelompok membuat efeknya lebih dramatis. Contoh klasik pola toggle cepat dan kendali per kelompok.
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

