
Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:08

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

- 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

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


4. korak: Programiranje - I


- 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

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:
Izračun vlažnosti, tlaka in temperature z uporabo BME280 in fotonskega vmesnika .: 6 korakov

Izračun vlažnosti, tlaka in temperature z uporabo BME280 in fotonskega vmesnika. Naletimo na različne projekte, ki zahtevajo spremljanje temperature, tlaka in vlažnosti. Tako se zavedamo, da imajo ti parametri dejansko bistveno vlogo pri oceni delovne učinkovitosti sistema pri različnih atmosferskih pogojih
Kako upravljati žarnico z uporabo Arduino UNO in enokanalnega 5V polprevodniškega relejnega modula: 3 koraki

Kako upravljati žarnico z uporabo Arduino UNO in enokanalnega 5V polprevodniškega relejnega modula: Opis: Polprevodniški rele (SSR) ima v primerjavi s tradicionalnim mehanskim relejem številne prednosti: ima daljšo življenjsko dobo, z veliko večjim vklopom/ izklopljena hitrost in brez hrupa. Poleg tega ima boljšo odpornost proti vibracijam in mehanskim
Povratni inženiring relejnega modula: 4 koraki

Povratni inženiring relejnega modula: Ta članek prikazuje, kako narediti relejni modul, ki ga je mogoče uporabiti za Arduino in druge aplikacije, kot so vezja in drugi projekti DIY. S to vadnico boste lahko sami izdelali relejni modul. Kaj je torej rele? Rele je električar
Gesture Hawk: Robot z ročno krmiljeno roko z uporabo vmesnika za obdelavo slik: 13 korakov (s slikami)

Gesture Hawk: Robot z ročno krmiljenim robotom z uporabo vmesnika za obdelavo slik: Gesture Hawk je bil predstavljen v TechEvince 4.0 kot preprost vmesnik za obdelavo slik človek-stroj. Njegova uporabnost je v tem, da za upravljanje robotskega avtomobila, ki vozi na različnih
Ponovna uporaba zatiča vmesnika ATtiny84/85 SPI: 6 korakov

Ponovna uporaba pin vmesnika ATtiny84/85 SPI: ta navodila so nadaljevanje " Odpravljanja napak v vezju ATtiny84/85 s serijskim izhodom " poučuje in razširja to konfiguracijo strojne in programske opreme za reševanje vprašanja ponovne uporabe aplikacijskih zatičev za prenos programov