Innholdsfortegnelse:
- Trinn 1: Oversikt
- Trinn 2: Hva du trenger / lenker
- Trinn 3: Kretsdiagram
- Trinn 4: Programmering - I
- Trinn 5: Programmering - II
- Trinn 6: Video
Video: Påføring av MCP-23008 ved bruk av relégrensesnitt (I2C) :: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Hallo
God hilsen.. !!
Jeg (Somanshu Choudhary) på vegne av Dcube tech ventures som skal kontrollere reléer via I2C -protokollen ved bruk av Arduino nano og MCP23008.
Trinn 1: Oversikt
- MCP23X08-enheten gir 8-bits, parallelle I/O-utvidelser for generelle formål for I2C-busser eller SPI-applikasjoner.
- MCP23X08 består av flere 8-biters konfigurasjonsregistre for valg av input, output og polaritet. Systemmesteren kan aktivere I/Os som enten innganger eller utganger ved å skrive I/O -konfigurasjonsbitene. Dataene for hver inngang eller utgang lagres i det tilsvarende Input- eller Output -registeret. Polariteten til Input Port -registeret kan inverteres med Polarity Inversion -registeret. Alle registre kan leses av systemmesteren.
- DATABLAD:
Trinn 2: Hva du trenger / lenker
1. Arduino Nano LINK:
2. skjerm for Arduino Nano LINK:
3. USB -kabel Type A til Micro Type B 6 fot lang
4. I²C kabel LINK:
5. Åtte SPDT I²C kontrollerte reléer
6. Adapter LINK:
Trinn 3: Kretsdiagram
Trinn 4: Programmering - I
- I denne koden bruker jeg Function Programming Paradigm
- Jeg brukte forskjellige faner for definisjon av funksjoner og funksjonskall
KODE UNDER FAN q:
// Enkel funksjonskode
#include void setup ()
{
// I2C -adresse til MCP23008
#define MCP_ADDR 0x20
// Bli med I2C Bus som master
Wire.begin ();
// Start seriell kommunikasjon og angi overføringshastighet
Serial.begin (9600);
// Start overføringen med en gitt enhet på I2C -bussen
Wire.beginTransmission (MCP_ADDR);
// Velg IODIR - I/O DIRECTION REGISTER register
Wire.write (0x00);
// Velg ønsket operasjon (utgang)
Wire.write (0x00);
// Velg CONFIGURATION register
Wire.write (0x05);
// Velg ønsket operasjon
Wire.write (0x0E);
// avslutte overføring
Wire.endTransmission ();
}
hulrom ()
{
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 koden er til og av relé 1 om bord
ugyldig a1_on () {
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
ugyldig a1_off ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER FAN q2:
// Denne koden er til og av relé 2 om bord
ugyldig a2_on () {
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
ugyldig a2_off ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER TABEL q3: // Denne koden er til på og av relé 3 om bord
ugyldig a3_on ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
ugyldig a3_off ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
Trinn 5: Programmering - II
KODE UNDER TABEL q4:
// Denne koden er til og av relé 4 om bord
ugyldig a4_on ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
ugyldig a4_off ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER FAN q5:
// Denne koden er til og av relé 5 om bord
ugyldig a5_on ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
ugyldig a5_off ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER TABELL q6: // Denne koden er til på og av relé 6 om bord
ugyldig a6_on ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
ugyldig a6_off ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER TABELL q7: // Denne koden er til på og av relé 7 om bord
ugyldig a7_on () {
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
ugyldig a7_off ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
KODE UNDER TABELL q8: // Denne koden er til på og av relé 8 om bord
ugyldig a8_on () {
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
ugyldig a8_off ()
{
// Start overføringen
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
forsinkelse (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Utgang til skjermen
Serial.print ("GPIO -verdi:");
Serial.println (GPIO, BIN);
}
Trinn 6: Video
For ytterligere spørsmål Besøk gjerne nettstedet vårt:
www.dcubetechnologies.com
Anbefalt:
Håndholdt Arduino Paper Rock -saksespill ved bruk av 20x4 LCD -skjerm med I2C: 7 trinn
Håndholdt Arduino Paper Rock Scissors Game Using 20x4 LCD Display With I2C: Hei alle sammen eller kanskje jeg burde si "Hello World!" Det ville være en stor glede å dele et prosjekt med deg som har vært min inngang til mange ting Arduino. Dette er et håndholdt Arduino Paper Rock Scissors -spill som bruker en I2C 20x4 LCD -skjerm. JEG
Komme i gang med I2C sensorgrensesnitt ?? - Grensesnitt for MMA8451 ved bruk av ESP32s: 8 trinn
Komme i gang med I2C sensorgrensesnitt ?? - Grensesnitt for MMA8451 ved bruk av ESP32s: I denne opplæringen lærer du alt om hvordan du starter, kobler til og får I2C -enhet (akselerometer) til å fungere med kontrolleren (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: 4 trinn
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: Hei, jeg er Rithik. Vi kommer til å lage en Internett -kontrollert LED ved hjelp av telefonen din. Vi kommer til å bruke programvare som Arduino IDE og Blynk. Det er enkelt, og hvis du lyktes kan du kontrollere så mange elektroniske komponenter du vilTing We Need: Hardware:
Overvåke akselerasjon ved bruk av Raspberry Pi og AIS328DQTR ved hjelp av Python: 6 trinn
Overvåke akselerasjon ved hjelp av Raspberry Pi og AIS328DQTR Bruke Python: Akselerasjon er begrenset, tror jeg i henhold til noen fysikklover.- Terry Riley En gepard bruker fantastisk akselerasjon og raske endringer i hastighet når jeg jager. Den raskeste skapningen i land en gang i blant bruker sitt høyeste tempo for å fange byttedyr. Den
Atollic TrueStudio-Switch på LED-en ved å trykke på trykknappen ved bruk av STM32L100: 4 trinn
Atollic TrueStudio-Switch på LED-en ved å trykke på trykknappen ved bruk av STM32L100: I denne opplæringen til STM32 skal jeg fortelle deg hvordan du leser en GPIO-pin av STM32L100, så her skal jeg lage en ombord LED-glød av bare trykke på trykknappen