Obsah:
- Krok 1: Prehľad
- Krok 2: Čo potrebujete / odkazy
- Krok 3: Schéma zapojenia
- Krok 4: Programovanie - I
- Krok 5: Programovanie - II
- Krok 6: Video
Video: Aplikácia MCP-23008 pomocou reléového rozhrania (I2C) :: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Ahoj
Dobrý pozdrav.. !!
Ja (Somanshu Choudhary) v mene technologických spoločností Dcube idem ovládať relé pomocou protokolu I2C pomocou Arduino nano a MCP23008.
Krok 1: Prehľad
- Zariadenie MCP23X08 poskytuje 8-bitové všeobecné paralelné rozšírenie I/O pre zbernicu I2C alebo aplikácie SPI.
- MCP23X08 pozostáva z viacerých 8-bitových konfiguračných registrov na výber vstupu, výstupu a polarity. Master systému môže povoliť I/O ako vstupy alebo výstupy zapísaním konfiguračných bitov I/O. Údaje pre každý vstup alebo výstup sú uložené v zodpovedajúcom vstupnom alebo výstupnom registri. Polaritu registra vstupného portu je možné prevrátiť pomocou registra inverzie polarity. Všetky registre môže prečítať hlavný systém.
- ODKAZ NA DATOVÝ LIST:
Krok 2: Čo potrebujete / odkazy
1. Arduino Nano ODKAZ:
2. Štít pre Arduino Nano LINK:
3. USB kábel typu A na mikro typu B, 6 stôp dlhý
4. Kábel I²C ODKAZ:
5. Osem riadených relé SPDT I²C
6. Adaptér LINK:
Krok 3: Schéma zapojenia
Krok 4: Programovanie - I
- V tomto kóde používam paradigmu programovania funkcií
- Na definovanie funkcií a volanie funkcií som použil rôzne karty
KÓD POD TABUĽKOU q:
// Kód na volanie jednoduchých funkcií
#include void setup ()
{
// I2C adresa MCP23008
#define MCP_ADDR 0x20
// Pripojte sa k I2C Bus ako hlavný
Wire.begin ();
// Spustite sériovú komunikáciu a nastavte prenosovú rýchlosť
Serial.begin (9600);
// Začnite prenos s daným zariadením na zbernici I2C
Wire.beginTransmission (MCP_ADDR);
// Vyberte register IODIR - I/O DIRECTION REGISTER
Wire.write (0x00);
// Vyberte požadovanú operáciu (výstup)
Wire.write (0x00);
// Vyberte register KONFIGURÁCIE
Wire.write (0x05);
// Vyberte požadovanú operáciu
Wire.write (0x0E);
// ukončenie prenosu
Wire.endTransmission ();
}
prázdna slučka ()
{
a1_on ();
oneskorenie (1000);
a1_off ();
oneskorenie (1000);
a2_on ();
oneskorenie (1000);
a2_off ();
oneskorenie (1000);
a3_on ();
oneskorenie (1000);
a3_off ();
oneskorenie (1000);
a4_on ();
oneskorenie (1000);
a4_off ();
oneskorenie (1000);
a5_on ();
oneskorenie (1000);
a5_off ();
oneskorenie (1000);
a6_on ();
oneskorenie (1000);
a6_off ();
oneskorenie (1000);
a7_on ();
oneskorenie (1000);
a7_off ();
oneskorenie (1000);
a8_on ();
oneskorenie (1000);
a8_off ();
}
KÓD POD TABUĽKOU q1:
// Tento kód má zapnúť a vypnúť relé 1 na palube
neplatné a1_on () {
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
oneskorenie (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 ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
oneskorenie (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 TABUĽKOU q2:
// Tento kód má zapnúť a vypnúť relé 2 na palube
neplatné a2_on () {
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
oneskorenie (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 ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
oneskorenie (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 TABUĽKOU q3: // Tento kód slúži na zapnutie a vypnutie relé 3 na doske
neplatné a3_on ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
oneskorenie (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 ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
oneskorenie (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: Programovanie - II
KÓD POD TABUĽKOU q4:
// Tento kód má zapnúť a vypnúť relé 4 na palube
neplatné a4_on ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
oneskorenie (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 ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
oneskorenie (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 TABUĽKOU q5:
// Tento kód má zapnúť a vypnúť relé 5 na palube
neplatné a5_on ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
oneskorenie (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 ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
oneskorenie (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 TABUĽKOU q6: // Tento kód slúži na zapnutie a vypnutie relé 6 na doske
neplatné a6_on ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
oneskorenie (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 ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
oneskorenie (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 TABUĽKOU q7: // Tento kód slúži na zapnutie a vypnutie relé 7 na doske
neplatné a7_on () {
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
oneskorenie (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 ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
oneskorenie (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 TABUĽKOU q8: // Tento kód slúži na zapnutie a vypnutie relé 8 na doske
neplatné a8_on () {
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
oneskorenie (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 ()
{
// Začnite prenos
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
oneskorenie (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
V prípade ďalších otázok neváhajte navštíviť naše stránky:
www.dcubetechnologies.com
Odporúča:
Alexa Smart Home System pomocou reléového modulu NodeMCU: 10 krokov
Systém Alexa Smart Home využívajúci reléový modul NodeMCU: V tomto projekte internetu vecí som vyrobil systém Alexa Smart Home Automation pomocou NodeMCU ESP8266 & Reléový modul. Svetlo, ventilátor a ďalšie domáce spotrebiče môžete ľahko ovládať hlasovým príkazom. Ak chcete prepojiť inteligentný reproduktor Echo Dot s
Výpočet vlhkosti, tlaku a teploty pomocou rozhrania BME280 a fotónového rozhrania .: 6 krokov
Výpočet vlhkosti, tlaku a teploty pomocou BME280 a fotónového rozhrania: Stretávame sa s rôznymi projektmi, ktoré vyžadujú monitorovanie teploty, tlaku a vlhkosti. Uvedomujeme si, že tieto parametre skutočne zohrávajú zásadnú úlohu pri odhade pracovnej účinnosti systému pri rôznych atmosférických podmienkach
Ako si vyrobiť inteligentný domov pomocou reléového modulu Arduino - Myšlienky domácej automatizácie: 15 krokov (s obrázkami)
Ako vytvoriť inteligentný domov pomocou reléového modulu Arduino | Nápady na automatizáciu domácnosti: V tomto projekte automatizácie domácnosti navrhneme reléový modul inteligentnej domácnosti, ktorý dokáže ovládať 5 domácich spotrebičov. Tento reléový modul je možné ovládať z mobilného telefónu alebo smartfónu, diaľkového ovládača IR alebo televízora, manuálneho prepínača. Toto inteligentné relé môže cítiť aj
Vytvorte informačný panel o počasí pomocou rozhrania Dark Sky API: 5 krokov (s obrázkami)
Vytvorte informačný panel o počasí pomocou rozhrania Dark Sky API: Dark Sky sa špecializuje na predpovedanie počasia a vizualizáciu. Najlepším aspektom Dark Sky je ich API pre počasie, ktoré môžeme použiť na získanie údajov o počasí takmer z akéhokoľvek miesta na svete. Nie je to len daždivé alebo slnečné počasie, ale aj teplota
Gesture Hawk: Robot ovládaný gestami pomocou rozhrania založeného na spracovaní obrazu: 13 krokov (s obrázkami)
Gesture Hawk: Ručne ovládaný robot gestami pomocou rozhrania založeného na spracovaní obrazu: Gesture Hawk bol predstavený v TechEvince 4.0 ako jednoduché rozhranie človek-stroj založené na spracovaní obrazu. Jeho užitočnosť spočíva v tom, že na ovládanie robotického auta, ktoré beží na rôznych