Satura rādītājs:

MCP-23008 pielietošana, izmantojot releja saskarni (I2C) :: 6 soļi
MCP-23008 pielietošana, izmantojot releja saskarni (I2C) :: 6 soļi

Video: MCP-23008 pielietošana, izmantojot releja saskarni (I2C) :: 6 soļi

Video: MCP-23008 pielietošana, izmantojot releja saskarni (I2C) :: 6 soļi
Video: Using MCP23008 port-expanders with Arduino Nano Every to drive 3 banks of 8 LEDs 2024, Jūlijs
Anonim
MCP-23008 pielietošana, izmantojot releja saskarni (I2C)
MCP-23008 pielietošana, izmantojot releja saskarni (I2C)

Sveiki

Labi sveicieni.. !!

Es (Somanshu Choudhary) Dcube tehnoloģiju uzņēmumu vārdā gatavojas kontrolēt relejus, izmantojot I2C protokolu, izmantojot Arduino nano un MCP23008.

1. darbība. Pārskats

Pārskats
Pārskats
  • Ierīce MCP23X08 nodrošina 8 bitu vispārējas nozīmes paralēlu I/O paplašināšanu I2C kopnes vai SPI lietojumprogrammām.
  • MCP23X08 sastāv no vairākiem 8 bitu konfigurācijas reģistriem ievades, izvades un polaritātes izvēlei. Sistēmas meistars var iespējot I/O kā ieejas vai izejas, ierakstot I/O konfigurācijas bitus. Katras ievades vai izvades dati tiek glabāti attiecīgajā ievades vai izvades reģistrā. Ievades porta reģistra polaritāti var apgriezt ar polaritātes inversijas reģistru. Sistēmas meistars var nolasīt visus reģistrus.
  • DATU LAPA:

2. darbība. Nepieciešamais / saites

Kas jums nepieciešams / Saites
Kas jums nepieciešams / Saites

1. Arduino Nano LINK:

2. Arduino Nano LINK vairogs:

3. USB kabelis no A tipa līdz mikro tipam B 6 pēdas garš

4. I²C kabeļa saite:

5. Astoņi SPDT I²C kontrolētie releji

6. Adaptera saite:

3. darbība: shēmas shēma

Ķēdes diagramma
Ķēdes diagramma
Ķēdes diagramma
Ķēdes diagramma

4. solis: programmēšana - I

Programmēšana - es
Programmēšana - es
Programmēšana - es
Programmēšana - es
  • Šajā kodā es izmantoju funkciju programmēšanas paradigmu
  • Es izmantoju dažādas cilnes funkciju definēšanai un funkciju izsaukšanai

KODĒT zem cilnes q:

// Vienkāršas funkcijas izsaukuma kods

#include void setup ()

{

// MCP23008 I2C adrese

#define MCP_ADDR 0x20

// Pievienojieties I2C Bus kā kapteinis

Wire.begin ();

// Sāciet seriālo komunikāciju un iestatiet pārraides ātrumu

Sērijas sākums (9600);

// Sāciet pārraidi ar norādīto ierīci I2C kopnē

Wire.beginTransmission (MCP_ADDR);

// Atlasiet IODIR - I/O DIRECTION REGISTER reģistru

Wire.write (0x00);

// Izvēlieties vajadzīgo darbību (izvade)

Wire.write (0x00);

// Atlasiet CONFIGURATION register

Wire.write (0x05);

// Izvēlieties vajadzīgo darbību

Wire.write (0x0E);

// beigt pārraidi

Wire.endTransmission ();

}

tukša cilpa ()

{

a1_on ();

kavēšanās (1000);

a1_off ();

kavēšanās (1000);

a2_on ();

kavēšanās (1000);

a2_off ();

kavēšanās (1000);

a3_on ();

kavēšanās (1000);

a3_off ();

kavēšanās (1000);

a4_on ();

kavēšanās (1000);

a4_off ();

kavēšanās (1000);

a5_on ();

kavēšanās (1000);

a5_off ();

kavēšanās (1000);

a6_on ();

kavēšanās (1000);

a6_off ();

kavēšanās (1000);

a7_on ();

kavēšanās (1000);

a7_off ();

kavēšanās (1000);

a8_on ();

kavēšanās (1000);

a8_off ();

}

KODS zem cilnes q1:

// Šis kods ir paredzēts, lai ieslēgtu un izslēgtu 1. releju uz kuģa

void a1_on () {

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

void a1_off ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

KODS zem cilnes q2:

// Šis kods ir paredzēts, lai ieslēgtu un izslēgtu 2. releju uz kuģa

void a2_on () {

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

void a2_off ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

KODS zem cilnes q3: // Šis kods ir paredzēts 3. ieslēgšanas un izslēgšanas relejam

anulēts a3_on ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

anulēts a3_off ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

5. solis: programmēšana - II

Programmēšana - II
Programmēšana - II

KODS zem cilnes q4:

// Šis kods ir paredzēts ieslēgt un izslēgt 4. releju uz kuģa

void a4_on ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

void a4_off ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

KODS zem cilnes q5:

// Šis kods ir paredzēts ieslēgt un izslēgt 5. releju uz kuģa

anulēts a5_on ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

void a5_off ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

KODS zem cilnes q6: // Šis kods ir paredzēts ieslēgt un izslēgt 6. releju

anulēts a6_on ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

void a6_off ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

KODS zem cilnes q7: // Šis kods ir paredzēts ieslēgt un izslēgt 7. releju

void a7_on () {

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

void a7_off ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

KODS zem cilnes q8: // Šis kods ir paredzēts ieslēgt un izslēgt 8. releju

void a8_on () {

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

void a8_off ()

{

// Sāciet pārraidi

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kavēšanās (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izeja uz ekrānu

Serial.print ("GPIO vērtība:");

Serial.println (GPIO, BIN);

}

6. darbība: video

Lai iegūtu papildu jautājumus, lūdzu, apmeklējiet mūsu vietni:

www.dcubetechnologies.com

Ieteicams: