Arduino bekerja di tegangan 5 volt dengan arus per pin maksimal sekitar 20 mA. Lampu di rumah Anda bekerja di 220 volt AC. Keduanya tidak mungkin disambung langsung. Yang menjembatani keduanya adalah modul relay — sebuah sakelar yang digerakkan secara elektrik, sehingga Arduino bisa menyalakan perangkat listrik rumah tangga tanpa pernah bersentuhan dengan tegangan tingginya.
Peringatan keselamatan. Tegangan 220 V AC bisa mematikan. Jangan pernah menyentuh sisi AC saat rangkaian terhubung ke stopkontak. Cabut steker sebelum mengubah apa pun, tutup seluruh sambungan AC dalam kotak isolasi, dan kalau Anda masih pelajar, kerjakan bagian AC ini di bawah pengawasan guru atau orang yang berpengalaman. Untuk latihan, mulailah dengan lampu LED 5 V atau baterai — bukan langsung listrik rumah.
Cara Kerja Relay
Di dalam relay ada kumparan (coil) dan sekumpulan kontak mekanis. Ketika kumparan dialiri arus kecil, medan magnet yang timbul menarik tuas logam sehingga kontak berpindah posisi. Karena penggerak dan kontaknya terpisah secara fisik, sisi 220 V benar-benar terisolasi dari Arduino.
Modul relay siap pakai punya tiga terminal sekrup di sisi keluaran:
| Terminal | Kepanjangan | Perilaku |
|---|---|---|
| COM | Common | Terminal bersama, tempat masuknya kabel fasa |
| NO | Normally Open | Terputus saat relay mati, tersambung saat relay aktif |
| NC | Normally Closed | Tersambung saat relay mati, terputus saat relay aktif |
Untuk lampu yang normalnya padam dan menyala saat diperintah, pakai COM dan NO. Terminal NC berguna untuk hal sebaliknya, misalnya kipas yang harus mati saat sistem mendeteksi kondisi bahaya.
Skema Penyambungan
Sisi kendali cukup tiga kabel: VCC ke 5V, GND ke GND, dan IN ke pin digital mana pun. Sisi AC: kabel fasa dari sumber masuk ke COM, keluar dari NO menuju lampu. Kabel netral langsung ke lampu tanpa melewati relay.
Hal Penting: Relay Umumnya Active LOW
Ini yang paling sering membingungkan. Mayoritas modul relay yang beredar bersifat active LOW: relay menyala ketika pin diberi LOW, dan mati ketika diberi HIGH. Kebalikan dari intuisi.
const int pinRelay = 7;
void setup() {
pinMode(pinRelay, OUTPUT);
digitalWrite(pinRelay, HIGH); // HIGH = relay MATI pada modul active LOW
}
void loop() {
digitalWrite(pinRelay, LOW); // nyalakan lampu
delay(3000);
digitalWrite(pinRelay, HIGH); // matikan lampu
delay(3000);
}
Perhatikan baris digitalWrite(pinRelay, HIGH) di dalam setup(). Tanpa baris itu, pin Arduino berada di kondisi tidak menentu selama sepersekian detik saat board menyala — dan relay akan berbunyi "klik" sendiri setiap kali Arduino di-reset. Untuk lampu mungkin tidak masalah, tapi untuk pompa atau pemanas, hentakan itu bisa berbahaya.
Cara mengetahui modul Anda active LOW atau HIGH: unggah kode di atas. Kalau perilakunya terbalik dari yang Anda harapkan, tukar saja HIGH dan LOW.
Menyalakan Lampu Otomatis Berdasarkan Cahaya
Contoh penerapan nyata: lampu taman yang menyala sendiri saat gelap, memakai sensor LDR di pin A0.
const int pinRelay = 7;
const int pinLDR = A0;
const int batas = 400; // sesuaikan lewat Serial Monitor
void setup() {
pinMode(pinRelay, OUTPUT);
digitalWrite(pinRelay, HIGH);
Serial.begin(9600);
}
void loop() {
int cahaya = analogRead(pinLDR);
Serial.print("Cahaya: ");
Serial.println(cahaya);
if (cahaya < batas) {
digitalWrite(pinRelay, LOW); // gelap -> lampu nyala
} else {
digitalWrite(pinRelay, HIGH); // terang -> lampu mati
}
delay(1000);
}
Angka batas harus Anda tentukan sendiri. Jalankan dulu programnya, amati nilai yang muncul di Serial Monitor saat terang dan saat gelap, lalu ambil angka di tengah-tengahnya.
Mencegah Lampu Berkedip-kedip
Kode di atas punya kelemahan. Kalau cahaya kebetulan berada persis di sekitar nilai batas, lampu akan menyala-mati terus-menerus. Solusinya memakai dua ambang berbeda, teknik yang disebut histeresis:
const int batasNyala = 380; // nyala kalau lebih gelap dari ini
const int batasMati = 450; // mati kalau lebih terang dari ini
bool lampuNyala = false;
void loop() {
int cahaya = analogRead(pinLDR);
if (!lampuNyala && cahaya < batasNyala) {
digitalWrite(pinRelay, LOW);
lampuNyala = true;
}
else if (lampuNyala && cahaya > batasMati) {
digitalWrite(pinRelay, HIGH);
lampuNyala = false;
}
delay(500);
}
Dengan jarak 70 satuan antara kedua ambang, gangguan kecil pada pembacaan sensor tidak lagi membuat relay bergetar. Teknik ini berlaku umum — pakai juga untuk kontrol suhu dan kelembaban.
Memilih Relay yang Sesuai Beban
Perhatikan angka yang tercetak di badan relay, misalnya 10A 250VAC. Itu batas maksimum, bukan angka aman untuk pemakaian terus-menerus. Aturan praktis: jangan bebani lebih dari 70% nilai tersebut.
| Perangkat | Perkiraan arus | Catatan |
|---|---|---|
| Lampu LED 10 W | ± 0,05 A | Sangat aman |
| Kipas angin kecil | ± 0,2 A | Aman |
| Pompa akuarium | ± 0,1 A | Aman |
| Motor / kompresor | Lonjakan awal tinggi | Arus start bisa 5–7 kali arus normal |
Untuk beban induktif seperti motor dan pompa, kontak relay akan cepat aus karena percikan bunga api saat memutus arus. Kalau perangkatnya dinyalakan-matikan sangat sering, pertimbangkan memakai SSR (Solid State Relay) yang tidak punya bagian bergerak.
Masalah yang Sering Muncul
- Relay berbunyi klik tapi lampu tidak menyala. Sisi kendali sudah benar, masalahnya di sisi AC. Cek apakah kabel masuk ke COM dan keluar dari NO — bukan NC.
- Relay tidak berbunyi sama sekali. Ukur tegangan di pin VCC modul. Kalau kurang dari 4,5 V, kumparan tidak punya cukup daya. Beri catu daya terpisah untuk modul relay, dan jangan lupa menyatukan GND-nya dengan GND Arduino.
- Arduino restart saat relay aktif. Lonjakan arus kumparan menarik terlalu banyak daya. Pakai catu daya terpisah untuk modul relay.
- Relay aktif sendiri secara acak. Biasanya karena kabel sinyal terlalu panjang dan menangkap interferensi. Perpendek kabel, atau tambahkan resistor pull-up 10k ke jalur IN.
Langkah Selanjutnya
Relay adalah pintu masuk ke otomasi rumah sederhana. Setelah menguasai dasarnya, coba kembangkan ke arah:
- Kendali berdasarkan suhu memakai sensor suhu — kipas menyala otomatis saat ruangan panas.
- Lampu yang menyala saat ada orang lewat dengan sensor PIR.
- Penyiram tanaman otomatis dengan sensor kelembaban yang menggerakkan pompa lewat relay.
Sebelum menyentuh 220 V sungguhan, uji dulu seluruh logika programnya dengan LED biasa. Kalau nyala-matinya sudah persis seperti yang Anda mau, barulah pindahkan ke beban sebenarnya — dengan steker dalam keadaan tercabut saat merangkai.
0 Komentar
Berkomentarlah dengan sopan dan menggunakan bahasa yang semestinya.