Innehållsförteckning:

Tillämpning av MCP-23008 med relägränssnitt (I2C) :: 6 steg
Tillämpning av MCP-23008 med relägränssnitt (I2C) :: 6 steg

Video: Tillämpning av MCP-23008 med relägränssnitt (I2C) :: 6 steg

Video: Tillämpning av MCP-23008 med relägränssnitt (I2C) :: 6 steg
Video: Tillämpning av andragradsekvationer i geometri 2024, November
Anonim
Tillämpning av MCP-23008 med relägränssnitt (I2C)
Tillämpning av MCP-23008 med relägränssnitt (I2C)

Hej

Bra hälsningar.. !!

Jag (Somanshu Choudhary) på uppdrag av Dcube tech -satsningar som kommer att styra reläer via I2C -protokoll med Arduino nano och MCP23008.

Steg 1: Översikt

Översikt
Översikt
  • MCP23X08-enheten ger 8-bitars parallell I/O-expansion för allmänna ändamål för I2C-buss- eller SPI-applikationer.
  • MCP23X08 består av flera 8-bitars konfigurationsregister för val av input, output och polaritet. Systemmastern kan aktivera I/Os som antingen ingångar eller utgångar genom att skriva I/O -konfigurationsbitarna. Data för varje ingång eller utgång lagras i motsvarande in- eller utdataregister. Polariteten i Input Port -registret kan inverteras med Polarity Inversion -registret. Alla register kan läsas av systemmästaren.
  • DATABLADSLÄNK:

Steg 2: Vad du behöver / länkar

Vad du behöver / länkar
Vad du behöver / länkar

1. Arduino Nano LINK:

2. skärm för Arduino Nano LINK:

3. USB -kabel typ A till mikro typ B 6 fot lång

4. I²C kabel LÄNK:

5. Åtta SPDT I²C -styrda reläer

6. Adapter LINK:

Steg 3: Kretsdiagram

Kretsdiagram
Kretsdiagram
Kretsdiagram
Kretsdiagram

Steg 4: Programmering - I

Programmering - I
Programmering - I
Programmering - I
Programmering - I
  • I denna kod använder jag Function Programming Paradigm
  • Jag använde olika flikar för funktionsdefinition och funktionssamtal

KOD UNDER TABELL q:

// Enkel funktionskod

#include void setup ()

{

// I2C -adress för MCP23008

#define MCP_ADDR 0x20

// Gå med I2C Bus som master

Wire.begin ();

// Starta seriell kommunikation och ange överföringshastighet

Serial.begin (9600);

// Börja överföringen med en given enhet på I2C -bussen

Wire.beginTransmission (MCP_ADDR);

// Välj IODIR - I/O DIRECTION REGISTER register

Wire.write (0x00);

// Välj önskad operation (utgång)

Wire.write (0x00);

// Välj KONFIGURATION register

Wire.write (0x05);

// Välj önskad operation

Wire.write (0x0E);

// avsluta överföring

Wire.endTransmission ();

}

void loop ()

{

a1_on ();

fördröjning (1000);

a1_off ();

fördröjning (1000);

a2_on ();

fördröjning (1000);

a2_off ();

fördröjning (1000);

a3_on ();

fördröjning (1000);

a3_off ();

fördröjning (1000);

a4_on ();

fördröjning (1000);

a4_off ();

fördröjning (1000);

a5_on ();

fördröjning (1000);

a5_off ();

fördröjning (1000);

a6_on ();

fördröjning (1000);

a6_off ();

fördröjning (1000);

a7_on ();

fördröjning (1000);

a7_off ();

fördröjning (1000);

a8_on ();

fördröjning (1000);

a8_off ();

}

KOD UNDER TABELL q1:

// Denna kod är till och från relä 1 ombord

ogiltigt a1_on () {

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

ogiltigt a1_off ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

KOD UNDER TABELL q2:

// Denna kod är till och från relä 2 ombord

ogiltigt a2_on () {

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

ogiltigt a2_off ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

KOD UNDER TABELL q3: // Denna kod är till och från relä 3 ombord

ogiltigt a3_on ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

ogiltigt a3_off ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

Steg 5: Programmering - II

Programmering - II
Programmering - II

KOD UNDER TABELL q4:

// Denna kod är till och från relä 4 ombord

ogiltigt a4_on ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

ogiltigt a4_off ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

KOD UNDER TABELL q5:

// Denna kod är till och från relä 5 ombord

ogiltigt a5_on ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

ogiltigt a5_off ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

KOD UNDER TABELL q6: // Denna kod är till och från relä 6 ombord

ogiltigt a6_on ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

ogiltigt a6_off ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

KOD UNDER TABELL q7: // Denna kod är till och från relä 7 ombord

ogiltigt a7_on () {

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

ogiltigt a7_off ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

KOD UNDER TABELL q8: // Denna kod är till och från relä 8 ombord

ogiltigt a8_on () {

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

ogiltigt a8_off ()

{

// Börja överföringen

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

fördröjning (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Utmatning till skärmen

Serial.print ("GPIO -värde:");

Serial.println (GPIO, BIN);

}

Steg 6: Video

För ytterligare frågor Besök gärna vår webbplats:

www.dcubetechnologies.com

Rekommenderad: