Isi kandungan:
- Langkah 1: Gambaran keseluruhan
- Langkah 2: Apa yang Anda Perlu / Pautan
- Langkah 3: Rajah Litar
- Langkah 4: Pengaturcaraan - I
- Langkah 5: Pengaturcaraan - II
- Langkah 6: Video
Video: Aplikasi MCP-23008 Menggunakan Relay Interface (I2C) :: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
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
- 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
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
Langkah 4: 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
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:
Mengawal Aplikasi Led Melalui Blynk Menggunakan Nodemcu Melalui Internet: 5 Langkah
Mengawal Led Melalui Aplikasi Blynk Menggunakan Nodemcu Melalui Internet: Halo Semua Hari Ini Kami Akan Menunjukkan kepada Anda Bagaimana Anda Boleh Mengendalikan LED Menggunakan Telefon Pintar Melalui Internet
[2020] Menggunakan IPhone atau IPad dan Aplikasi Micro: bit Game Pad untuk Mengendalikan Kereta RC: 23 Langkah
[2020] Menggunakan Aplikasi iPhone atau IPad dan Mikro: bit Permainan Pad untuk Mengendalikan Kereta RC: Pernahkah anda berfikir untuk menggunakan iPhone atau iPad anda untuk mengawal mikro: bit? Adakah anda tahu Micro: bit Education Foundation menyediakan aplikasi iOS di Stor aplikasi? Cari " mikro: bit " di App store dan anda boleh memuat turun aplikasi secara percuma
Teknik Relay Modul Relay: 4 Langkah
Relay Module Reverse Engineering: Artikel ini menunjukkan cara membuat Relay Module yang boleh digunakan untuk Arduino dan aplikasi lain seperti papan litar dan projek DIY yang lain. Dengan tutorial ini, anda akan dapat membuat modul relay sendiri. Jadi apa itu relay? Relay adalah elektr
Node MCU Dengan Modul Relay 4 Port, Aplikasi Blynk, IFTTT dan Google Home. Keuntungan ?: 5 Langkah
Node MCU Dengan Modul Relay 4 Port, Aplikasi Blynk, IFTTT dan Google Home. Keuntungan ?: Catatan ini adalah mengenai bagaimana menghubungkan rumah Google dengan aplikasi NodeMCU dan blynk, anda boleh mengawal perkakas anda dengan suis NodeMCU dan pembantu google yang dikendalikan oleh blynk yang mudah. Oleh itu, mari kita pergi, Ok Google .. Hidupkan sesuatu
8 Kawalan Relay Dengan Penerima NodeMCU dan IR Menggunakan Aplikasi Jauh dan Android WiFi dan IR: 5 Langkah (dengan Gambar)
8 Kawalan Relay Dengan Penerima NodeMCU dan IR Menggunakan Aplikasi Jauh dan Android WiFi dan IR: Mengendalikan 8 suis relai menggunakan penerima nodemcu dan ir melalui aplikasi wifi dan jauh dan android. Alat kawalan jauhnya tidak bergantung pada sambungan wifi. DI SINI ADALAH KLIK VERSI YANG DIKEMASKINI SINI