Sisukord:

MCP-23008 rakendamine releeliidese (I2C) abil :: 6 sammu
MCP-23008 rakendamine releeliidese (I2C) abil :: 6 sammu

Video: MCP-23008 rakendamine releeliidese (I2C) abil :: 6 sammu

Video: MCP-23008 rakendamine releeliidese (I2C) abil :: 6 sammu
Video: Using MCP23008 port-expanders with Arduino Nano Every to drive 3 banks of 8 LEDs 2024, November
Anonim
MCP-23008 rakendamine releeliidese (I2C) abil
MCP-23008 rakendamine releeliidese (I2C) abil

Tere

Tervitused.. !!

I (Somanshu Choudhary) Dcube'i tehnoloogiaettevõtete nimel, kes hakkavad releed I2C protokolli kaudu juhtima, kasutades Arduino nano ja MCP23008.

1. samm: ülevaade

Ülevaade
Ülevaade
  • Seade MCP23X08 pakub 8-bitist üldotstarbelist paralleelset I/O laiendust I2C siinide või SPI rakenduste jaoks.
  • MCP23X08 koosneb mitmest 8-bitisest konfiguratsiooniregistrist sisendi, väljundi ja polaarsuse valimiseks. Süsteemihaldur saab lubada sisendid/väljundid sisendite või väljunditena, kirjutades sisend-/väljundkonfiguratsiooni bitid. Iga sisendi või väljundi andmeid hoitakse vastavas sisend- või väljundregistris. Sisendpordi registri polaarsust saab polaarsuse ümberpööramise registriga ümber pöörata. Süsteemi kapten saab lugeda kõiki registreid.
  • DATASHET LINK:

2. samm: mida vajate / lingid

Mida vajate / lingid
Mida vajate / lingid

1. Arduino Nano LINK:

2. Arduino Nano LINKi kilp:

3. USB -kaabli tüüp A kuni mikro -tüüp B 6 jalga pikk

4. I²C kaabli link:

5. Kaheksa SPDT I²C juhitavat releed

6. Adapteri link:

Samm: vooluahela skeem

Lülitusskeem
Lülitusskeem
Lülitusskeem
Lülitusskeem

4. samm: programmeerimine - I

Programmeerimine - I
Programmeerimine - I
Programmeerimine - I
Programmeerimine - I
  • Selles koodis kasutan funktsioonide programmeerimise paradigmat
  • Kasutasin funktsioonide määratlemiseks ja funktsioonide kutsumiseks erinevaid sakke

KOOD TABI ALLA q:

// Lihtne funktsioon kutsekood

#include void setup ()

{

// MCP23008 I2C aadress

#define MCP_ADDR 0x20

// Liituge I2C Busiga kaptenina

Wire.begin ();

// Käivitage jadaühendus ja määrake edastuskiirus

Seriaalne algus (9600);

// Alustage edastamist antud seadmega I2C siinil

Wire.beginTransmission (MCP_ADDR);

// Valige register IODIR - I/O DIRECTION REGISTER register

Wire.write (0x00);

// Valige vajalik toiming (väljund)

Wire.write (0x00);

// Valige CONFIGURATION register

Wire.write (0x05);

// Valige vajalik toiming

Wire.write (0x0E);

// lõpetada ülekanne

Wire.endTransmission ();

}

tühine tsükkel ()

{

a1_on ();

viivitus (1000);

a1_väljas ();

viivitus (1000);

a2_on ();

viivitus (1000);

a2_välja ();

viivitus (1000);

a3_on ();

viivitus (1000);

a3_off ();

viivitus (1000);

a4_on ();

viivitus (1000);

a4_off ();

viivitus (1000);

a5_on ();

viivitus (1000);

a5_off ();

viivitus (1000);

a6_on ();

viivitus (1000);

a6_välja ();

viivitus (1000);

a7_on ();

viivitus (1000);

a7_väljas ();

viivitus (1000);

a8_on ();

viivitus (1000);

a8_off ();

}

KOOD TABELI Q1 ALLA:

// See kood on pardal oleva relee 1 sisse- ja väljalülitamiseks

tühine a1_on () {

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

tühine a1_off ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

KOOD TABEL Q2 ALL:

// See kood on pardal oleva relee 2 sisse- ja väljalülitamiseks

tühine a2_on () {

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

tühine a2_off ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

KOOD VAHE VAHE all q3: // See kood on sisse- ja väljalülitamiseks relee 3 pardal

tühine a3_on ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

tühine a3_off ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

5. samm: programmeerimine - II

Programmeerimine - II
Programmeerimine - II

KOOD TABEL Q4 ALLA:

// See kood on pardal oleva relee 4 sisse- ja väljalülitamiseks

tühine a4_on ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

tühine a4_off ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

KOOD TABELI Q5 ALLA:

// See kood on pardal oleva relee 5 sisse- ja väljalülitamiseks

tühine a5_on ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

tühine a5_off ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

KOOD TABELI KOHTA all q6: // See kood on pardal oleva relee 6 sisse- ja väljalülitamiseks

tühine a6_on ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

tühine a6_off ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

KOOD KAARDI ALLA q7: // See kood on pardal oleva relee 7 sisse- ja väljalülitamiseks

tühine a7_on () {

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

tühine a7_off ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

KOOD KAARDI ALLA q8: // See kood on sisse- ja väljalülitamiseks relee 8 pardal

tühine a8_on () {

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

tühine a8_off ()

{

// Alusta edastamist

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

viivitus (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Väljund ekraanile

Serial.print ("GPIO väärtus:");

Serial.println (GPIO, BIN);

}

6. samm: video

Täiendavate küsimuste korral külastage meie saiti:

www.dcubetechnologies.com

Soovitan: