Indholdsfortegnelse:

Anvendelse af MCP-23008 Brug af relæinterface (I2C) :: 6 trin
Anvendelse af MCP-23008 Brug af relæinterface (I2C) :: 6 trin

Video: Anvendelse af MCP-23008 Brug af relæinterface (I2C) :: 6 trin

Video: Anvendelse af MCP-23008 Brug af relæinterface (I2C) :: 6 trin
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Juli
Anonim
Anvendelse af MCP-23008 ved hjælp af relæinterface (I2C)
Anvendelse af MCP-23008 ved hjælp af relæinterface (I2C)

Hej

God hilsen.. !!

Jeg (Somanshu Choudhary) på vegne af Dcube tech ventures, der vil kontrollere relæer via I2C -protokol ved hjælp af Arduino nano og MCP23008.

Trin 1: Oversigt

Oversigt
Oversigt
  • MCP23X08-enheden giver 8-bit, generelt formål, parallel I/O-udvidelse til I2C-bus- eller SPI-applikationer.
  • MCP23X08 består af flere 8-bit konfigurationsregistre til valg af input, output og polaritet. Systemmasteren kan aktivere I/Os som enten input eller output ved at skrive I/O -konfigurationsbitene. Dataene for hver input eller output gemmes i det tilsvarende Input- eller Output -register. Polariteten af Input Port -registret kan vendes med Polarity Inversion -registret. Alle registre kan læses af systemmesteren.
  • DATABLAD:

Trin 2: Hvad du har brug for / Links

Hvad du har brug for / links
Hvad du har brug for / links

1. Arduino Nano LINK:

2. skærm til Arduino Nano LINK:

3. USB kabeltype A til mikro type B 6 fod lang

4. I²C kabel LINK:

5. Otte SPDT I²C kontrollerede relæer

6. Adapter LINK:

Trin 3: Kredsløbsdiagram

Kredsløbsdiagram
Kredsløbsdiagram
Kredsløbsdiagram
Kredsløbsdiagram

Trin 4: Programmering - I

Programmering - I
Programmering - I
Programmering - I
Programmering - I
  • I denne kode bruger jeg Function Programming Paradigm
  • Jeg brugte forskellige faner til funktionsdefinition og funktionskald

KODE UNDER FAN q:

// Enkel funktionskode

#include void setup ()

{

// I2C -adresse på MCP23008

#define MCP_ADDR 0x20

// Deltag i I2C Bus som master

Wire.begin ();

// Start seriel kommunikation og indstil baudhastighed

Serial.begin (9600);

// Start transmission med en given enhed på I2C -bus

Wire.beginTransmission (MCP_ADDR);

// Vælg IODIR - I/O DIRECTION REGISTER register

Wire.write (0x00);

// Vælg den nødvendige operation (output)

Wire.write (0x00);

// Vælg KONFIGURATION register

Wire.write (0x05);

// Vælg den nødvendige operation

Wire.write (0x0E);

// afslutte transmission

Wire.endTransmission ();

}

hulrum ()

{

a1_on ();

forsinkelse (1000);

a1_off ();

forsinkelse (1000);

a2_on ();

forsinkelse (1000);

a2_off ();

forsinkelse (1000);

a3_on ();

forsinkelse (1000);

a3_off ();

forsinkelse (1000);

a4_on ();

forsinkelse (1000);

a4_off ();

forsinkelse (1000);

a5_on ();

forsinkelse (1000);

a5_off ();

forsinkelse (1000);

a6_on ();

forsinkelse (1000);

a6_off ();

forsinkelse (1000);

a7_on ();

forsinkelse (1000);

a7_off ();

forsinkelse (1000);

a8_on ();

forsinkelse (1000);

a8_off ();

}

KODE UNDER FAN q1:

// Denne kode er til og fra relæ 1 om bord

ugyldig a1_on () {

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

ugyldig a1_off ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

KODE UNDER FAN q2:

// Denne kode er til og fra relæ 2 om bord

ugyldig a2_on () {

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

ugyldig a2_off ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

KODE UNDER FAN q3: // Denne kode er til og fra relæ 3 om bord

ugyldig a3_on ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

ugyldig a3_off ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

Trin 5: Programmering - II

Programmering - II
Programmering - II

KODE UNDER FAN q4:

// Denne kode er til og fra relæ 4 om bord

ugyldig a4_on ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

ugyldig a4_off ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

KODE UNDER FAN q5:

// Denne kode er til og fra relæ 5 om bord

ugyldig a5_on ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

ugyldig a5_off ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

KODE UNDER FAN q6: // Denne kode er til og fra relæ 6 om bord

ugyldig a6_on ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

ugyldig a6_off ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

KODE UNDER FAN q7: // Denne kode er til og fra relæ 7 om bord

ugyldig a7_on () {

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

ugyldig a7_off ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

KODE UNDER FAN q8: // Denne kode er til og fra relæ 8 ombord

ugyldig a8_on () {

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

ugyldig a8_off ()

{

// Start transmissionen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

forsinkelse (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output til skærmen

Serial.print ("GPIO -værdi:");

Serial.println (GPIO, BIN);

}

Trin 6: Video

For yderligere spørgsmål Besøg gerne vores websted:

www.dcubetechnologies.com

Anbefalede: