Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Tere
Tervitused.. !!
I (Somanshu Choudhary) Dcube'i tehnoloogiaettevõtete nimel, kes hakkavad releed I2C protokolli kaudu juhtima, kasutades Arduino nano ja MCP23008.
1. samm: ülevaade
- Seade MCP23X08 pakub 8-bitist üldotstarbelist paralleelset I/O laiendust I2C siinide või SPI rakenduste jaoks.
- MCP23X08 koosneb mitmest 8-bitisest konfiguratsiooniregistrist sisendi, väljundi ja polaarsuse valimiseks. Süsteemihaldur saab lubada sisendid/väljundid sisendite või väljunditena, kirjutades sisend-/väljundkonfiguratsiooni bitid. Iga sisendi või väljundi andmeid hoitakse vastavas sisend- või väljundregistris. Sisendpordi registri polaarsust saab polaarsuse ümberpööramise registriga ümber pöörata. Süsteemi kapten saab lugeda kõiki registreid.
- DATASHET LINK:
2. samm: mida vajate / lingid
1. Arduino Nano LINK:
2. Arduino Nano LINKi kilp:
3. USB -kaabli tüüp A kuni mikro -tüüp B 6 jalga pikk
4. I²C kaabli link:
5. Kaheksa SPDT I²C juhitavat releed
6. Adapteri link:
Samm: vooluahela skeem
4. samm: programmeerimine - I
- Selles koodis kasutan funktsioonide programmeerimise paradigmat
- Kasutasin funktsioonide määratlemiseks ja funktsioonide kutsumiseks erinevaid sakke
KOOD TABI ALLA q:
// Lihtne funktsioon kutsekood
#include void setup ()
{
// MCP23008 I2C aadress
#define MCP_ADDR 0x20
// Liituge I2C Busiga kaptenina
Wire.begin ();
// Käivitage jadaühendus ja määrake edastuskiirus
Seriaalne algus (9600);
// Alustage edastamist antud seadmega I2C siinil
Wire.beginTransmission (MCP_ADDR);
// Valige register IODIR - I/O DIRECTION REGISTER register
Wire.write (0x00);
// Valige vajalik toiming (väljund)
Wire.write (0x00);
// Valige CONFIGURATION register
Wire.write (0x05);
// Valige vajalik toiming
Wire.write (0x0E);
// lõpetada ülekanne
Wire.endTransmission ();
}
tühine tsükkel ()
{
a1_on ();
viivitus (1000);
a1_väljas ();
viivitus (1000);
a2_on ();
viivitus (1000);
a2_välja ();
viivitus (1000);
a3_on ();
viivitus (1000);
a3_off ();
viivitus (1000);
a4_on ();
viivitus (1000);
a4_off ();
viivitus (1000);
a5_on ();
viivitus (1000);
a5_off ();
viivitus (1000);
a6_on ();
viivitus (1000);
a6_välja ();
viivitus (1000);
a7_on ();
viivitus (1000);
a7_väljas ();
viivitus (1000);
a8_on ();
viivitus (1000);
a8_off ();
}
KOOD TABELI Q1 ALLA:
// See kood on pardal oleva relee 1 sisse- ja väljalülitamiseks
tühine a1_on () {
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
tühine a1_off ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
KOOD TABEL Q2 ALL:
// See kood on pardal oleva relee 2 sisse- ja väljalülitamiseks
tühine a2_on () {
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
tühine a2_off ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
KOOD VAHE VAHE all q3: // See kood on sisse- ja väljalülitamiseks relee 3 pardal
tühine a3_on ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
tühine a3_off ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
5. samm: programmeerimine - II
KOOD TABEL Q4 ALLA:
// See kood on pardal oleva relee 4 sisse- ja väljalülitamiseks
tühine a4_on ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
tühine a4_off ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
KOOD TABELI Q5 ALLA:
// See kood on pardal oleva relee 5 sisse- ja väljalülitamiseks
tühine a5_on ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
tühine a5_off ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
KOOD TABELI KOHTA all q6: // See kood on pardal oleva relee 6 sisse- ja väljalülitamiseks
tühine a6_on ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
tühine a6_off ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
KOOD KAARDI ALLA q7: // See kood on pardal oleva relee 7 sisse- ja väljalülitamiseks
tühine a7_on () {
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
tühine a7_off ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
KOOD KAARDI ALLA q8: // See kood on sisse- ja väljalülitamiseks relee 8 pardal
tühine a8_on () {
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
tühine a8_off ()
{
// Alusta edastamist
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
viivitus (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Väljund ekraanile
Serial.print ("GPIO väärtus:");
Serial.println (GPIO, BIN);
}
6. samm: video
Täiendavate küsimuste korral külastage meie saiti:
www.dcubetechnologies.com