Tartalomjegyzék:
- 1. lépés: Áttekintés
- 2. lépés: Amire szüksége van / Linkek
- 3. lépés: Áramköri diagram
- 4. lépés: Programozás - I
- 5. lépés: Programozás - II
- 6. lépés: Videó
![Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés](https://i.howwhatproduce.com/images/010/image-28375-j.webp)
Videó: Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés
![Videó: Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés Videó: Az MCP-23008 alkalmazása relés interfész (I2C) használatával :: 6 lépés](https://i.ytimg.com/vi/CvqHkXeXN3M/hqdefault.jpg)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
![Az MCP-23008 alkalmazása relés interfész (I2C) használatával Az MCP-23008 alkalmazása relés interfész (I2C) használatával](https://i.howwhatproduce.com/images/010/image-28375-1-j.webp)
Helló
Üdv.. !!
I (Somanshu Choudhary) a Dcube tech vállalkozások nevében, akik I2C protokollon keresztül irányítják a reléket Arduino nano és MCP23008 használatával.
1. lépés: Áttekintés
![Áttekintés Áttekintés](https://i.howwhatproduce.com/images/010/image-28375-2-j.webp)
- Az MCP23X08 eszköz 8 bites, általános célú, párhuzamos I/O bővítést biztosít az I2C busz vagy SPI alkalmazásokhoz.
- Az MCP23X08 több 8 bites konfigurációs regiszterből áll a bemenet, a kimenet és a polaritás kiválasztásához. A rendszergazda engedélyezheti az I/O -kat bemenetként vagy kimenetként az I/O konfigurációs bitek írásával. Az egyes bemenetek vagy kimenetek adatait a megfelelő bemeneti vagy kimeneti regiszter tárolja. Az Input Port regiszter polaritása megfordítható a Polarity Inversion regiszterrel. A rendszergazda minden regisztert elolvashat.
- ADATLAP LINK:
2. lépés: Amire szüksége van / Linkek
![Amire szüksége van / Linkek Amire szüksége van / Linkek](https://i.howwhatproduce.com/images/010/image-28375-3-j.webp)
1. Arduino Nano LINK:
2. Pajzs Arduino Nano LINK -hez:
3. USB kábel A típus - B típusú Micro 6 láb hosszú
4. I²C kábel LINK:
5. Nyolc SPDT I²C vezérelt relé
6. Adapter LINK:
3. lépés: Áramköri diagram
![Kördiagramm Kördiagramm](https://i.howwhatproduce.com/images/010/image-28375-4-j.webp)
![Kördiagramm Kördiagramm](https://i.howwhatproduce.com/images/010/image-28375-5-j.webp)
4. lépés: Programozás - I
![Programozás - I Programozás - I](https://i.howwhatproduce.com/images/010/image-28375-6-j.webp)
![Programozás - I Programozás - I](https://i.howwhatproduce.com/images/010/image-28375-7-j.webp)
- Ebben a kódban a Function Programming Paradigm -ot használom
- Különböző lapokat használtam a függvények meghatározásához és a függvényhíváshoz
KÓD A TAB q alatt:
// Egyszerű funkció hívó kód
#include void setup ()
{
// Az MCP23008 I2C címe
#define MCP_ADDR 0x20
// Csatlakozzon mesterként az I2C Bus -hoz
Wire.begin ();
// Indítsa el a soros kommunikációt és állítsa be az átviteli sebességet
Sorozat.kezdet (9600);
// Indítsa el az átvitelt az adott eszközzel az I2C buszon
Wire.beginTransmission (MCP_ADDR);
// Válassza ki az IODIR - I/O DIRECTION REGISTER regisztert
Wire.write (0x00);
// Válassza ki a kívánt műveletet (kimenet)
Wire.write (0x00);
// Válassza ki a KONFIGURÁCIÓ regisztert
Wire.write (0x05);
// Válassza ki a kívánt műveletet
Wire.write (0x0E);
// az átvitel befejezése
Wire.endTransmission ();
}
üres hurok ()
{
a1_on ();
késleltetés (1000);
a1_off ();
késleltetés (1000);
a2_on ();
késleltetés (1000);
a2_off ();
késleltetés (1000);
a3_on ();
késleltetés (1000);
a3_off ();
késleltetés (1000);
a4_on ();
késleltetés (1000);
a4_off ();
késleltetés (1000);
a5_on ();
késleltetés (1000);
a5_off ();
késleltetés (1000);
a6_on ();
késleltetés (1000);
a6_off ();
késleltetés (1000);
a7_on ();
késleltetés (1000);
a7_off ();
késleltetés (1000);
a8_on ();
késleltetés (1000);
a8_off ();
}
KÓD A TAB q1 alatt:
// Ez a kód az 1 -es relé be- és kikapcsolására szolgál
void a1_on () {
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
void a1_off ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
KÓD A TAB q2 alatt:
// Ez a kód a fedélzeti 2 -es relé be- és kikapcsolására szolgál
void a2_on () {
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
void a2_off ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
KÓD A TAB q3 alatt: // Ez a kód a 3 -as relé be- és kikapcsolására szolgál
void a3_on ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
void a3_off ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
5. lépés: Programozás - II
![Programozás - II Programozás - II](https://i.howwhatproduce.com/images/010/image-28375-8-j.webp)
KÓD A TAB q4 alatt:
// Ez a kód a fedélzeti 4 -es relé be- és kikapcsolására szolgál
void a4_on ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
void a4_off ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
KÓD A TAB q5 alatt:
// Ez a kód a fedélzeti 5 -ös relé be- és kikapcsolására szolgál
void a5_on ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
void a5_off ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
KÓD A TAB q6 alatt: // Ez a kód a 6 -os relé be- és kikapcsolására szolgál
void a6_on ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
void a6_off ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
KÓD A TAB q7 alatt: // Ez a kód a fedélzeti 7 -es relé be- és kikapcsolására szolgál
void a7_on () {
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
void a7_off ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
KÓD A TAB q8 alatt: // Ez a kód a fedélzeti 8 -as relé be- és kikapcsolására szolgál
void a8_on () {
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
void a8_off ()
{
// Indítsa el az átvitelt
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
késleltetés (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Kimenet a képernyőre
Serial.print ("GPIO érték:");
Serial.println (GPIO, BIN);
}
6. lépés: Videó
További kérdéseivel keressen bátran weboldalunkon:
www.dcubetechnologies.com
Ajánlott:
Páratartalom, nyomás és hőmérséklet számítása BME280 és foton interfész használatával: 6 lépés
![Páratartalom, nyomás és hőmérséklet számítása BME280 és foton interfész használatával: 6 lépés Páratartalom, nyomás és hőmérséklet számítása BME280 és foton interfész használatával: 6 lépés](https://i.howwhatproduce.com/images/003/image-6140-j.webp)
Páratartalom, nyomás és hőmérséklet számítása BME280 és foton interfész használatával: Számos olyan projekttel találkozunk, amelyek hőmérséklet-, nyomás- és páratartalom -ellenőrzést igényelnek. Így rájövünk, hogy ezek a paraméterek valójában létfontosságú szerepet játszanak abban, hogy megbecsüljük a rendszer működési hatékonyságát különböző légköri körülmények között
Ember-számítógép interfész: Funkció a Gripper (készítette: Kirigami) a csuklómozgás segítségével EMG használatával: 7 lépés
![Ember-számítógép interfész: Funkció a Gripper (készítette: Kirigami) a csuklómozgás segítségével EMG használatával: 7 lépés Ember-számítógép interfész: Funkció a Gripper (készítette: Kirigami) a csuklómozgás segítségével EMG használatával: 7 lépés](https://i.howwhatproduce.com/images/007/image-20572-j.webp)
Ember-számítógép interfész: Funkció a Gripper (készítette: Kirigami) a csuklómozgás segítségével EMG használatával: Tehát ez volt az első próbálkozásom az ember-számítógép interfészen. EMG érzékelővel rögzítettem a csuklóm mozgásának izomaktiváló jeleit, feldolgoztam python és arduino segítségével, és egy origami alapú fogót működtetett
Egy kiterjeszthető gomb alkalmazása vibrációs visszajelzéssel: 7 lépés (képekkel)
![Egy kiterjeszthető gomb alkalmazása vibrációs visszajelzéssel: 7 lépés (képekkel) Egy kiterjeszthető gomb alkalmazása vibrációs visszajelzéssel: 7 lépés (képekkel)](https://i.howwhatproduce.com/images/011/image-31665-j.webp)
Egy kibővíthető gomb alkalmazása rezgéssel kapcsolatos visszajelzéssel: Ebben az oktatóanyagban először azt mutatjuk be, hogyan használhatja az Arduino Uno -t egy rezgőmotor vezérléséhez egy kiterjesztett gombbal. A nyomógombokkal kapcsolatos oktatóanyagok többsége magában foglalja a fizikai kenyértábla gombját, míg ebben az oktatóanyagban a gomb
Interfész Több LCD és Arduino Uno között a közös adatvonal használatával: 5 lépés
![Interfész Több LCD és Arduino Uno között a közös adatvonal használatával: 5 lépés Interfész Több LCD és Arduino Uno között a közös adatvonal használatával: 5 lépés](https://i.howwhatproduce.com/images/001/image-1388-41-j.webp)
Interfész több LCD -ről Arduino Uno -ra a Common Data Line használatával: Ma ebben az oktatóanyagban megmutatom, hogyan lehet több 16x2 -es LCD -modult illeszteni egy arduino uno kártyával közös adatvonal használatával. A legérdekesebb ebben a projektben az, hogy közös adatvonalat használ, és különböző adatokat jelenít meg az e
A textúrák alkalmazása az egyes tárgyfelületeken a második életben: 7 lépés
![A textúrák alkalmazása az egyes tárgyfelületeken a második életben: 7 lépés A textúrák alkalmazása az egyes tárgyfelületeken a második életben: 7 lépés](https://i.howwhatproduce.com/images/001/image-2317-63-j.webp)
Hogyan kell textúrákat alkalmazni az egyes objektumfelületeken a Second Life -ban: A Second Life -ban több textúrát is felvihet egyetlen objektumra. A folyamat nagyon egyszerű, és nagymértékben javíthatja az épületek megjelenését