Isi kandungan:

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

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

Video: Aplikasi MCP-23008 Menggunakan Relay Interface (I2C) :: 6 Langkah
Video: Arduino: How to use ESP8266 Pin D3 / GPIO 0 and D8 / GPIO 15 properly? 2024, November
Anonim
Aplikasi MCP-23008 Menggunakan Relay Interface (I2C)
Aplikasi MCP-23008 Menggunakan Relay Interface (I2C)

Helo

Salam sejahtera.. !!

Saya (Somanshu Choudhary) atas nama usaha teknologi Dcube akan mengendalikan Relay melalui protokol I2C menggunakan Arduino nano dan MCP23008.

Langkah 1: Gambaran keseluruhan

Gambaran keseluruhan
Gambaran keseluruhan
  • Peranti MCP23X08 menyediakan pengembangan 8-bit, tujuan umum, pengembangan I / O selari untuk aplikasi I2C bus atau SPI.
  • MCP23X08 terdiri daripada beberapa register konfigurasi 8-bit untuk pemilihan input, output dan polariti. Master sistem dapat mengaktifkan I / Os sebagai input atau output dengan menulis bit konfigurasi I / O. Data untuk setiap input atau output disimpan dalam daftar Input atau Output yang sesuai. Polaritas daftar Input Port dapat dibalikkan dengan daftar Polarity Inversion. Semua daftar boleh dibaca oleh tuan sistem.
  • LINK DATASHEET:

Langkah 2: Apa yang Anda Perlu / Pautan

Apa yang Anda Perlu / Pautan
Apa yang Anda Perlu / Pautan

1. LINK Arduino Nano:

2. Perisai untuk Arduino Nano LINK:

3. Kabel USB Jenis A hingga Mikro Jenis B 6 Kaki Panjang

Pautan 4. Kabel I²C:

5. Lapan Relay Terkawal SPDT I²C

6. LINK Penyesuai:

Langkah 3: Rajah Litar

Rajah Litar
Rajah Litar
Rajah Litar
Rajah Litar

Langkah 4: Pengaturcaraan - I

Pengaturcaraan - I
Pengaturcaraan - I
Pengaturcaraan - I
Pengaturcaraan - I
  • Dalam kod ini, saya menggunakan Paradigma Pengaturcaraan Fungsi
  • Saya menggunakan tab yang berbeza untuk fungsi definisi dan fungsi memanggil

KOD DI BAWAH TAB q:

// Kod panggilan fungsi ringkas

#masuk penyediaan tidak sah ()

{

// Alamat I2C MCP23008

#tentukan MCP_ADDR 0x20

// Sertailah Bas I2C sebagai tuan

Wire.begin ();

// Mulakan komunikasi bersiri dan tetapkan kadar baud

Serial.begin (9600);

// Mulakan penghantaran dengan peranti yang diberikan pada bas I2C

Wire.beginTransmission (MCP_ADDR);

// Pilih daftar IODIR - I / O DIRECTION REGISTER

Wire.write (0x00);

// Pilih operasi yang diperlukan (output)

Wire.write (0x00);

// Pilih daftar KONFIGURASI

Wire.write (0x05);

// Pilih operasi yang diperlukan

Wire.write (0x0E);

// penghantaran akhir

Wire.endTransmission ();

}

gelung kosong ()

{

a1_on ();

kelewatan (1000);

a1_off ();

kelewatan (1000);

a2_on ();

kelewatan (1000);

a2_off ();

kelewatan (1000);

a3_on ();

kelewatan (1000);

a3_off ();

kelewatan (1000);

a4_on ();

kelewatan (1000);

a4_off ();

kelewatan (1000);

a5_on ();

kelewatan (1000);

a5_off ();

kelewatan (1000);

a6_on ();

kelewatan (1000);

a6_off ();

kelewatan (1000);

a7_on ();

kelewatan (1000);

a7_off ();

kelewatan (1000);

a8_on ();

kelewatan (1000);

a8_off ();

}

KOD DI BAWAH TAB q1:

// Kod ini untuk menghidupkan dan mematikan geganti 1 di atas kapal

batal a1_on () {

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

batal a1_off ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

KOD DI BAWAH TAB q2:

// Kod ini untuk menghidupkan dan mematikan geganti 2 di atas kapal

batal a2_on () {

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

batal a2_off ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

KOD DI BAWAH TAB q3: // Kod ini untuk menghidupkan dan mematikan geganti 3 di atas kapal

batal a3_on ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

batal a3_off ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

Langkah 5: Pengaturcaraan - II

Pengaturcaraan - II
Pengaturcaraan - II

KOD DI BAWAH TAB q4:

// Kod ini untuk menghidupkan dan mematikan geganti 4 di atas kapal

batal a4_on ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

batal a4_off ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

KOD DI BAWAH TAB q5:

// Kod ini untuk menghidupkan dan mematikan geganti 5 di atas kapal

batal a5_on ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

batal a5_off ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

KOD DI BAWAH TAB q6: // Kod ini adalah untuk menghidupkan dan mematikan geganti 6 di atas kapal

batal a6_on ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

batal a6_off ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

KOD DI BAWAH TAB q7: // Kod ini adalah untuk menghidupkan dan mematikan geganti 7 di atas kapal

batal a7_on () {

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

batal a7_off ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

KOD DI BAWAH TAB q8: // Kod ini adalah untuk menghidupkan dan mematikan geganti 8 di atas kapal

batal a8_on () {

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

batal a8_off ()

{

// Mulakan penghantaran

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kelewatan (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Keluaran ke skrin

Serial.print ("Nilai GPIO:");

Serial.println (GPIO, BIN);

}

Langkah 6: Video

Untuk pertanyaan lanjut, sila lawati laman web kami:

www.dcubetechnologies.com

Disyorkan: