Raspberry Pi Pico dan Relay 1 Channel: Membuat Saklar Elektronik dengan Push Button

Raspberry Pi Pico tidak hanya dapat digunakan untuk menyalakan LED atau membaca sensor. Dengan memanfaatkan GPIO, mikrokontroler ini juga dapat digunakan untuk mengendalikan berbagai perangkat elektronik melalui modul relay. Pada proyek kali ini, kita akan membuat saklar elektronik menggunakan Raspberry Pi Pico, push button, dan relay 1 channel SPDT. Push button digunakan sebagai input untuk memberikan perintah, Raspberry Pi Pico bertugas memproses input tersebut, sedangkan relay digunakan sebagai saklar untuk mengendalikan beban.

 

Sebagai indikator output, kita akan menggunakan LED. Ketika push button ditekan, Raspberry Pi Pico akan mengubah kondisi relay sehingga LED menyala. Ketika tombol ditekan kembali, relay berubah kondisi dan LED akan mati. Proyek ini cocok untuk pemula yang ingin mempelajari cara mengontrol relay dengan Raspberry Pi Pico, penggunaan GPIO, push button, serta konsep dasar saklar elektronik menggunakan MicroPython.

Apa Itu Relay?

Relay adalah komponen yang dapat digunakan sebagai saklar yang dikendalikan secara elektrik. Relay memungkinkan sebuah rangkaian kontrol dengan daya relatif kecil untuk mengendalikan rangkaian beban yang terpisah. Dalam proyek ini, Raspberry Pi Pico tidak digunakan untuk mengalirkan arus secara langsung ke beban. GPIO Raspberry Pi Pico hanya memberikan sinyal kontrol kepada modul relay. Ketika relay aktif, kontak di dalam relay berubah posisi sehingga rangkaian beban dapat terhubung.

Relay SPDT yang Digunakan

Relay yang digunakan pada proyek ini adalah modul relay 1 channel dengan konfigurasi kontak SPDT (Single Pole Double Throw). Istilah 1 channel menunjukkan bahwa modul tersebut memiliki satu relay yang dapat dikendalikan. Sedangkan SPDT menunjukkan konfigurasi kontak relay yang memiliki tiga terminal utama:

- COM (Common) → terminal bersama.

- NO (Normally Open) → kontak yang terbuka ketika relay tidak aktif.

- NC (Normally Closed) → kontak yang terhubung dengan COM ketika relay tidak aktif.

Untuk proyek ini, Anda dapat menggunakan terminal COM dan NO. Dengan menggunakan COM dan NO, LED berada dalam kondisi mati ketika relay belum aktif. Setelah relay aktif, COM dan NO terhubung sehingga arus dapat mengalir menuju LED.

Konsep Proyek Saklar Elektronik

Proyek ini menggunakan tiga bagian utama:

Push Button → Raspberry Pi Pico → Relay → LED

Push button menjadi input yang digunakan untuk memberikan perintah. Raspberry Pi Pico membaca kondisi push button melalui salah satu GPIO. Setelah tombol ditekan, program mengubah kondisi output GPIO yang terhubung ke input relay. Relay kemudian bekerja sebagai saklar elektronik untuk menghubungkan atau memutus rangkaian LED. Dengan konsep tersebut, push button dapat berfungsi seperti saklar biasa.

Cara Kerja Proyek

Sistem bekerja dengan mekanisme toggle. Ketika pertama kali dinyalakan:

LED OFF → Relay OFF

Kemudian ketika push button ditekan:

Push Button → Raspberry Pi Pico → Relay ON → LED ON

Ketika push button ditekan kembali:

Push Button → Raspberry Pi Pico → Relay OFF → LED OFF

Proses tersebut dapat dilakukan berulang kali.

Komponen yang Dibutuhkan

Untuk membuat proyek saklar elektronik Raspberry Pi Pico dengan relay, siapkan komponen berikut:


Komponen

Jumlah

Raspberry Pi Pico

1

Modul Relay 1 Channel SPDT

1

Push Button

1

LED

1

Resistor 220Ω

1

Breadboard

1

Kabel jumper

Secukupnya

Kabel USB

1


LED digunakan sebagai beban indikator agar perubahan kondisi relay dapat dilihat dengan mudah.

Untuk tahap pembelajaran, penggunaan LED lebih aman dan sederhana dibandingkan langsung menghubungkan relay dengan perangkat bertegangan tinggi.

Rangkaian Raspberry Pi Pico, Push Button dan Relay

Pada contoh ini, kita menggunakan:

- GPIO 14 untuk membaca push button.

GPIO 15 untuk mengontrol relay.

Push button menggunakan konfigurasi internal pull-up Raspberry Pi Pico.

Koneksi Push Button

Hubungkan push button sebagai berikut:


Push Button

Raspberry Pi Pico

Kaki 1

GPIO 14

Kaki 2

GND


