Komponen · 6 mnt baca

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.

Modul relay 5V satu channel
Modul relay 5 V satu channel: kotak biru adalah relay-nya, dan terminal sekrup di sebelahnya untuk menghubungkan sisi beban.

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:

TerminalArtiKapan terhubung ke COM?
COMCommon (bersama); salah satu kabel beban masuk ke siniSelalu terhubung ke NO atau NC
NONormally Open (biasanya terbuka)Hanya ketika relay diberi daya
NCNormally Closed (biasanya tertutup)Ketika relay tidak diberi daya
Sebagian besar proyek memakai COM dan NO: ketika Arduino mati, sedang restart, atau macet, perangkatnya juga tetap mati. Pilih NC untuk perangkat yang harus terus menyala dan hanya sesekali diputus.

Spesifikasi (modul 5 V yang umum)

FiturNilai
Tegangan kumparan5 V DC
Arus kumparanSekitar 70–80 mA (per channel)
Rating kontak10 A 250 V AC / 10 A 30 V DC (tercetak di relay)
PemicuAktif LOW atau aktif HIGH (tergantung modulnya)
Pin kendaliVCC, GND, IN (IN1, IN2... di board multi-channel)
Terminal bebanCOM, 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.

C++ (Arduino IDE)
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}
Banyak modul relay bersifat aktif LOW: relay menyala ketika pin IN bernilai LOW dan mati ketika HIGH. Kamu bisa mengetahui jenisnya dari LED status. Pada board aktif HIGH, tukar HIGH dan LOW di kode di atas. Mematikan relay lebih dulu di setup() mencegah perangkat menyala sesaat ketika Arduino sedang booting.

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.

C++ (Arduino IDE)
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:

MicroPython
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

Tegangan listrik rumah bisa mematikan. Selalu rakit rangkaian dengan steker dicabut dari stopkontak, jangan biarkan ujung kabel terbuka, masukkan rangkaian ke kotak tertutup yang terisolasi, dan kalau ragu, berlatihlah dengan LED strip atau kipas 12 V, bukan listrik rumah. Anak-anak tidak boleh mengerjakan sisi listrik rumah tanpa orang dewasa.
  • 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?

FiturRelay mekanisTransistor / MOSFETSolid-state relay (SSR)
Bisa menyaklarAC dan DCHanya DCUmumnya AC
KecepatanLambat (milidetik)Sangat cepat, bisa PWMCepat
SuaraBerbunyi klikSenyapSenyap
Umur pakaiKontak aus seiring waktuSangat panjangSangat panjang
Paling cocok untukLampu, stopkontak, pompaKecepatan motor, LED stripBeban 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.

Lihat semua proyek
Menyalakan Bohlam 220V dengan Tombol Tekan
#19Mahir
Premium

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

4.4(30)
38
Menyalakan Bohlam 220V dengan Tombol (On-Off)
#20Mahir
Premium

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

4.5(33)
44
Menyalakan Bohlam 220V dengan Remote Control
#21Mahir
Premium

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

4.4(22)
30
Stasiun Penyiraman Pintar
#83Mahir
Premium

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

5.0(42)
57
Lampu Pintar ESP32 (PIR + LDR + Relay + OLED)
#141Mahir
Premium

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.

4.3(6)
11
Lampu Otomatis dengan Sensor Gerak PIR ESP32
#121Menengah
Premium

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.

4.4(24)
38
Bel Pintu dan Lampu dengan Sensor Gerak
#25Menengah
Premium

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

4.7(54)
71