Tartalomjegyzék:

Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés
Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés

Videó: Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés

Videó: Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés
Videó: How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial 2024, November
Anonim
Az MCP-23008 alkalmazása relés interfész (I2C) használatával
Az MCP-23008 alkalmazása relés interfész (I2C) használatával

Helló

Üdv.. !!

I (Somanshu Choudhary) a Dcube tech vállalkozások nevében, akik I2C protokollon keresztül irányítják a reléket Arduino nano és MCP23008 használatával.

1. lépés: Áttekintés

Áttekintés
Áttekintés
  • Az MCP23X08 eszköz 8 bites, általános célú, párhuzamos I/O bővítést biztosít az I2C busz vagy SPI alkalmazásokhoz.
  • Az MCP23X08 több 8 bites konfigurációs regiszterből áll a bemenet, a kimenet és a polaritás kiválasztásához. A rendszergazda engedélyezheti az I/O -kat bemenetként vagy kimenetként az I/O konfigurációs bitek írásával. Az egyes bemenetek vagy kimenetek adatait a megfelelő bemeneti vagy kimeneti regiszter tárolja. Az Input Port regiszter polaritása megfordítható a Polarity Inversion regiszterrel. A rendszergazda minden regisztert elolvashat.
  • ADATLAP LINK:

2. lépés: Amire szüksége van / Linkek

Amire szüksége van / Linkek
Amire szüksége van / Linkek

1. Arduino Nano LINK:

2. Pajzs Arduino Nano LINK -hez:

3. USB kábel A típus - B típusú Micro 6 láb hosszú

4. I²C kábel LINK:

5. Nyolc SPDT I²C vezérelt relé

6. Adapter LINK:

3. lépés: Áramköri diagram

Kördiagramm
Kördiagramm
Kördiagramm
Kördiagramm

4. lépés: Programozás - I

Programozás - I
Programozás - I
Programozás - I
Programozás - I
  • Ebben a kódban a Function Programming Paradigm -ot használom
  • Különböző lapokat használtam a függvények meghatározásához és a függvényhíváshoz

KÓD A TAB q alatt:

// Egyszerű funkció hívó kód

#include void setup ()

{

// Az MCP23008 I2C címe

#define MCP_ADDR 0x20

// Csatlakozzon mesterként az I2C Bus -hoz

Wire.begin ();

// Indítsa el a soros kommunikációt és állítsa be az átviteli sebességet

Sorozat.kezdet (9600);

// Indítsa el az átvitelt az adott eszközzel az I2C buszon

Wire.beginTransmission (MCP_ADDR);

// Válassza ki az IODIR - I/O DIRECTION REGISTER regisztert

Wire.write (0x00);

// Válassza ki a kívánt műveletet (kimenet)

Wire.write (0x00);

// Válassza ki a KONFIGURÁCIÓ regisztert

Wire.write (0x05);

// Válassza ki a kívánt műveletet

Wire.write (0x0E);

// az átvitel befejezése

Wire.endTransmission ();

}

üres hurok ()

{

a1_on ();

késleltetés (1000);

a1_off ();

késleltetés (1000);

a2_on ();

késleltetés (1000);

a2_off ();

késleltetés (1000);

a3_on ();

késleltetés (1000);

a3_off ();

késleltetés (1000);

a4_on ();

késleltetés (1000);

a4_off ();

késleltetés (1000);

a5_on ();

késleltetés (1000);

a5_off ();

késleltetés (1000);

a6_on ();

késleltetés (1000);

a6_off ();

késleltetés (1000);

a7_on ();

késleltetés (1000);

a7_off ();

késleltetés (1000);

a8_on ();

késleltetés (1000);

a8_off ();

}

KÓD A TAB q1 alatt:

// Ez a kód az 1 -es relé be- és kikapcsolására szolgál

void a1_on () {

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

void a1_off ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

KÓD A TAB q2 alatt:

// Ez a kód a fedélzeti 2 -es relé be- és kikapcsolására szolgál

void a2_on () {

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

void a2_off ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

KÓD A TAB q3 alatt: // Ez a kód a 3 -as relé be- és kikapcsolására szolgál

void a3_on ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

void a3_off ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

5. lépés: Programozás - II

Programozás - II
Programozás - II

KÓD A TAB q4 alatt:

// Ez a kód a fedélzeti 4 -es relé be- és kikapcsolására szolgál

void a4_on ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

void a4_off ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

KÓD A TAB q5 alatt:

// Ez a kód a fedélzeti 5 -ös relé be- és kikapcsolására szolgál

void a5_on ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

void a5_off ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

KÓD A TAB q6 alatt: // Ez a kód a 6 -os relé be- és kikapcsolására szolgál

void a6_on ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

void a6_off ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

KÓD A TAB q7 alatt: // Ez a kód a fedélzeti 7 -es relé be- és kikapcsolására szolgál

void a7_on () {

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

void a7_off ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

KÓD A TAB q8 alatt: // Ez a kód a fedélzeti 8 -as relé be- és kikapcsolására szolgál

void a8_on () {

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

void a8_off ()

{

// Indítsa el az átvitelt

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

késleltetés (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Kimenet a képernyőre

Serial.print ("GPIO érték:");

Serial.println (GPIO, BIN);

}

6. lépés: Videó

További kérdéseivel keressen bátran weboldalunkon:

www.dcubetechnologies.com

Ajánlott: