Indholdsfortegnelse:
- Trin 1: Oversigt
- Trin 2: Hvad du har brug for / Links
- Trin 3: Kredsløbsdiagram
- Trin 4: Programmering - I
- Trin 5: Programmering - II
- Trin 6: Video
Video: Anvendelse af MCP-23008 Brug af relæinterface (I2C) :: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Hej
God hilsen.. !!
Jeg (Somanshu Choudhary) på vegne af Dcube tech ventures, der vil kontrollere relæer via I2C -protokol ved hjælp af Arduino nano og MCP23008.
Trin 1: Oversigt
- MCP23X08-enheden giver 8-bit, generelt formål, parallel I/O-udvidelse til I2C-bus- eller SPI-applikationer.
- MCP23X08 består af flere 8-bit konfigurationsregistre til valg af input, output og polaritet. Systemmasteren kan aktivere I/Os som enten input eller output ved at skrive I/O -konfigurationsbitene. Dataene for hver input eller output gemmes i det tilsvarende Input- eller Output -register. Polariteten af Input Port -registret kan vendes med Polarity Inversion -registret. Alle registre kan læses af systemmesteren.
- DATABLAD:
Trin 2: Hvad du har brug for / Links
1. Arduino Nano LINK:
2. skærm til Arduino Nano LINK:
3. USB kabeltype A til mikro type B 6 fod lang
4. I²C kabel LINK:
5. Otte SPDT I²C kontrollerede relæer
6. Adapter LINK:
Trin 3: Kredsløbsdiagram
Trin 4: Programmering - I
- I denne kode bruger jeg Function Programming Paradigm
- Jeg brugte forskellige faner til funktionsdefinition og funktionskald
KODE UNDER FAN q:
// Enkel funktionskode
#include void setup ()
{
// I2C -adresse på MCP23008
#define MCP_ADDR 0x20
// Deltag i I2C Bus som master
Wire.begin ();
// Start seriel kommunikation og indstil baudhastighed
Serial.begin (9600);
// Start transmission med en given enhed på I2C -bus
Wire.beginTransmission (MCP_ADDR);
// Vælg IODIR - I/O DIRECTION REGISTER register
Wire.write (0x00);
// Vælg den nødvendige operation (output)
Wire.write (0x00);
// Vælg KONFIGURATION register
Wire.write (0x05);
// Vælg den nødvendige operation
Wire.write (0x0E);
// afslutte transmission
Wire.endTransmission ();
}
hulrum ()
{
a1_on ();
forsinkelse (1000);
a1_off ();
forsinkelse (1000);
a2_on ();
forsinkelse (1000);
a2_off ();
forsinkelse (1000);
a3_on ();
forsinkelse (1000);
a3_off ();
forsinkelse (1000);
a4_on ();
forsinkelse (1000);
a4_off ();
forsinkelse (1000);
a5_on ();
forsinkelse (1000);
a5_off ();
forsinkelse (1000);
a6_on ();
forsinkelse (1000);
a6_off ();
forsinkelse (1000);
a7_on ();
forsinkelse (1000);
a7_off ();
forsinkelse (1000);
a8_on ();
forsinkelse (1000);
a8_off ();
}
KODE UNDER FAN q1:
// Denne kode er til og fra relæ 1 om bord
ugyldig a1_on () {
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
ugyldig a1_off ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER FAN q2:
// Denne kode er til og fra relæ 2 om bord
ugyldig a2_on () {
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
ugyldig a2_off ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER FAN q3: // Denne kode er til og fra relæ 3 om bord
ugyldig a3_on ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
ugyldig a3_off ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
Trin 5: Programmering - II
KODE UNDER FAN q4:
// Denne kode er til og fra relæ 4 om bord
ugyldig a4_on ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
ugyldig a4_off ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER FAN q5:
// Denne kode er til og fra relæ 5 om bord
ugyldig a5_on ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
ugyldig a5_off ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER FAN q6: // Denne kode er til og fra relæ 6 om bord
ugyldig a6_on ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
ugyldig a6_off ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER FAN q7: // Denne kode er til og fra relæ 7 om bord
ugyldig a7_on () {
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
ugyldig a7_off ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER FAN q8: // Denne kode er til og fra relæ 8 ombord
ugyldig a8_on () {
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
ugyldig a8_off ()
{
// Start transmissionen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Output til skærmen
Serial.print ("GPIO -værdi:");
Serial.println (GPIO, BIN);
}
Trin 6: Video
For yderligere spørgsmål Besøg gerne vores websted:
www.dcubetechnologies.com
Anbefalede:
ANDROID -ANVENDELSE KONTROLLERET ENKEL RGB LED DESKTOP LAMP: 5 trin
ANDROID -ANVENDELSE KONTROLLERET ENKEL RGB LED DESKTOP LAMP: så i denne vejledning vil jeg vise dig, hvordan du styrer rgb led med Android -smartphone. RGB -lysdioder arbejder på det grundlæggende koncept for kombination af grundfarverne i enhver nuance, det vil sige rød, grøn og blå. Alle farverne har denne elementære farvekomponent
ANVENDELSE AF GAMLE PCB -DELE PÅ DESKTOP: 7 trin
GENBETALING AF GAMLE PCB -DELE PÅ BORDSKÆRMEN: Hej fyre, man kan påpege, at mine instruktører ser ud til at trække en bestemt del, …….. lol, det er unødvendigt at sige, at det handler om livsforbedringer for mig, hver dag får jeg ordnet noget i hjemmet til at løse den ene eller den anden udfordring. Herhjemme e
En anvendelse af en udvidelig knap med vibrationsfeedback: 7 trin (med billeder)
En anvendelse af en udvidelig knap med vibrationsfeedback: I denne vejledning skal vi først vise dig, hvordan du bruger en Arduino Uno til at styre en vibrationsmotor via en forlænget knap. De fleste tutorials om trykknapper involverer knappen på det fysiske brødbræt, mens knappen i denne tutorial har været
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
HC -SR04 VS VL53L0X - Test 1 - Anvendelse til robotbilapplikationer: 7 trin
HC -SR04 VS VL53L0X - Test 1 - Anvendelse til robotbilapplikationer: Denne instruktive foreslår en enkel (omend så videnskabelig som muligt) eksperimentel proces til stort set at sammenligne effektiviteten af to mest almindelige afstandssensorer, som har en helt anden fysisk funktion. HC-SR04 bruger ultralyd