Sadržaj:
- Korak 1: Pregled
- Korak 2: Što vam treba / Veze
- Korak 3: Dijagram kruga
- 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 promjena: 2024-01-30 09:34
zdravo
Lijep pozdrav.. !!
Ja (Somanshu Choudhary) u ime tvrtke Dcube tech ventures idem kontrolirati releje putem I2C protokola koristeći Arduino nano i MCP23008.
Korak 1: Pregled
- Uređaj MCP23X08 pruža 8-bitno općenito namjensko paralelno I/O proširenje za I2C sabirnicu ili SPI aplikacije.
- MCP23X08 se sastoji od više 8-bitnih konfiguracijskih registara za odabir ulaza, izlaza i polariteta. Glavni sustav može omogućiti I/O kao ulaze ili izlaze upisivanjem konfiguracijskih bitova za U/I. Podaci za svaki ulaz ili izlaz čuvaju se u odgovarajućem registru ulaza ili izlaza. Polaritet registra ulaznog porta može se obrnuti registrom inverzije polariteta. Glavni registar može pročitati sve registre.
- LINKA SA PODACIMA:
Korak 2: Što 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 kruga
Korak 4: Programiranje - I
- U ovom kodu koristim paradigmu programiranja funkcija
- Koristio sam različite kartice za definiranje funkcija i pozivanje funkcija
KOD ISPOD KARTICE q:
// Kôd za pozivanje jednostavnih funkcija
#include void setup ()
{
// I2C adresa MCP23008
#define MCP_ADDR 0x20
// Pridružite se I2C Busu kao majstor
Wire.begin ();
// Pokretanje serijske komunikacije i postavljanje brzine prijenosa
Serial.begin (9600);
// Prijenos započnite s danim 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 zaslon
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 zaslon
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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.println (GPIO, BIN);
}
KOD ISPOD KARTICE q7: // Ovaj kôd 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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.println (GPIO, BIN);
}
KOD ISPOD KARTICE q8: // Ovaj kôd 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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.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 zaslon
Serial.print ("GPIO vrijednost:");
Serijski.println (GPIO, BIN);
}
Korak 6: Video
Za dodatne upite slobodno posjetite našu web stranicu:
www.dcubetechnologies.com
Preporučeni:
Kako napraviti pametni dom pomoću Arduino kontrolnog relejnog modula - Ideje za kućnu automatizaciju: 15 koraka (sa slikama)
Kako napraviti pametni dom pomoću Arduino kontrolnog relejnog modula | Ideje za kućnu automatizaciju: U ovom projektu automatizacije doma osmislit ćemo relejni modul pametne kuće koji može kontrolirati 5 kućanskih aparata. Ovim relejnim modulom može se upravljati s mobitela ili pametnog telefona, IC daljinskog upravljača ili daljinskog upravljača za TV, ručnim prekidačem. Ovaj pametni relej također može osjetiti r
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 se aplikacija može koristiti onakva kakva jest i potpuno je funkcionalna. Ili se može koristiti u kombinaciji s prikazom Petanque Matrix [zasebna instrukcija
Kako upravljati servo motorom s računala pomoću grafičkog sučelja: 5 koraka
Kako upravljati servo motorom s računala pomoću grafičkog sučelja: pritisnite Servo motor na računalu na grafičkom korisničkom sučelju (GUI) putem kontrole Upravljajte dijeljenjem Upute za korištenje myblog-www.mechanic37.com Želite li projekt Ako želite pročitati uputstva za čitanje, kliknite na računalo na računaru
Kako kontrolirati žarulju pomoću Arduino UNO -a i jednokanalnog 5V krutog relejnog modula: 3 koraka
Kako kontrolirati žarulju pomoću Arduino UNO -a i jednokanalnog 5V krutog 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/ izvan brzine i bez buke. Osim toga, ima i bolju otpornost na vibracije i mehaničke
Primjena proširivog gumba s povratnom vibracijom: 7 koraka (sa slikama)
Primjena proširivog gumba s povratnom informacijom o vibracijama: U ovom ćemo vam tutorijalu 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