Sadržaj:
- Korak 1: Pregled
- Korak 2: Šta vam treba / Veze
- Korak 3: Dijagram kola
- Korak 4: Programiranje - I
- Korak 5: Programiranje - II
- Korak 6: Video
Video: Primjena MCP-23008 pomoću relejnog sučelja (I2C) :: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
zdravo
Srdačan pozdrav.. !!
Ja (Somanshu Choudhary) u ime Dcube tech ventures -a idem kontrolirati releje putem I2C protokola koristeći Arduino nano i MCP23008.
Korak 1: Pregled
- Uređaj MCP23X08 pruža 8-bitno općenito, paralelno I/O proširenje za I2C sabirnicu ili SPI aplikacije.
- MCP23X08 se sastoji od više 8-bitnih konfiguracijskih registara za izbor ulaza, izlaza i polariteta. Sistemski master može omogućiti I/O kao ulaze ili izlaze upisivanjem bitova za U/I konfiguraciju. Podaci za svaki ulaz ili izlaz čuvaju se u odgovarajućem ulaznom ili izlaznom registru. Polaritet registra ulaznog porta može se obrnuti registrom za inverziju polariteta. Glavni registar može pročitati sve registre.
- LINKA SA PODACIMA:
Korak 2: Šta vam treba / Veze
1. Arduino Nano LINK:
2. Štit za Arduino Nano LINK:
3. USB kabel tipa A do mikro tipa B Dugi 6 stopa
4. I²C kabel LINK:
5. Osam upravljanih releja SPDT I²C
6. LINKA adaptera:
Korak 3: Dijagram kola
Korak 4: Programiranje - I
- U ovom kodu koristim paradigmu programiranja funkcija
- Koristio sam različite kartice za definisanje funkcija i pozivanje funkcija
KOD ISPOD KARTICE q:
// Jednostavni pozivni kod funkcije
#include void setup ()
{
// I2C adresa MCP23008
#define MCP_ADDR 0x20
// Pridružite se I2C Bus -u kao master
Wire.begin ();
// Pokretanje serijske komunikacije i postavljanje brzine prijenosa
Serial.begin (9600);
// Pokretanje prijenosa s datim uređajem na I2C sabirnici
Wire.beginTransmission (MCP_ADDR);
// Odaberite registar IODIR - I/O DIRECTION REGISTER
Wire.write (0x00);
// Odabir potrebne operacije (izlaz)
Wire.write (0x00);
// Odaberite registar CONFIGURATION
Wire.write (0x05);
// Odabir potrebne operacije
Wire.write (0x0E);
// prekid prijenosa
Wire.endTransmission ();
}
void loop ()
{
a1_on ();
kašnjenje (1000);
a1_off ();
kašnjenje (1000);
a2_on ();
kašnjenje (1000);
a2_off ();
kašnjenje (1000);
a3_on ();
kašnjenje (1000);
a3_off ();
kašnjenje (1000);
a4_on ();
kašnjenje (1000);
a4_off ();
kašnjenje (1000);
a5_on ();
kašnjenje (1000);
a5_off ();
kašnjenje (1000);
a6_on ();
kašnjenje (1000);
a6_off ();
kašnjenje (1000);
a7_on ();
kašnjenje (1000);
a7_off ();
kašnjenje (1000);
a8_on ();
kašnjenje (1000);
a8_off ();
}
KOD ISPOD KARTICE q1:
// Ovaj kod služi za uključivanje i isključivanje releja 1 na brodu
void a1_on () {
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serijski.println (GPIO, BIN);
}
void a1_off ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serijski.println (GPIO, BIN);
}
KOD ISPOD KARTICE q2:
// Ovaj kod služi za uključivanje i isključivanje releja 2 na brodu
void a2_on () {
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
void a2_off ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
KOD ISPOD KARTICE q3: // Ovaj kod služi za uključivanje i isključivanje releja 3 na brodu
void a3_on ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
void a3_off ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
Korak 5: Programiranje - II
KOD ISPOD KARTICE q4:
// Ovaj kod služi za uključivanje i isključivanje releja 4 na brodu
void a4_on ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
void a4_off ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serijski.println (GPIO, BIN);
}
KOD ISPOD KARTICE q5:
// Ovaj kod služi za uključivanje i isključivanje releja 5 na brodu
void a5_on ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
void a5_off ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
KOD ISPOD KARTICE q6: // Ovaj kod služi za uključivanje i isključivanje releja 6 na brodu
void a6_on ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serijski.println (GPIO, BIN);
}
void a6_off ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
KOD ISPOD KARTICE q7: // Ovaj kod služi za uključivanje i isključivanje releja 7 na brodu
void a7_on () {
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
void a7_off ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
KOD ISPOD KARTICE q8: // Ovaj kod služi za uključivanje i isključivanje releja 8 na brodu
void a8_on () {
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
void a8_off ()
{
// Započni prijenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
kašnjenje (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Izlaz na ekran
Serial.print ("GPIO vrijednost:");
Serial.println (GPIO, BIN);
}
Korak 6: Video
Za dodatne upite slobodno posjetite našu web stranicu:
www.dcubetechnologies.com
Preporučuje se:
Kako napraviti pametnu kuću pomoću Arduino kontrolnog relejnog modula - Ideje za kućnu automatizaciju: 15 koraka (sa slikama)
Kako napraviti pametnu kuću pomoću Arduino kontrolnog relejnog modula | Ideje za kućnu automatizaciju: U ovom projektu automatizacije kuće dizajnirat ćemo relejni modul pametne kuće koji može kontrolirati 5 kućanskih aparata. Ovim relejnim modulom može se upravljati putem mobilnog telefona ili pametnog telefona, IC daljinskog upravljača ili daljinskog upravljača za TV, ručnim prekidačem. Ovaj pametni relej može osjetiti i
Krug upravljačkog relejnog modula Lora Arduino: 12 koraka
Krug upravljačkog relejnog modula Lora Arduino: U ovom Lora projektu ćemo vidjeti kako kontrolirati visokonaponske uređaje pomoću upravljačkog kruga releja LoRa Arduino. U ovom projektu Arduino Lora koristit ćemo Reyax RYLR896 Lora modul, Arduino i relejni modul od 12 V za upravljanje 5 kućanskih aparata sa
Primjena vođenja bodova petanque / Jeu-de-Boules: 7 koraka
Aplikacija za čuvanje bodova Petanque / Jeu-de-Boules: Ovo je aplikacija za čuvanje bodova u Petanqueu (ponekad se naziva i Jeu de Boules) za Android. Ova aplikacija se može koristiti onakva kakva je i potpuno je funkcionalna. Ili se može koristiti u kombinaciji s ekranom Petanque Matrix [zasebna instrukcija
Kako kontrolirati žarulju pomoću Arduino UNO -a i jednokanalnog 5V solid -state relejnog modula: 3 koraka
Kako kontrolirati žarulju pomoću Arduino UNO -a i jednokanalnog 5V poluprovodničkog relejnog modula: Opis: U usporedbi s tradicionalnim mehaničkim relejem, relej čvrstog stanja (SSR) ima mnoge prednosti: ima duži vijek trajanja, s mnogo većim uključivanjem/ van brzine i bez buke. Osim toga, ima i bolju otpornost na vibracije i mehaničke
Primjena proširivog dugmeta s povratnom vibracijom: 7 koraka (sa slikama)
Primjena proširivog gumba s povratnom informacijom o vibraciji: U ovom ćemo vam vodiču prvo pokazati kako koristiti Arduino Uno za upravljanje motorom vibracija putem produženog gumba. Većina vodiča o gumbima uključuje gumb na fizičkoj ploči, dok je u ovom vodiču gumb bio