Përmbajtje:

Aplikimi i MCP-23008 Duke përdorur Ndërfaqen Rele (I2C) :: 6 hapa
Aplikimi i MCP-23008 Duke përdorur Ndërfaqen Rele (I2C) :: 6 hapa

Video: Aplikimi i MCP-23008 Duke përdorur Ndërfaqen Rele (I2C) :: 6 hapa

Video: Aplikimi i MCP-23008 Duke përdorur Ndërfaqen Rele (I2C) :: 6 hapa
Video: Panele Besi,kurse duke perdorur energjine diellore/ Panele per cdo nevoje tuajen -Vizioni i Pasdites 2024, Nëntor
Anonim
Aplikimi i MCP-23008 duke përdorur ndërfaqen e stafetë (I2C)
Aplikimi i MCP-23008 duke përdorur ndërfaqen e stafetë (I2C)

Përshëndetje

Pershendetje te mira.. !!

Unë (Somanshu Choudhary) në emër të sipërmarrjeve të teknologjisë Dcube që do të kontrollojnë Relays përmes protokollit I2C duke përdorur Arduino nano dhe MCP23008.

Hapi 1: Vështrim i përgjithshëm

Vështrim i përgjithshëm
Vështrim i përgjithshëm
  • Pajisja MCP23X08 siguron zgjerim paralel të hyrjes/daljes 8-bit, me qëllim të përgjithshëm, për aplikimet e autobusit I2C ose SPI.
  • MCP23X08 përbëhet nga regjistra të shumtë konfigurimi 8-bit për përzgjedhjen e hyrjes, daljes dhe polaritetit. Masteri i sistemit mund të aktivizojë I/O si hyrje ose dalje duke shkruar bitët e konfigurimit I/O. Të dhënat për secilën hyrje ose dalje ruhen në regjistrin përkatës Input ose Output. Polariteti i regjistrit të Portit Input mund të përmbyset me regjistrin e Inversionit të Polaritetit. Të gjithë regjistrat mund të lexohen nga masteri i sistemit.
  • LIDHJA E TAT DHNAVE:

Hapi 2: Çfarë ju nevojitet / Lidhje

Ajo që ju nevojitet / Lidhje
Ajo që ju nevojitet / Lidhje

1. Arduino Nano LINK:

2. Mburoja për Arduino Nano LINK:

3. Kabllo USB Type A deri në Mikro Type B 6 Këmbë të Gjata

4. LINKI I Kabllos I²C:

5. Tetë reletë e kontrolluara SPDT I²C

6. Lidhja e përshtatësit:

Hapi 3: Diagrami i Qarkut

Diagrami i qarkut
Diagrami i qarkut
Diagrami i qarkut
Diagrami i qarkut

Hapi 4: Programimi - I

Programimi - I
Programimi - I
Programimi - I
Programimi - I
  • Në këtë kod, unë përdor Paradigmën e Programimit të Funksioneve
  • Kam përdorur skeda të ndryshme për përcaktimin e funksioneve dhe thirrjen e funksioneve

KODI NEN TABEL q:

// Kodi i thjeshtë i thirrjes me funksion

#include void setup ()

{

// Adresa I2C e MCP23008

#përcakto MCP_ADDR 0x20

// Bashkohuni me autobusin I2C si mjeshtër

Wire.begin ();

// Filloni komunikimin serik dhe vendosni normën e baudit

Serial.filloj (9600);

// Filloni transmetimin me pajisjen e dhënë në autobusin I2C

Wire.beginTransmission (MCP_ADDR);

// Zgjidh regjistrin IODIR - I/O DIRECTION REGISTER

Wire.write (0x00);

// Zgjidhni funksionimin e kërkuar (dalje)

Wire.write (0x00);

// Zgjidhni regjistrin KONFIGURIM

Wire.write (0x05);

// Zgjidhni funksionimin e kërkuar

Wire.write (0x0E);

// mbaroni transmetimin

Wire.endTransmission ();

}

lak void ()

{

a1_on ();

vonesa (1000);

a1_off ();

vonesa (1000);

a2_on ();

vonesa (1000);

a2_off ();

vonesa (1000);

a3_on ();

vonesa (1000);

a3_off ();

vonesa (1000);

a4_on ();

vonesa (1000);

a4_off ();

vonesa (1000);

a5_on ();

vonesa (1000);

a5_off ();

vonesa (1000);

a6_on ();

vonesa (1000);

a6_off ();

vonesa (1000);

a7_on ();

vonesa (1000);

a7_off ();

vonesa (1000);

a8_on ();

vonesa (1000);

a8_off ();

}

KODI NEN TABEL q1:

// Ky kod është për të dhe jashtë stafetës 1 në bord

void a1_on () {

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

vonesa (1800);

Tela. Kërkohet nga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

void a1_off ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

KODI NEN TABELA q2:

// Ky kod është për në dhe jashtë rele 2 në bord

void a2_on () {

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

void a2_off ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

KODI N TN TABEL q3: // Ky kod është për stafetën ndezur dhe fikur 3 në bord

i pavlefshëm a3_on ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

void a3_off ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

Hapi 5: Programimi - II

Programimi - II
Programimi - II

KODI NEN TABELN q4:

// Ky kod është për ndezjen dhe fikjen e stafetës 4 në bord

i pavlefshëm a4_on ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

void a4_off ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vonesa (1800);

Tela. Kërkohet nga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

KODI NEN TABELN q5:

// Ky kod është për stafetën ndezur dhe fikur 5 në bord

i pavlefshëm a5_on ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

vonesa (1800);

Tela. Kërkohet nga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

void a5_off ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

KODI NNDN TABEL q6: // Ky kod është për stafetën 6 të ndezur dhe të fikur në bord

i pavlefshëm a6_on ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

void a6_off ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vonesa (1800);

Tela. Kërkohet nga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

KODI NEN TABEL q q7: // Ky kod është për stafetën 7 të ndezur dhe të fikur në bord

void a7_on () {

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

vonesa (1800);

Tela. Kërkohet nga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

void a7_off ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

KODI NNDN TABEL q8: // Ky kod është për stafetën 8 të ndezur dhe të fikur në bord

void a8_on () {

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

void a8_off ()

{

// Filloni transmetimin

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vonesa (1800);

Tela. KërkohetNga (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Dalje në ekran

Serial.print ("Vlera GPIO:");

Serial.println (GPIO, BIN);

}

Hapi 6: Video

Për pyetje të mëtejshme Mos ngurroni të vizitoni faqen tonë:

www.dcubetechnologies.com

Recommended: