Taula de continguts:

Aplicació de l'MCP-23008 mitjançant la interfície de relé (I2C) :: 6 passos
Aplicació de l'MCP-23008 mitjançant la interfície de relé (I2C) :: 6 passos

Vídeo: Aplicació de l'MCP-23008 mitjançant la interfície de relé (I2C) :: 6 passos

Vídeo: Aplicació de l'MCP-23008 mitjançant la interfície de relé (I2C) :: 6 passos
Vídeo: Bitcoin a Live - ARDUINO!! 2024, Juliol
Anonim
Aplicació de l'MCP-23008 mitjançant la interfície de relé (I2C)
Aplicació de l'MCP-23008 mitjançant la interfície de relé (I2C)

Hola

Bona salutació.. !!

Jo (Somanshu Choudhary) en nom de les empreses tecnològiques de Dcube que controlaran els relés mitjançant protocol I2C mitjançant Arduino nano i MCP23008.

Pas 1: Visió general

Visió general
Visió general
  • El dispositiu MCP23X08 proporciona una expansió d'E / S paral·lela de propòsit general de 8 bits per a aplicacions de bus I2C o SPI.
  • El MCP23X08 consta de múltiples registres de configuració de 8 bits per a la selecció d’entrada, sortida i polaritat. El mestre del sistema pot habilitar les E / S com a entrades o sortides escrivint els bits de configuració d'E / S. Les dades de cada entrada o sortida es guarden al registre d’entrada o sortida corresponent. La polaritat del registre del port d’entrada es pot invertir amb el registre d’inversió de polaritat. El mestre del sistema pot llegir tots els registres.
  • ENLLAÇ DE FITXES DE DATES:

Pas 2: què necessiteu / enllaços

Què necessiteu / enllaços
Què necessiteu / enllaços

1. Arduino Nano LINK:

2. Pantalla per a Arduino Nano LINK:

3. Cable USB tipus A a micro tipus B de 6 peus de llarg

4. ENLLAÇ de cable I²C:

5. Vuit relés controlats SPDT I²C

6. ENLLAÇ de l’adaptador:

Pas 3: diagrama del circuit

Esquema de connexions
Esquema de connexions
Esquema de connexions
Esquema de connexions

Pas 4: Programació - I

Programació - I
Programació - I
Programació - I
Programació - I
  • En aquest codi, faig servir paradigma de programació de funcions
  • He utilitzat diferents pestanyes per definir funcions i trucar a funcions

CODI SOTA LA TAULA q:

// Codi de trucada de funció simple

#include void setup ()

{

// Adreça I2C de l'MCP23008

#define MCP_ADDR 0x20

// Uniu-vos a I2C Bus com a mestre

Wire.begin ();

// Inicieu la comunicació en sèrie i configureu la velocitat en bauds

Serial.begin (9600);

// Comenceu la transmissió amb el dispositiu donat al bus I2C

Wire.beginTransmission (MCP_ADDR);

// Seleccioneu IODIR - registre REGISTRE DIRECCIÓ E / S

Wire.write (0x00);

// Seleccioneu l'operació necessària (sortida)

Wire.write (0x00);

// Seleccioneu registre CONFIGURACIÓ

Wire.write (0x05);

// Seleccioneu l'operació necessària

Wire.write (0x0E);

// finalitzar la transmissió

Wire.endTransmission ();

}

bucle buit ()

{

a1_on ();

retard (1000);

a1_off ();

retard (1000);

a2_on ();

retard (1000);

a2_off ();

retard (1000);

a3_on ();

retard (1000);

a3_off ();

retard (1000);

a4_on ();

retard (1000);

a4_off ();

retard (1000);

a5_on ();

retard (1000);

a5_off ();

retard (1000);

a6_on ();

retard (1000);

a6_off ();

retard (1000);

a7_on ();

retard (1000);

a7_off ();

retard (1000);

a8_on ();

retard (1000);

a8_off ();

}

CODI SOBRE PESTA Q1:

// Aquest codi permet activar i desactivar el relé 1 a bord

buida a1_on () {

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

buida a1_off ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

CODI SOTA LA PESTA Q2:

// Aquest codi permet activar i desactivar el relé 2 a bord

buida a2_on () {

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

buida a2_off ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

CODI SOTA TAULA q3: // Aquest codi permet activar i desactivar el relé 3 a bord

buida a3_on ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

buida A3_off ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

Pas 5: Programació - II

Programació - II
Programació - II

CODI SOBRE PESTA Q4:

// Aquest codi permet activar i desactivar el relé 4 a bord

buida a4_on ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

buida a4_off ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

CODI SOBRE PESTA Q5:

// Aquest codi permet activar i desactivar el relé 5 a bord

buida a5_on ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

buida a5_off ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

CODI SOTA TAULA q6: // Aquest codi permet activar i desactivar el relé 6 a bord

buida a6_on ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

buida a6_off ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

CODI SOTA TAULA q7: // Aquest codi permet activar i desactivar el relé 7 a bord

buida a7_on () {

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

buida a7_off ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

CODI SOTA TAULA q8: // Aquest codi permet activar i desactivar el relé 8 a bord

buida a8_on () {

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

buida a8_off ()

{

// Començar la transmissió

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

retard (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Sortida a la pantalla

Serial.print ("valor GPIO:");

Serial.println (GPIO, BIN);

}

Pas 6: vídeo

Per a més consultes, no dubteu a visitar el nostre lloc:

www.dcubetechnologies.com

Recomanat: