Daftar Isi:

Penerapan MCP-23008 Menggunakan Relay Interface (I2C):: 6 Langkah
Penerapan MCP-23008 Menggunakan Relay Interface (I2C):: 6 Langkah

Video: Penerapan MCP-23008 Menggunakan Relay Interface (I2C):: 6 Langkah

Video: Penerapan MCP-23008 Menggunakan Relay Interface (I2C):: 6 Langkah
Video: Angular Rate Sensors (ARS) - Truly Understand Dynamic Motion (44 min) 2024, November
Anonim
Aplikasi MCP-23008 Menggunakan Relay Interface (I2C)
Aplikasi MCP-23008 Menggunakan Relay Interface (I2C)

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

Gambaran
Gambaran
  • 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

Yang Anda Butuhkan / Tautan
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

Diagram Sirkuit
Diagram Sirkuit
Diagram Sirkuit
Diagram Sirkuit

Langkah 4: Pemrograman - I

Pemrograman - I
Pemrograman - I
Pemrograman - I
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

Pemrograman - II
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: