Apa Itu Modul Relay di Arduino? Pengkabelan, Kode, dan Keamanan
Apa itu modul relay di Arduino? Saklar yang digerakkan board-mu untuk menyalakan lampu, pompa, dan kipas. Pelajari NO, NC, dan COM, pengkabelan aktif LOW, JD-VCC, dan sketch dengan tombol.
Relay adalah saklar yang digerakkan secara elektrik: sinyal listrik kecil dipakai untuk menyalakan dan mematikan beban yang jauh lebih besar. Pin Arduino hanya bisa memberi 5 V dan beberapa puluh miliampere; itu cukup untuk LED, tetapi tidak untuk lampu, kipas, pompa air, atau perangkat yang memakai listrik rumah 230 V. Modul relay menjembatani perbedaan ini: Arduino mengirim sinyal kecil, lalu relay menutup kontak di dalamnya sehingga arus besar mengalir ke beban. Relay adalah komponen inti proyek rumah pintar, penyiraman otomatis, dan timer.

Bagaimana cara kerja relay?
Di dalam relay ada kumparan (elektromagnet), lengan logam yang bisa bergerak, dan sepasang kontak. Ketika arus mengalir melalui kumparan, medan magnet menarik lengan dan menutup kontak; bunyi “klik” yang kamu dengar adalah gerakan itu. Ketika arus berhenti, pegas mendorong lengan kembali dan kontak terbuka.
Poin pentingnya, tidak ada sambungan listrik antara sisi kumparan (rangkaian kendali) dan sisi kontak (rangkaian beban). Keduanya hanya terhubung secara magnetis. Itulah yang membuat rangkaian Arduino 5 V-mu tetap terpisah dari jaringan listrik rumah.
Apa saja yang ada di modul relay?
Kamu tidak bisa menghubungkan relay polos langsung ke pin Arduino: kumparannya menarik arus lebih besar dari yang bisa diberikan pin, dan ketika dimatikan menghasilkan lonjakan tegangan yang bisa merusak pin. Board modul sudah dilengkapi komponen yang mengatasi masalah ini:
- Transistor driver: mengalirkan 70–80 mA yang dibutuhkan kumparan dengan memakai sinyal kecil dari pin.
- Dioda flyback: menyerap tegangan balik yang muncul ketika kumparan dimatikan, sehingga transistor dan Arduino terlindungi.
- Optocoupler (di beberapa model): meneruskan sinyal kendali dalam bentuk cahaya, sehingga Arduino benar-benar terpisah dari rangkaian relay.
- LED status: menyala ketika relay aktif; sangat membantu untuk memeriksa apakah kodemu berjalan.
- Terminal sekrup: memungkinkan kamu menghubungkan kabel beban dengan kuat tanpa menyolder.
Apa arti NO, NC, dan COM?
Sisi beban relay punya tiga terminal. Terminal yang kamu pakai menentukan apakah perangkatmu menyala atau mati ketika relay tidak diberi daya:
| Terminal | Arti | Kapan terhubung ke COM? |
|---|---|---|
| COM | Common (bersama); salah satu kabel beban masuk ke sini | Selalu terhubung ke NO atau NC |
| NO | Normally Open (biasanya terbuka) | Hanya ketika relay diberi daya |
| NC | Normally Closed (biasanya tertutup) | Ketika relay tidak diberi daya |
Spesifikasi (modul 5 V yang umum)
| Fitur | Nilai |
|---|---|
| Tegangan kumparan | 5 V DC |
| Arus kumparan | Sekitar 70–80 mA (per channel) |
| Rating kontak | 10 A 250 V AC / 10 A 30 V DC (tercetak di relay) |
| Pemicu | Aktif LOW atau aktif HIGH (tergantung modulnya) |
| Pin kendali | VCC, GND, IN (IN1, IN2... di board multi-channel) |
| Terminal beban | COM, NO, NC |
Menghubungkan modul relay ke Arduino
Sisi kendali butuh tiga kabel: hubungkan VCC modul ke 5V, GND ke GND, dan IN ke pin digital 7. Di sisi beban, potong salah satu kabel perangkat yang ingin kamu kendalikan lalu hubungkan kedua ujungnya ke terminal COM dan NO. Relay cukup menggantikan saklar dinding biasa.
1const int RELAY_PIN = 7;
2
3void setup() {
4 pinMode(RELAY_PIN, OUTPUT);
5 digitalWrite(RELAY_PIN, HIGH); // aktif LOW modülde kapalı başla / start OFF on active-LOW modules
6}
7
8void loop() {
9 digitalWrite(RELAY_PIN, LOW); // röle çeker, cihaz açılır / relay on
10 delay(3000);
11 digitalWrite(RELAY_PIN, HIGH); // röle bırakır, cihaz kapanır / relay off
12 delay(3000);
13}Mengendalikan relay dengan tombol: saklar nyala-mati
Di proyek nyata, relay biasanya dikendalikan dengan tombol, sensor, atau timer. Kode di bawah membalik kondisi relay setiap kali tombol ditekan, jadi kamu bisa menyalakan lampu listrik rumah dengan push button kecil. Untuk pengkabelan tombol dan bouncing, lihat Cara Menghubungkan Push Button ke Arduino.
1const int RELAY_PIN = 7;
2const int BUTTON_PIN = 2; // butonun diğer ucu GND'de / other leg to GND
3
4bool relayOn = false;
5bool lastButton = HIGH;
6
7void setup() {
8 pinMode(RELAY_PIN, OUTPUT);
9 pinMode(BUTTON_PIN, INPUT_PULLUP);
10 digitalWrite(RELAY_PIN, HIGH); // başta kapalı / start OFF (active LOW)
11}
12
13void loop() {
14 bool button = digitalRead(BUTTON_PIN);
15 if (lastButton == HIGH && button == LOW) { // yeni basış / new press
16 relayOn = !relayOn;
17 digitalWrite(RELAY_PIN, relayOn ? LOW : HIGH);
18 delay(50); // sıçrama önleme / debounce
19 }
20 lastButton = button;
21}JD-VCC dan optocoupler: isolasi penuh
Pada modul dengan optocoupler, di sebelah pin VCC, GND, dan IN ada pin bernama JD-VCC yang dipasangi jumper. Ketika jumper terpasang, kumparan relay juga mendapat daya dari 5 V Arduino. Kalau jumper dilepas dan kamu menghubungkan adaptor 5 V terpisah ke JD-VCC dan GND-nya sendiri, arus kumparan sepenuhnya berasal dari adaptor itu, dan sisi Arduino hanya menyalakan LED di dalam optocoupler. Dengan beban berisik seperti motor dan pompa, cara ini sangat mengurangi Arduino yang macet dan reset.
Relay dengan ESP32 dan Raspberry Pi Pico
Pin ESP32 dan Pico mengeluarkan 3,3 V. Sebagian besar modul relay 5 V akan terpicu oleh sinyal ini, tetapi pada modul aktif LOW, HIGH 3,3 V tidak selalu bisa melepas relay sepenuhnya; kalau relay-mu terus menyala, inilah penyebabnya. Solusinya, beli modul dengan pemicu 3,3 V, pakai board optocoupler dengan JD-VCC terpisah, atau tambahkan transistor NPN kecil. Modulnya sendiri tetap diberi daya 5 V. Mengendalikan relay dari Pico dengan MicroPython semudah ini:
1from machine import Pin
2import time
3
4relay = Pin(15, Pin.OUT, value=1) # GP15, aktif LOW: 1 = kapalı / active LOW: 1 = off
5
6while True:
7 relay.value(0) # röle çeker / relay on
8 time.sleep(3)
9 relay.value(1) # röle bırakır / relay off
10 time.sleep(3)Aturan keamanan ketika bekerja dengan tegangan listrik rumah
- Patuhi rating arus: jangan pernah melebihi nilai yang tercetak di relay (misalnya 10A 250VAC). Untuk perangkat berdaya besar seperti pemanas, AC, dan ketel listrik, tetaplah jauh di bawah batas itu.
- Putus kabel fasa: ketika mengendalikan lampu atau stopkontak, lewatkan kabel fasa melalui relay, bukan kabel netral, supaya tidak ada tegangan yang tersisa di perangkat ketika mati.
- Pakai kabel yang sesuai: kabel jumper breadboard tidak dibuat untuk listrik rumah; di sisi beban, pakai kabel berisolasi dengan penampang yang cukup.
- Isolasi bagian bawah board: sisi solder modul membawa tegangan listrik rumah; jangan biarkan menyentuh permukaan logam atau tangan.
- Tambahkan sekring: sekring dengan rating yang sesuai di jalur beban mencegah kebakaran jika terjadi korsleting.
Relay, transistor, atau solid-state relay?
| Fitur | Relay mekanis | Transistor / MOSFET | Solid-state relay (SSR) |
|---|---|---|---|
| Bisa menyaklar | AC dan DC | Hanya DC | Umumnya AC |
| Kecepatan | Lambat (milidetik) | Sangat cepat, bisa PWM | Cepat |
| Suara | Berbunyi klik | Senyap | Senyap |
| Umur pakai | Kontak aus seiring waktu | Sangat panjang | Sangat panjang |
| Paling cocok untuk | Lampu, stopkontak, pompa | Kecepatan motor, LED strip | Beban AC yang sering dinyalakan-dimatikan |
Singkatnya: kalau kamu hanya sesekali menyalakan dan mematikan perangkat, relay mekanis adalah solusi termurah dan termudah. Untuk mengatur kecepatan motor atau kecerahan LED strip, pilih transistor atau MOSFET, dan untuk beban AC yang dinyalakan-dimatikan berkali-kali per detik, pilih solid-state relay. Untuk memilih transistor yang cocok, lihat alat Transistor.
Ide proyek dengan relay
- Penyiraman pintar: jalankan pompa air ketika sensor kelembapan tanah menunjukkan tanahnya kering.
- Lampu aktif gerakan: nyalakan lampu ketika sensor PIR mendeteksi orang, lalu matikan lagi setelah beberapa waktu.
- Kipas yang dikendalikan kelembapan: nyalakan exhaust fan kamar mandi ketika kelembapan naik; untuk pengukurannya, lihat Sensor Suhu dan Kelembapan DHT11.
- Stopkontak dengan remote: nyalakan-matikan stopkontak dengan penerima IR dan remote TV.
- Timer: nyalakan dan matikan lampu akuarium pada jam yang sama setiap hari.
- Kendali dari ponsel: atur lampu dari halaman web dengan memakai Wi-Fi ESP32.
Kesalahan umum dan cara mengatasinya
- Relay bekerja terbalik: modulnya aktif LOW; tukar HIGH dan LOW di kode.
- Relay terus berbunyi klik: catu dayanya mungkin terlalu lemah; pakai adaptor 5 V eksternal, terutama jika memakai beberapa relay.
- Arduino reset ketika motor mulai berputar: derau dan penurunan tegangan; beri daya kumparan secara terpisah lewat JD-VCC dan pasang kapasitor di kaki motor.
- LED menyala tapi beban tidak jalan: kabel beban mungkin terpasang di NC, atau sekrup terminal longgar.
- Relay tidak pernah lepas dengan ESP32: HIGH 3,3 V tidak bisa mematikan modul aktif LOW; pakai modul yang kompatibel 3,3 V atau transistor.
- Menghubungkan relay polos langsung ke pin: arus kumparan dan tegangan baliknya merusak pin; selalu pakai modul, atau transistor ditambah dioda.
Begitu kamu memasangkan relay dengan sensor, kamu mulai membuat otomasi yang benar-benar berguna. Untuk melihat sensor mana yang berfungsi untuk apa, lihat Panduan Sensor Arduino; di aplikasi BlueGrays kamu akan menemukan proyek lampu relay, penyiraman, dan pencahayaan langkah demi langkah dengan skema rangkaian.
Pertanyaan umum
Kenapa modul relay-ku terus berbunyi klik?
Penyebab paling umum adalah catu daya yang lemah: ketika relay menarik, tegangannya turun, Arduino reset, lalu relay lepas lagi. Kalau kamu memakai beberapa relay atau memberi daya Arduino dari USB, pakai adaptor 5 V eksternal. Cek juga apakah kodemu punya loop yang terus menyalakan-mematikan relay.
Apa arti relay aktif LOW?
Itu adalah modul relay yang menyala ketika pin IN bernilai LOW (0 V) dan mati ketika HIGH. Sebagian besar modul murah bekerja seperti ini. Di kode, kamu menulis digitalWrite(pin, LOW) untuk menyalakannya dan HIGH untuk mematikannya; membuatnya HIGH lebih dulu di setup() supaya mulai dalam keadaan mati adalah kebiasaan yang baik.
Bisakah relay mengendalikan motor DC?
Untuk menyalakan dan mematikan motor, bisa, tetapi kamu tidak bisa mengatur kecepatannya atau mengubah arahnya dengan mudah. Untuk mengatur kecepatan, pakai MOSFET atau driver motor PWM, dan untuk arah, pakai H-bridge seperti L298N.
Apa fungsi jumper JD-VCC?
Pada modul dengan optocoupler, jumper ini memisahkan catu daya kumparan relay (JD-VCC) dari catu daya kendali (VCC). Kalau jumper dilepas dan JD-VCC diberi 5 V sendiri, Arduino benar-benar terisolasi dari rangkaian relay, dan derau dari beban seperti motor tidak bisa mencapainya.
Sebaiknya aku beli relay 5 V atau 12 V?
Tegangan kumparan harus sama dengan tegangan yang kamu pakai untuk memberi daya modul. Untuk proyek Arduino, modul dengan kumparan 5 V paling praktis, karena 5 V Arduino atau adaptor USB sudah cukup. Relay dengan kumparan 12 V butuh catu daya 12 V; ini tidak ada hubungannya dengan tegangan di sisi beban.
Berapa banyak relay yang bisa dikendalikan satu Arduino?
Setiap relay butuh satu pin digital, dan Uno punya sampai 20 pin yang bisa dipakai. Batas sebenarnya adalah arus: setiap kumparan menarik sekitar 70–80 mA, jadi untuk lebih dari 2 relay, beri daya modul dari adaptor 5 V eksternal, bukan dari Arduino. Untuk lebih banyak channel, ada juga modul 8 dan 16 channel.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
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

