Daftar Isi:
- Langkah 1: Ikhtisar
- Langkah 2: Yang Anda Butuhkan / Tautan
- Langkah 3: Diagram Sirkuit
- Langkah 4: Pemrograman - I
- Langkah 5: Pemrograman - II
- Langkah 6: Video
Video: Penerapan MCP-23008 Menggunakan Relay Interface (I2C):: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
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:
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
IR Home Automation Menggunakan Relay: 6 Langkah (dengan Gambar)
IR Home Automation Menggunakan Relay: Sistem Otomasi Rumah Jarak Jauh Infared (Peringatan: Replikasi proyek dengan risiko Anda sendiri! Proyek ini melibatkan Tegangan Tinggi)
Otomatisasi Rumah Dengan Raspberry Pi Menggunakan Papan Relay: 7 Langkah
Otomasi Rumah Dengan Raspberry Pi Menggunakan Relay Board: Banyak orang menginginkan kenyamanan yang luar biasa tetapi dengan harga yang wajar. Kami merasa malas untuk menerangi rumah setiap malam ketika matahari terbenam dan keesokan paginya, mematikan lampu lagi Atau untuk menyalakan/mematikan AC/Kipas Angin/Pemanas seperti se
Cara Membuat LED Blinker Menggunakan Relay: 7 Langkah
Cara Membuat Blinker LED Menggunakan Relay : Hai sobat, saya akan membuat rangkaian Blinker LED menggunakan Relay 12V. Mari kita mulai
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