Sisukord:
- 1. samm: ülevaade
- 2. samm: mida vajate / lingid
- Samm: vooluahela skeem
- 4. samm: programmeerimine - I
- 5. samm: programmeerimine - II
- 6. samm: video
Video: MCP-23008 rakendamine releeliidese (I2C) abil :: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
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
Soovitan:
Ühefaasilise inverteri kavandamine ja rakendamine: 9 sammu
Ühefaasilise muunduri projekteerimine ja rakendamine: selles juhendis uuritakse Dialogi GreenPAK ™ CMIC-de kasutamist jõuelektroonika rakendustes ja demonstreeritakse ühefaasilise muunduri rakendamist, kasutades erinevaid juhtimismeetodeid. Q määramiseks kasutatakse erinevaid parameetreid
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil
LiFi rakendamine, Uso Sencillo: 5 sammu
LiFi rakendamine, Uso Sencillo: La transmisión de datos por vía de luz (LiFi) on tegelik probleem. Selle probleemi lahendamiseks on üks peamisi aproksimaatsioone, desarrollimine ja paigutusvõimalus, mis on ette nähtud ühtse kommunikatsiooni jaoks ja una vee medi de luz, koos LED -de infrapunaühendusega
Lihtne WiFi -juhtimise rakendamine kodus: 5 sammu
Lihtne WiFI-kontrolli rakendamine kodus: ESP-01S on odav ja hõlpsasti kasutatav traadita lahendus. Kombineerides teiste andurite ja täiturmehhanismiga saab kaugseiret ja juhtimist mugavalt realiseerida. Selles projektis kavatsen ma ehitada nutika lüliti, et juhtida ventilaatorit ESP-01S Rela poolt
Mitteblokeeriv APDS9960 žestianduri rakendamine: 5 sammu
Mitteblokeeriv APDS9960 žestianduri rakendamine: preambulSee juhend sisaldab üksikasjalikku teavet selle kohta, kuidas luua APDS9960 žestanduri mitteblokeeriv rakendus SparkFun_APDS-9960_Sensor_Arduino_Library abil. Või isegi blokeerida