Menyalakan Bohlam 220V dengan Tombol (On-Off)
Ingin menyalakan dan mematikan bohlam rumah sungguhan dengan tombol kecil? Setiap kali kamu menekan tombol, Arduino membalik relay dan bohlam menyala; tekan lagi dan bohlam mati. Relay adalah perantar

Menyalakan Bohlam 220V dengan Remote Control
Nyalakan dan matikan bohlam sungguhan di rumahmu dengan remote TV, tanpa beranjak dari sofa. Arduino membaca sinyal cahaya tak terlihat dari remote; tombol power membuat relay berbunyi klik dan menyal

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

Lampu Pintar ESP32 (PIR + LDR + Relay + OLED)
Ubah lorong, kamar mandi, atau gudangmu menjadi lampu pintar dengan ESP32! Dengan sensor gerak PIR, sensor cahaya LDR, dan modul relay, kita membuat skenario klasik "lampu menyala ketika ada gerakan dalam gelap"; jika sudah terang, gerakan TIDAK menyalakan lampu, jadi energi hemat di siang hari. Lampu menyala 30 detik; jika gerakan berlanjut, timer diulang. OLED SSD1306 menampilkan status dengan font besar (NYALA / SIANG / MENUNGGU) dan hitung mundur.

Lampu Otomatis dengan Sensor Gerak PIR ESP32
Di proyek ini, sensor gerak PIR HC-SR501 mendeteksi ketika seseorang masuk ke ruangan dan otomatis menyalakan LED. Lama LED menyala dilacak dengan millis(); setiap bacaan HIGH memperbarui waktu gerakan terakhir, dan LED mati minimal 10 detik setelah bacaan HIGH terakhir. Kode yang sekarang juga menunggu 50 ms di setiap loop dengan delay(50), jadi loopnya belum sepenuhnya non-blocking. Proyek ini bisa dipakai untuk lampu tangga.

Bel Pintu dan Lampu dengan Sensor Gerak
Ketika ada orang datang ke pintumu, kamu sudah tahu bahkan sebelum ia membunyikan bel. Begitu sensor gerak melihat seseorang, LED menyala dan buzzer memainkan bunyi bel tiga nada dari tinggi ke rendah
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

