Sisällysluettelo:

MCP-23008: n käyttö releliitännän (I2C) avulla :: 6 vaihetta
MCP-23008: n käyttö releliitännän (I2C) avulla :: 6 vaihetta

Video: MCP-23008: n käyttö releliitännän (I2C) avulla :: 6 vaihetta

Video: MCP-23008: n käyttö releliitännän (I2C) avulla :: 6 vaihetta
Video: Arduino | Tutorial | MCP23008 Interfacing 2024, Marraskuu
Anonim
MCP-23008: n käyttö releliitännän (I2C) avulla
MCP-23008: n käyttö releliitännän (I2C) avulla

Hei

Terveisiä.. !!

I (Somanshu Choudhary) Dcube -teknologiayritysten puolesta, jotka aikovat ohjata releitä I2C -protokollan kautta käyttämällä Arduino nanoa ja MCP23008.

Vaihe 1: Yleiskatsaus

Yleiskatsaus
Yleiskatsaus
  • MCP23X08-laite tarjoaa 8-bittisen, yleiskäyttöisen, rinnakkaisen I/O-laajennuksen I2C-väylä- tai SPI-sovelluksiin.
  • MCP23X08 koostuu useista 8-bittisistä määritysrekistereistä tulo-, lähtö- ja napaisuusvalintaa varten. Järjestelmän isäntä voi ottaa I/O: t käyttöön joko tuloina tai lähtöinä kirjoittamalla I/O -konfigurointibitit. Kunkin tulon tai lähdön tiedot säilytetään vastaavassa tulo- tai lähtörekisterissä. Input Port -rekisterin napaisuus voidaan kääntää Polarity Inversion -rekisterillä. Järjestelmän päällikkö voi lukea kaikki rekisterit.
  • DATASHEET LINK:

Vaihe 2: Mitä tarvitset / Linkit

Mitä tarvitset / Linkit
Mitä tarvitset / Linkit

1. Arduino Nano LINKKI:

2. kilpi Arduino Nano LINK:

3. USB -kaapeli Tyyppi A - Mikrotyyppi B 6 jalkaa pitkä

4. I²C -kaapelin linkki:

5. Kahdeksan SPDT I²C -ohjattua relettä

6. sovittimen linkki:

Vaihe 3: Piirikaavio

Piirikaavio
Piirikaavio
Piirikaavio
Piirikaavio

Vaihe 4: Ohjelmointi - I

Ohjelmointi - I
Ohjelmointi - I
Ohjelmointi - I
Ohjelmointi - I
  • Tässä koodissa käytän Function Programming Paradigmaa
  • Käytin eri välilehtiä toimintojen määrittelyyn ja toimintojen kutsumiseen

KOODI välilehden q alla:

// Yksinkertaisen toiminnon kutsukoodi

#include void setup ()

{

// MCP23008: n I2C -osoite

#define MCP_ADDR 0x20

// Liity I2C Busiin isäntänä

Wire.begin ();

// Käynnistä sarjaliikenne ja aseta baudinopeus

Sarja.alku (9600);

// Aloita lähetys annetulla laitteella I2C -väylällä

Wire.beginTransmission (MCP_ADDR);

// Valitse IODIR - I/O DIRECTION REGISTER -rekisteri

Wire.write (0x00);

// Valitse vaadittu toiminto (lähtö)

Wire.write (0x00);

// Valitse CONFIGURATION register

Wire.write (0x05);

// Valitse haluamasi toiminto

Wire.write (0x0E);

// lopeta lähetys

Wire.endTransmission ();

}

tyhjä silmukka ()

{

a1_on ();

viive (1000);

a1_off ();

viive (1000);

a2_on ();

viive (1000);

a2_off ();

viive (1000);

a3_on ();

viive (1000);

a3_off ();

viive (1000);

a4_on ();

viive (1000);

a4_off ();

viive (1000);

a5_on ();

viive (1000);

a5_off ();

viive (1000);

a6_on ();

viive (1000);

a6_off ();

viive (1000);

a7_on ();

viive (1000);

a7_off ();

viive (1000);

a8_on ();

viive (1000);

a8_off ();

}

KOODI välilehden q1 alla:

// Tämä koodi on releen 1 päälle ja pois päältä

void a1_on () {

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

mitätön a1_off ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

KOODI välilehden q2 alla:

// Tämä koodi on kytkettävä päälle ja pois päältä rele 2

void a2_on () {

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

void a2_off ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

KOODI välilehden q3 alla: // Tämä koodi on päällä ja pois päältä kytkettävä rele 3

mitätön a3_on ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

mitätön a3_off ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

Vaihe 5: Ohjelmointi - II

Ohjelmointi - II
Ohjelmointi - II

KOODI välilehden q4 alla:

// Tämä koodi on releen 4 päälle ja pois päältä

mitätön a4_on ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

mitätön a4_off ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

KOODI SARKAIN q5:

// Tämä koodi on releen 5 päälle ja pois päältä

mitätön a5_on ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

mitätön a5_off ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

KOODI VÄLILAITTEEN q6: // Tämä koodi on päällä ja pois päältä kytkettävä rele 6

mitätön a6_on ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

mitätön a6_off ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

KOODI VÄLILAITTEEN q7: // Tämä koodi on päällä ja pois päältä rele 7

void a7_on () {

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

mitätön a7_off ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

KOODI VÄLILAITTEEN q8: // Tämä koodi on päällä ja pois päältä releessä 8

void a8_on () {

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

void a8_off ()

{

// Aloita lähetys

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viive (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Lähtö näytölle

Serial.print ("GPIO -arvo:");

Serial.println (GPIO, BIN);

}

Vaihe 6: Video

Jos haluat lisätietoja, käy sivustollamme:

www.dcubetechnologies.com

Suositeltava: