Kazalo:

Uporaba MCP-23008 z uporabo relejnega vmesnika (I2C) :: 6 korakov
Uporaba MCP-23008 z uporabo relejnega vmesnika (I2C) :: 6 korakov

Video: Uporaba MCP-23008 z uporabo relejnega vmesnika (I2C) :: 6 korakov

Video: Uporaba MCP-23008 z uporabo relejnega vmesnika (I2C) :: 6 korakov
Video: Uporaba ionske zobne ščetke IONICKISS 2024, Julij
Anonim
Uporaba MCP-23008 z uporabo relejnega vmesnika (I2C)
Uporaba MCP-23008 z uporabo relejnega vmesnika (I2C)

zdravo

Lep pozdrav.. !!

Jaz (Somanshu Choudhary) bom v imenu tehnoloških podjetij Dcube upravljal releje prek protokola I2C z uporabo Arduino nano in MCP23008.

1. korak: Pregled

Pregled
Pregled
  • Naprava MCP23X08 ponuja 8-bitno, splošno namensko, vzporedno V/I razširitev za vodila I2C ali aplikacije SPI.
  • MCP23X08 je sestavljen iz več 8-bitnih konfiguracijskih registrov za izbiro vhoda, izhoda in polarnosti. Sistemski poveljnik lahko omogoči V/I kot vhod ali izhod s pisanjem konfiguracijskih bitov V/I. Podatki za vsak vhod ali izhod se hranijo v ustreznem vhodnem ali izhodnem registru. Polarnost registra vhodnih vrat je mogoče obrniti z registrom Polarity Inversion. Glavni register lahko prebere vse registre.
  • POVEZAVA Z DATASHEETOM:

2. korak: Kaj potrebujete / povezave

Kaj potrebujete / Povezave
Kaj potrebujete / Povezave

1. Arduino Nano POVEZAVA:

2. Ščit za Arduino Nano LINK:

3. USB kabel tipa A do mikro tipa B 6 čevljev dolg

4. I²C kabel LINK:

5. Osem krmilnih relejev SPDT I²C

6. Povezava adapterja:

3. korak: Shema vezja

Shema vezja
Shema vezja
Shema vezja
Shema vezja

4. korak: Programiranje - I

Programiranje - jaz
Programiranje - jaz
Programiranje - jaz
Programiranje - jaz
  • V tej kodi uporabljam paradigmo za programiranje funkcij
  • Za opredelitev funkcij in klicanje funkcij sem uporabil različne zavihke

KODA POD TABOM q:

// Enostavna klicna koda funkcije

#include void setup ()

{

// I2C naslov MCP23008

#define MCP_ADDR 0x20

// Pridružite se I2C Bus kot mojster

Wire.begin ();

// Začnite serijsko komunikacijo in nastavite hitrost prenosa

Serial.begin (9600);

// Začnite prenos z dano napravo na vodilu I2C

Wire.beginTransmission (MCP_ADDR);

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

Wire.write (0x00);

// Izberite potrebno operacijo (izhod)

Wire.write (0x00);

// Izberite register CONFIGURATION

Wire.write (0x05);

// Izberite potrebno operacijo

Wire.write (0x0E);

// konec prenosa

Wire.endTransmission ();

}

void loop ()

{

a1_on ();

zamuda (1000);

a1_off ();

zamuda (1000);

a2_on ();

zamuda (1000);

a2_off ();

zamuda (1000);

a3_on ();

zamuda (1000);

a3_off ();

zamuda (1000);

a4_on ();

zamuda (1000);

a4_off ();

zamuda (1000);

a5_on ();

zamuda (1000);

a5_off ();

zamuda (1000);

a6_on ();

zamuda (1000);

a6_off ();

zamuda (1000);

a7_on ();

zamuda (1000);

a7_off ();

zamuda (1000);

a8_on ();

zamuda (1000);

a8_off ();

}

KODA POD TABOM q1:

// Ta koda je za vklop in izklop releja 1 na vozilu

void a1_on () {

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

void a1_off ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

KODA POD TABOM q2:

// Ta koda je za vklop in izklop releja 2 na vozilu

void a2_on () {

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

void a2_off ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

KODA POD TABOM q3: // Ta koda je za vklop in izklop releja 3 na vozilu

void a3_on ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

void a3_off ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

5. korak: Programiranje - II

Programiranje - II
Programiranje - II

KODA POD TABOM q4:

// Ta koda je za vklop in izklop releja 4 na vozilu

void a4_on ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

void a4_off ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

KODA POD TABOM q5:

// Ta koda je za vklop in izklop releja 5 na vozilu

void a5_on ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

void a5_off ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

KODA POD TABOM q6: // Ta koda je za vklop in izklop releja 6 na vozilu

void a6_on ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

void a6_off ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

KODA POD TABOM q7: // Ta koda je za vklop in izklop releja 7 na vozilu

void a7_on () {

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

void a7_off ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

KODA POD TABOM q8: // Ta koda je za vklop in izklop releja 8 na vozilu

void a8_on () {

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

void a8_off ()

{

// Začni prenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

zamuda (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izhod na zaslon

Serial.print ("Vrednost GPIO:");

Serial.println (GPIO, BIN);

}

6. korak: Video

Za dodatne zahteve obiščite našo spletno stran:

www.dcubetechnologies.com

Priporočena: