Përmbajtje:
- Hapi 1: Vështrim i përgjithshëm
- Hapi 2: Çfarë ju nevojitet / Lidhje
- Hapi 3: Diagrami i Qarkut
- Hapi 4: Programimi - I
- Hapi 5: Programimi - II
- Hapi 6: Video
Video: Aplikimi i MCP-23008 Duke përdorur Ndërfaqen Rele (I2C) :: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
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
- 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
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
Hapi 4: 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
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:
DIY -- Si të bëni një robot merimangë i cili mund të kontrollohet duke përdorur smartphone duke përdorur Arduino Uno: 6 hapa
DIY || Si të bëni një robot merimangë i cili mund të kontrollohet duke përdorur smartphone duke përdorur Arduino Uno: Ndërsa bëni një robot merimangë, mund të mësoni shumë gjëra për robotikën. Ashtu si bërja e robotëve është edhe argëtuese, edhe sfiduese. Në këtë video ne do t'ju tregojmë se si të bëni një robot Spider, të cilin mund ta përdorim duke përdorur smartphone -in tonë (Androi
Fillimi me Ndërfaqen e Sensorit I2C ?? - Ndërfaqeni MMA8451 tuaj duke përdorur ESP32: 8 hapa
Fillimi me Ndërfaqen e Sensorit I2C ?? - Ndërfaqeni MMA8451 tuaj duke përdorur ESP32: Në këtë tutorial, do të mësoni gjithçka rreth Si të filloni, lidhni dhe merrni pajisjen I2C (Përshpejtuesi) duke punuar me kontrollues (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Kontrolli i udhëhequr në të gjithë botën duke përdorur internetin duke përdorur Arduino: 4 hapa
Kontrolli i udhëhequr në të gjithë botën duke përdorur internetin duke përdorur Arduino: Përshëndetje, unë jam Rithik. Ne do të bëjmë një led të kontrolluar nga interneti duke përdorur telefonin tuaj. Ne do të përdorim softuer si Arduino IDE dhe Blynk. Simpleshtë e thjeshtë dhe nëse keni sukses mund të kontrolloni sa më shumë komponentë elektronikë që dëshironi Gjërat që Ne Nevojë: Hardware:
Ndërtoni ndërfaqen kompjuterike të Stephen Hawking brenda vetëm 1000 rubla (15 $) duke përdorur Arduino: 5 hapa
Ndërtoni ndërfaqen kompjuterike të Stephen Hawking Brenda Vetëm 1000 Rs (15 $) Duke përdorur Arduino: E gjitha filloi me pyetjen "Si flet Stephen Hawking?", Pasi lexova për sistemin e tij kompjuterik më ra në mendje se duhet të siguroja një më të lirë version i sistemit pa kompromentuar shumë nga veçoritë. Kjo pajisje
Gesture Hawk: Roboti i kontrolluar me gjeste duke përdorur ndërfaqen e bazuar në përpunimin e imazhit: 13 hapa (me fotografi)
Gesture Hawk: Roboti i kontrolluar me gjeste duke përdorur ndërfaqen e bazuar në përpunimin e imazhit: Gesture Hawk u shfaq në TechEvince 4.0 si një ndërfaqe e thjeshtë e përpunimit të imazhit të bazuar në njeri-makinë. Dobia e tij qëndron në faktin se asnjë sensor shtesë ose i veshshëm përveç një doreze nuk kërkohet për të kontrolluar makinën robotike që funksionon në mënyra të ndryshme