Pendahuluan

Tutorial ini khusus akan membahas cara mengendalikan relay yang terdapat pada modul UniPi v1.1 menggunakan arduino. Hal ini dapat dilakukan, jika Anda tidak memiliki raspberry pi untuk mengendalikan modul UniPi v1.1. Perlu diketahui bahwa modul UniPi menggunakan IC MCP23008 untuk mengendalikan 8 buah relay. Dimana komunikasi antara IC MCP23008 dengan arduino adalah menggunakan protokol I2C. Pada halaman 10 dokumentasi UniPi terdapat informasi bahwa IC MCP23008 menggunakan alamat 0x20, dan berikut ini adalah koneksi antara IC MCP23008 dan relay pada UniPi:

Relay MCP23008
8 GP0
7 GP1
6 GP2
5 GP3
4 GP4
3 GP5
2 GP6
1 GP7

Dengan berbekal informasi tersebut, kita dapat mengendalikan relay pada modul UniPi menggunakan Arduino.

Langkah-langkah

Hal pertama yang perlu Anda lakukan adalah menyolder pin untuk koneksi I2C eksternal pada modul UniPi jika modul yang Anda miliki belum terpasang pinnya. Berikut ini adalah letak pin header yang perlu Anda solder:

External I2C Header

Selanjutnya, kita perlu menyiapkan empat kabel jumper untuk menghubungkan pin header tersebut ke Arduino. Agar lebih mudah, kita akan menggunakan suplai tegangan dari modul UniPi untuk menjalankan Arduino. Berikut ini adalah tabel koneksi antara header I2C eksternal modul UniPi dan Arduino:

UniPi I2C Arduino
VCC VCC
GND GND
SCL SCL
SDA SDA

Jangan menghubungkan modul UniPi dan Arduino sebelum melakukan upload sketch, dan setelah melepaskan koneksi antara Arduino dan komputer Anda. Serta gunakan sumber tegangan eksternal, baik itu adaptor maupun semacamnya. Karena menggunakan USB komputer Anda sebagai sumber tegangan dapat merusak, sebab relay pada modul UniPi membutuhkan arus yang cukup besar.

Selanjutnya, jalankan IDE Arduino dan salin sketch berikut ini untuk melakukan tes komunikasi antara arduino dan modul UniPi. Sketch ini akan mengaktifkan relay pada modul UniPi mulai dari relay 8 hingga relay 1, kemudian mengaktifkan semua relay secara bersamaan dan menonaktifkan semua relay secara bersamaan pula.

#include <Wire.h>

static const byte relay_num[] = {1,2,4,8,16,32,64,128};

void setup()
{
    Wire.begin();                       // inisialisasi library wire (i2c)
    Wire.beginTransmission(0x20);       // alamat MCP23008 pada UniPi (0x20)
    Wire.write(0);                      // register DDR pada MCP23008
    Wire.write(0);                      // set pin 0 = output, 1 = input
    Wire.endTransmission();             // kirim instruksi ke MCP23008
}

void loop()
{
    for (int i = 0; i < 8; i++) {       // ulangi mulai dari relay 8-1
        delay(1000);                    // delay 1 detik
        Wire.beginTransmission(0x20);   // alamat MCP23008 pada UniPi (0x20)
        Wire.write(0x09);               // register IO pada MCP23008
        Wire.write(relay_num[i]);       // digitalWrite ke output nomor 8-1
        Wire.endTransmission();         // kirim instruksi ke MCP23008
    }

    delay(1000);                        // delay 1 detik

    Wire.beginTransmission(0x20);       // alamat MCP23008 pada UniPi (0x20)
    Wire.write(0x09);                   // register IO pada MCP23008
    Wire.write(0xff);                   // digitalWrite 1 ke seluruh IO (nyalakan semua relay)
    Wire.endTransmission();             // kirim instruksi ke MCP23008

    delay(1000);                        // delay 1 detik

    Wire.beginTransmission(0x20);       // alamat MCP23008 pada UniPi
    Wire.write(0x09);                   // register IO pada MCP23008
    Wire.write(0x00);                   // digitalWrite 0 ke seluruh IO (padamkan semua relay)
    Wire.endTransmission();             // kirimkan instruksi ke MCP23008
}

Lakukan kompilasi dan upload terhadap sketch tersebut dengan menekan tombol Ctrl-U pada keyboard atau memilih menu Sketch -> Upload pada IDE Arduino. Setelah proses upload firmware berhasil, lepaskan koneksi antara komputer Anda dan Arduino, lalu hubungkan Arduino dengan modul UniPi sesuai dengan tabel yang telah dijelaskan di atas. Hubungkan modul UniPi dengan sumber tegangan eksternal, maka otomatis Arduino juga akan aktif dan menjalankan program test yang telah Anda upload. Dari sini, Anda dapat mengembangkan informasi dari tutorial ini sesuai dengan yang Anda inginkan.

Penutup

Sekian tutorial singkat kali ini, semoga bermanfaat. Terima kasih kepada Allah SWT dan Anda yang telah membaca tutorial ini.