Karena menggunakan Pin.PULL_UP, kita tidak membutuhkan resistor pull-up eksternal. Ketika tombol tidak ditekan, GPIO 14 membaca kondisi HIGH. Ketika tombol ditekan, GPIO 14 terhubung ke GND sehingga membaca LOW.

Koneksi Modul Relay

Hubungkan bagian kontrol modul relay:


Modul Relay

Raspberry Pi Pico

IN

GPIO16

GND

GND

VCC

Supply sesuai spesifikasi modul


Penting: Tegangan VCC harus mengikuti spesifikasi modul relay yang digunakan. Jangan menganggap semua modul relay memiliki kebutuhan tegangan yang sama.

GPIO Raspberry Pi Pico hanya digunakan sebagai sinyal kontrol, bukan untuk menyuplai beban relay secara langsung.

Menghubungkan LED sebagai Beban

Pada sisi kontak relay, gunakan terminal COM dan NO (Normally Open) untuk menghubungkan LED sebagai beban. Rangkaian sederhananya dapat dibuat dengan menghubungkan sumber positif ke terminal COM, kemudian terminal NO ke resistor 220Ω dan LED, lalu kembali ke sumber negatif. Urutan koneksinya adalah:

Sumber (+) → COM → Relay → NO → Resistor 220Ω → LED → Sumber (-)

Dengan konfigurasi ini, LED hanya akan menyala ketika relay aktif dan kontak COM terhubung dengan NO.


Ketika relay tidak aktif, kontak COM dan NO terbuka sehingga LED tidak menyala. Ketika relay aktif, COM dan NO terhubung sehingga arus dapat mengalir melalui resistor dan LED.

Catatan: Sumber tegangan untuk sisi kontak relay harus disesuaikan dengan kebutuhan LED dan rangkaian yang digunakan. Jangan menghubungkan sumber tegangan yang tidak sesuai dengan LED.

Memprogram Raspberry Pi Pico dengan MicroPython

Setelah rangkaian selesai, Anda dapat membuat program menggunakan MicroPython. Program dapat ditulis menggunakan Thonny IDE kemudian dijalankan pada Raspberry Pi Pico.

Program Saklar Elektronik dengan Push Button

Berikut kode program untuk membuat push button berfungsi sebagai saklar toggle:

 

from machine import Pin

from time import sleep


# Pin relay

relay = Pin(15, Pin.OUT)


# Pin push button dengan internal pull-up

button = Pin(14, Pin.IN, Pin.PULL_UP)


# Kondisi awal relay

relay_state = 0

relay.value(relay_state)


# Kondisi tombol sebelumnya

last_button_state = 1


while True:

    # Membaca kondisi tombol

    current_button_state = button.value()


    # Mendeteksi tombol baru saja ditekan

    if last_button_state == 1 and current_button_state == 0:


        # Mengubah kondisi relay

        relay_state = not relay_state

        relay.value(relay_state)


        if relay_state:

            print("Relay ON - LED menyala")

        else:

            print("Relay OFF - LED mati")


        # Jeda untuk mengurangi efek bouncing tombol

        sleep(0.2)


    # Menyimpan kondisi tombol

    last_button_state = current_button_state


    sleep(0.01)


Penjelasan Program

Mari kita lihat bagian penting dari program tersebut.

1. Mengimpor Modul

 

from machine import Pin

from time import sleep


Pin digunakan untuk mengatur GPIO Raspberry Pi Pico, sedangkan sleep() digunakan untuk memberikan jeda waktu.

2. Mengatur Pin Relay

 

relay = Pin(15, Pin.OUT)


Kode tersebut menjadikan GPIO 15 sebagai output yang digunakan untuk mengontrol input modul relay.

3. Mengatur Pin Push Button

 

button = Pin(14, Pin.IN, Pin.PULL_UP)


GPIO 14 digunakan sebagai input push button. Pin.PULL_UP mengaktifkan resistor pull-up internal pada Raspberry Pi Pico. Dengan konfigurasi tersebut:

 

Tombol tidak ditekan → HIGH (1)

Tombol ditekan       → LOW  (0)


4. Menentukan Kondisi Awal Relay

 

relay_state = 0

relay.value(relay_state)


Pada awal program, relay dibuat dalam kondisi OFF. Variabel relay_state digunakan untuk menyimpan kondisi relay.

5. Membaca Push Button

Program membaca kondisi tombol menggunakan:

 

current_button_state = button.value()


Nilai tersebut kemudian dibandingkan dengan kondisi tombol sebelumnya.

6. Mendeteksi Tombol Ditekan

Bagian berikut digunakan untuk mendeteksi perubahan dari tidak ditekan menjadi ditekan:

 

if last_button_state == 1 and current_button_state == 0:


Artinya, sebelumnya tombol berada pada kondisi HIGH, kemudian berubah menjadi LOW.

Perubahan tersebut dianggap sebagai satu kali penekanan tombol.

7. Mengubah Kondisi Relay

Selanjutnya:

 

relay_state = not relay_state

relay.value(relay_state)


Kode tersebut membalik kondisi relay. Jika sebelumnya 0 berubah menjadi 1, maka relay berubah menjadi ON.Jika sebelumnya 1 berubah menjadi 0, maka relay berubah menjadi OFF. Dengan demikian, satu tombol dapat digunakan sebagai saklar ON/OFF.

Jika Relay Menggunakan Active LOW

Perlu diperhatikan bahwa beberapa modul relay menggunakan konfigurasi Active LOW. Pada modul Active LOW, relay aktif ketika input IN mendapatkan logika LOW. Jika relay yang digunakan memiliki karakteristik tersebut, logika program perlu disesuaikan. Contohnya, ketika ingin mengaktifkan relay relay.value(0) dan ketika ingin mematikannya relay.value(1). Oleh karena itu, jika hasil pengujian menunjukkan kondisi relay terbalik, periksa apakah modul yang digunakan merupakan Active HIGH atau Active LOW.

Pengujian Proyek

Setelah program dijalankan pada Raspberry Pi Pico, lakukan pengujian berikut.

1. Pengujian Pertama

Pastikan LED dalam kondisi mati saat sistem pertama kali dijalankan. Jika relay langsung aktif, periksa kembali logika program dan karakteristik modul relay.

2. Pengujian Kedua

Tekan push button satu kali. Hasil yang diharapkan:

Push button ditekan → Relay ON → LED menyala

3. Pengujian Ketiga

Tekan push button kembali. Hasil yang diharapkan:

Push button ditekan → Relay OFF → LED mati

Jika hasilnya sesuai, berarti Raspberry Pi Pico telah berhasil digunakan sebagai pengendali saklar elektronik berbasis relay.

 


Mengapa Menggunakan Relay?

GPIO Raspberry Pi Pico sebenarnya dapat digunakan untuk mengontrol LED secara langsung. Namun, GPIO tidak dirancang untuk menangani beban besar. Relay memberikan sebuah mekanisme saklar yang memungkinkan rangkaian kontrol dan rangkaian beban dipisahkan. Oleh karena itu, relay banyak digunakan dalam proyek otomatisasi, kontrol perangkat elektronik, dan sistem kendali berbasis mikrokontroler. Namun, kemampuan relay tetap bergantung pada spesifikasi kontak relay dan modul yang digunakan.

Hal yang Perlu Diperhatikan

1. Periksa Tegangan Modul Relay

Pastikan VCC modul relay mendapatkan tegangan yang sesuai dengan spesifikasinya.

2. Jangan Menghubungkan Beban Besar ke GPIO

GPIO Raspberry Pi Pico hanya digunakan untuk memberikan sinyal kontrol.

Jangan menghubungkan motor atau perangkat berdaya besar langsung ke GPIO.

3. Gunakan COM dan NO untuk Saklar Normalnya Mati

Pada proyek ini, terminal COM dan NO digunakan agar beban dalam kondisi mati ketika relay belum aktif.

4. Perhatikan Active HIGH atau Active LOW

Jika relay bekerja terbalik dari yang diharapkan, periksa apakah modul menggunakan Active HIGH atau Active LOW.

5. Berhati-hati dengan Tegangan PLN

Untuk tahap belajar, gunakan LED atau beban DC bertegangan rendah.

Jika relay digunakan untuk mengendalikan perangkat AC PLN 220V, diperlukan penanganan dan isolasi yang tepat karena terdapat risiko sengatan listrik dan kebakaran. Untuk pemula, sebaiknya jangan melakukan pengkabelan PLN secara langsung tanpa pengetahuan dan prosedur keselamatan yang memadai.

Pengembangan Proyek

Setelah berhasil membuat saklar elektronik menggunakan Raspberry Pi Pico, push button, dan relay, proyek ini dapat dikembangkan lebih jauh.

1. Menambahkan Sensor Cahaya

Tambahkan LDR untuk membuat sistem yang dapat mengaktifkan relay secara otomatis ketika kondisi lingkungan menjadi gelap.

2. Menambahkan Sensor Gerak

Sensor PIR seperti HC-SR501 dapat digunakan untuk membuat lampu otomatis berbasis sensor gerak. Ketika sensor mendeteksi gerakan, Raspberry Pi Pico dapat memberikan perintah kepada relay untuk mengaktifkan beban.

3. Menggunakan Beberapa Relay

Jika membutuhkan lebih banyak output, sistem dapat dikembangkan menggunakan modul relay 2 channel, 4 channel, atau jumlah channel lainnya, dengan menyesuaikan jumlah GPIO dan kebutuhan sistem.

4. Mengembangkan Sistem Smart Home

Konsep ini juga dapat menjadi dasar untuk membuat sistem smart home berbasis Raspberry Pi Pico atau mikrokontroler lain yang memiliki konektivitas jaringan.

 

Baca juga: Deteksi Gerakan dengan PIR HC-SR501 pada Raspberry Pi Pico

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.

Posting Komentar

0 Komentar