
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38

Ahoj
S pozdravem.. !!
Já (Somanshu Choudhary) jménem Dcube tech ventures jdu ovládat relé pomocí protokolu I2C pomocí Arduino nano a MCP23008.
Krok 1: Přehled

- Zařízení MCP23X08 poskytuje 8bitové, paralelní rozšíření I/O pro obecné účely pro sběrnici I2C nebo aplikace SPI.
- MCP23X08 se skládá z více 8bitových konfiguračních registrů pro výběr vstupu, výstupu a polarity. Master systému může povolit I/O jako vstupy nebo výstupy zapsáním konfiguračních bitů I/O. Data pro každý vstup nebo výstup jsou uložena v odpovídajícím vstupním nebo výstupním registru. Polaritu registru vstupního portu lze invertovat pomocí registru inverze polarity. Všechny registry mohou být přečteny správcem systému.
- ODKAZ NA DATOVÝ LIST:
Krok 2: Co potřebujete / odkazy

1. Arduino Nano ODKAZ:
2. Štít pro Arduino Nano LINK:
3. Kabel USB typu A na mikro typu B dlouhý 6 stop
4. I²C Cable LINK:
5. Osm řízených relé SPDT I²C
6. Adaptér LINK:
Krok 3: Schéma zapojení


Krok 4: Programování - I


- V tomto kódu používám Paradigma programování funkcí
- Pro definici funkcí a volání funkcí jsem použil různé karty
KÓD POD TABULKOU q:
// Volání kódu jednoduché funkce
#include void setup ()
{
// I2C adresa MCP23008
#define MCP_ADDR 0x20
// Připojte se k I2C Bus jako hlavní
Wire.begin ();
// Zahájení sériové komunikace a nastavení přenosové rychlosti
Serial.begin (9600);
// Zahájení přenosu s daným zařízením na sběrnici I2C
Wire.beginTransmission (MCP_ADDR);
// Vyberte registr IODIR - I/O DIRECTION REGISTER
Wire.write (0x00);
// Vyberte požadovanou operaci (výstup)
Wire.write (0x00);
// Vyberte registr KONFIGURACE
Wire.write (0x05);
// Vyberte požadovanou operaci
Wire.write (0x0E);
// ukončení přenosu
Wire.endTransmission ();
}
prázdná smyčka ()
{
a1_on ();
zpoždění (1000);
a1_off ();
zpoždění (1000);
a2_on ();
zpoždění (1000);
a2_off ();
zpoždění (1000);
a3_on ();
zpoždění (1000);
a3_off ();
zpoždění (1000);
a4_on ();
zpoždění (1000);
a4_off ();
zpoždění (1000);
a5_on ();
zpoždění (1000);
a5_off ();
zpoždění (1000);
a6_on ();
zpoždění (1000);
a6_off ();
zpoždění (1000);
a7_on ();
zpoždění (1000);
a7_off ();
zpoždění (1000);
a8_on ();
zpoždění (1000);
a8_off ();
}
KÓD POD TABULKOU q1:
// Tento kód slouží k zapnutí a vypnutí relé 1 na desce
neplatné a1_on () {
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
neplatné a1_off ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
KÓD POD TABULKOU q2:
// Tento kód slouží k zapnutí a vypnutí relé 2 na desce
neplatné a2_on () {
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
neplatné a2_off ()
{
// Zahajte přenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
KÓD POD KARTOU q3: // Tento kód slouží k zapnutí a vypnutí relé 3 na desce
neplatné a3_on ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
neplatné a3_off ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
Krok 5: Programování - II

KÓD POD TABULKOU q4:
// Tento kód slouží k zapnutí a vypnutí relé 4 na desce
neplatné a4_on ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
neplatné a4_off ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
KÓD POD TABULKOU q5:
// Tento kód slouží k zapnutí a vypnutí relé 5 na desce
neplatné a5_on ()
{
// Zahajte přenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
neplatné a5_off ()
{
// Zahajte přenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
KÓD POD KARTOU q6: // Tento kód slouží k zapnutí a vypnutí relé 6 na desce
neplatné a6_on ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
neplatné a6_off ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
KÓD POD KARTOU q7: // Tento kód slouží k zapnutí a vypnutí relé 7 na desce
neplatné a7_on () {
// Zahajte přenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
neplatné a7_off ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
KÓD POD KARTOU q8: // Tento kód slouží k zapnutí a vypnutí relé 8 na desce
neplatné a8_on () {
// Zahajte přenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
neplatné a8_off ()
{
// Zahájení přenosu
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
zpoždění (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Výstup na obrazovku
Serial.print ("hodnota GPIO:");
Serial.println (GPIO, BIN);
}
Krok 6: Video
Pro další dotazy neváhejte navštívit naše stránky:
www.dcubetechnologies.com
Doporučuje:
Začínáme s rozhraním senzoru I2C ?? - Rozhraní vašeho MMA8451 pomocí ESP32s: 8 kroků

Začínáme s rozhraním senzoru I2C ?? - Rozhraní vašeho MMA8451 pomocí ESP32s: V tomto tutoriálu se dozvíte vše o tom, jak spustit, připojit a získat zařízení I2C (Accelerometer) pracující s ovladačem (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Jak vytvořit chytrou domácnost pomocí řídicího reléového modulu Arduino - Myšlenky domácí automatizace: 15 kroků (s obrázky)

Jak vytvořit chytrou domácnost pomocí řídicího reléového modulu Arduino | Myšlenky domácí automatizace: V tomto projektu domácí automatizace navrhneme reléový modul inteligentní domácnosti, který může ovládat 5 domácích spotřebičů. Tento reléový modul lze ovládat z mobilního telefonu nebo chytrého telefonu, infračerveného dálkového ovladače nebo dálkového ovladače TV, manuálního spínače. Toto inteligentní relé může také cítit
Rozhraní Sensirion, SPS-30, senzor pevných částic s Arduino Duemilanove pomocí režimu I2C: 5 kroků

Interfacing Sensirion, SPS-30, senzor pevných částic s Arduino Duemilanove pomocí režimu I2C: Když jsem se díval na propojení senzorů SPS30, uvědomil jsem si, že většina zdrojů je pro Raspberry Pi, ale ne tolik pro Arduino. Trávím trochu času, aby senzor fungoval s Arduinem, a rozhodl jsem se zde zveřejnit své zkušenosti, aby mohl
Import souborů aplikace Inventor do aplikace CorelDraw: 6 kroků

Import souborů aplikace Inventor do aplikace CorelDraw: Tento návod je částí 2 série, která začala kreslením hřebenů v aplikaci Autodesk Inventor, což je přátelský projektově orientovaný úvod do 2D práce v aplikaci Autodesk. Předpokládáme, že jste již dokončili a uložili si skicu (ať už z hřebenů na řezu nebo
Ovládejte Arduino pomocí chytrého telefonu přes USB pomocí aplikace Blynk: 7 kroků (s obrázky)

Ovládejte Arduino pomocí smartphonu přes USB pomocí aplikace Blynk: V tomto tutoriálu se naučíme, jak používat aplikaci Blynk a Arduino k ovládání lampy, kombinace bude prostřednictvím sériového portu USB. Účelem tohoto pokynu je ukázat nejjednodušší řešení vzdáleného ovládání vašeho Arduina nebo