
Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49

Halo
Salam Sejahtera..!!
Saya (Somanshu Choudhary) atas nama perusahaan teknologi Dcube akan mengontrol Relay melalui protokol I2C menggunakan Arduino nano dan MCP23008.
Langkah 1: Ikhtisar

- Perangkat MCP23X08 menyediakan 8-bit, tujuan umum, ekspansi I/O paralel untuk bus I2C atau aplikasi SPI.
- MCP23X08 terdiri dari beberapa register konfigurasi 8-bit untuk pemilihan input, output dan polaritas. Master sistem dapat mengaktifkan I/O sebagai input atau output dengan menulis bit konfigurasi I/O. Data untuk setiap input atau output disimpan dalam register Input atau Output yang sesuai. Polaritas register Port Input dapat dibalik dengan register Pembalikan Polaritas. Semua register dapat dibaca oleh master sistem.
- LEMBAR DATA LINK:
Langkah 2: Yang Anda Butuhkan / Tautan

1. Arduino Nano LINK:
2. Perisai untuk Arduino Nano LINK:
3. Kabel USB Tipe A ke Tipe Mikro B Panjang 6 Kaki
4. I²C Kabel LINK:
5. Delapan Relai Terkendali SPDT I²C
6. Tautan Adaptor:
Langkah 3: Diagram Sirkuit


Langkah 4: Pemrograman - I


- Dalam kode ini, saya menggunakan Paradigma Pemrograman Fungsi
- Saya menggunakan tab yang berbeda untuk definisi fungsi dan pemanggilan fungsi
KODE DI BAWAH TAB q:
// Kode panggilan fungsi sederhana
#sertakan pengaturan kosong()
{
// Alamat I2C dari MCP23008
#menentukan MCP_ADDR 0x20
// Bergabunglah dengan Bus I2C sebagai master
Kawat.mulai();
// Mulai komunikasi serial dan atur baud rate
Serial.begin(9600);
// Mulai transmisi dengan perangkat yang diberikan pada bus I2C
Wire.beginTransmission(MCP_ADDR);
// Pilih IODIR – I/O DIRECTION REGISTER register
Kawat.tulis (0x00);
// Pilih operasi yang diperlukan (output)
Kawat.tulis (0x00);
// Pilih KONFIGURASI register
Kawat.tulis (0x05);
// Pilih operasi yang diperlukan
Kawat.tulis (0x0E);
// akhiri transmisi
Kawat.endTransmisi();
}
lingkaran kosong()
{
a1_on();
penundaan (1000);
a1_off();
penundaan (1000);
a2_on();
penundaan (1000);
a2_off();
penundaan (1000);
a3_on();
penundaan (1000);
a3_off();
penundaan (1000);
a4_on();
penundaan (1000);
a4_off();
penundaan (1000);
a5_on();
penundaan (1000);
a5_off();
penundaan (1000);
a6_on();
penundaan (1000);
a6_off();
penundaan (1000);
a7_on();
penundaan (1000);
a7_off();
penundaan (1000);
a8_on();
penundaan (1000);
a8_off();
}
KODE DI BAWAH TAB q1:
// Kode ini untuk menghidupkan dan mematikan relai 1 di papan
batal a1_on() {
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x01);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
batalkan a1_off()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x00);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
KODE DI BAWAH TAB q2:
// Kode ini untuk menghidupkan dan mematikan relai 2 di papan
batalkan a2_on() {
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x02);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
batalkan a2_off()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x00);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
KODE DI BAWAH TAB q3:// Kode ini untuk menghidupkan dan mematikan relai 3 on board
batalkan a3_on()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x04);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
batalkan a3_off()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x00);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
Langkah 5: Pemrograman - II

KODE DI BAWAH TAB q4:
// Kode ini untuk menghidupkan dan mematikan relai 4 di papan
batalkan a4_on()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x08);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
batalkan a4_off()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x00);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
KODE DI BAWAH TAB q5:
// Kode ini untuk menghidupkan dan mematikan relay 5 on board
batalkan a5_on()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x10);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
batalkan a5_off()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x00);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
KODE DI BAWAH TAB q6:// Kode ini untuk menghidupkan dan mematikan relai 6 on board
batalkan a6_on()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x20);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
batalkan a6_off()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x00);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
KODE DI BAWAH TAB q7:// Kode ini untuk menghidupkan dan mematikan relay 7 on board
batalkan a7_on() {
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x40);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
batalkan a7_off()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x00);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
KODE DI BAWAH TAB q8:// Kode ini untuk menghidupkan dan mematikan relay 8 on board
batalkan a8_on() {
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x80);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
batalkan a8_off()
{
// Mulai transmisi
Wire.beginTransmission(MCP_ADDR);
Kawat.tulis (0x09);
Kawat.tulis (0x00);
penundaan(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Kawat.baca();
Kawat.endTransmisi();
// Keluaran ke layar
Serial.print("Nilai GPIO:");
Serial.println(GPIO, BIN);
}
Langkah 6: Video
Untuk pertanyaan lebih lanjut Jangan ragu untuk mengunjungi situs kami:
www.dcubetechnologies.com
Direkomendasikan:
Relay I2C Bertemu Arduino IDE: 5 Langkah

Relay I2C Bertemu Arduino IDE: Saya memesan papan relai yang bagus tetapi tidak ada instruksi ArduinoIDE, hanya Raspberry Pi e.o. Saya mencari tahu cara menggunakannya dengan Arduino dan ingin membagikannya sehingga Anda dapat menghemat waktu itu. Contoh RaspberryPi asli: wiki.52pi.com/index.php/DockerPi_4_Channel_R
Saklar Relay Arduino Uno RFID, Dengan Tampilan I2C: 4 Langkah

Switch Relay Arduino Uno RFID, Dengan Tampilan I2C: Halo, ini adalah proyek pertama saya, nama saya Oskar dan saya berusia 13 tahun. Proyek ini bekerja dengan tampilan I2C, bukan yang normal
Sistem Rumah Pintar Alexa Menggunakan Modul Relay NodeMCU: 10 Langkah

Sistem Alexa Smart Home Menggunakan Modul Relay NodeMCU : Pada project IoT ini saya telah membuat sistem Alexa Smart Home Automation menggunakan NodeMCU ESP8266 & Modul Relay. Anda dapat dengan mudah mengontrol lampu, kipas angin, dan peralatan rumah lainnya dengan perintah suara. Untuk menghubungkan speaker pintar Echo Dot dengan
Layar LCD I2C / IIC - Gunakan LCD SPI ke Layar LCD I2C Menggunakan Modul SPI ke IIC Dengan Arduino: 5 Langkah

Layar LCD I2C / IIC | Menggunakan LCD SPI ke Layar LCD I2C Menggunakan Modul SPI ke IIC Dengan Arduino: Hai teman-teman karena LCD SPI 1602 yang normal memiliki terlalu banyak kabel untuk dihubungkan sehingga sangat sulit untuk menghubungkannya dengan arduino tetapi ada satu modul yang tersedia di pasaran yang dapat ubah tampilan SPI menjadi tampilan IIC sehingga Anda hanya perlu menghubungkan 4 kabel
IOT123 - BATU RELAY I2C 2CH: 5 Langkah (dengan Gambar)

IOT123 - BATU RELAY I2C 2CH: BATU IOT123 adalah unit modular DIY yang dapat digabungkan dengan BATU IOT123 lainnya, untuk menambahkan fungsionalitas ke simpul atau perangkat yang dapat dikenakan. Mereka didasarkan pada inci persegi, protoboard dua sisi dengan saling berhubungan melalui lubang.Sejumlah BATA ini