Obsah:

Aplikace MCP-23008 pomocí reléového rozhraní (I2C) :: 6 kroků
Aplikace MCP-23008 pomocí reléového rozhraní (I2C) :: 6 kroků

Video: Aplikace MCP-23008 pomocí reléového rozhraní (I2C) :: 6 kroků

Video: Aplikace MCP-23008 pomocí reléového rozhraní (I2C) :: 6 kroků
Video: LED MATRIX controlled through SPI 2024, Červenec
Anonim
Aplikace MCP-23008 pomocí reléového rozhraní (I2C)
Aplikace MCP-23008 pomocí reléového rozhraní (I2C)

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

Přehled
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

Co potřebujete / odkazy
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í

Kruhový diagram
Kruhový diagram
Kruhový diagram
Kruhový diagram

Krok 4: Programování - I

Programování - I
Programování - I
Programování - I
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

Programování - II
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: