Obsah:

Aplikácia MCP-23008 pomocou reléového rozhrania (I2C) :: 6 krokov
Aplikácia MCP-23008 pomocou reléového rozhrania (I2C) :: 6 krokov

Video: Aplikácia MCP-23008 pomocou reléového rozhrania (I2C) :: 6 krokov

Video: Aplikácia MCP-23008 pomocou reléového rozhrania (I2C) :: 6 krokov
Video: Mobilná aplikácia Tatra banka – aktivácia 2024, Júl
Anonim
Aplikácia MCP-23008 pomocou reléového rozhrania (I2C)
Aplikácia MCP-23008 pomocou reléového rozhrania (I2C)

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

Prehľad
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

Čo potrebujete / odkazy
Č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

Schéma zapojenia
Schéma zapojenia
Schéma zapojenia
Schéma zapojenia

Krok 4: Programovanie - I

Programovanie - I
Programovanie - I
Programovanie - I
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

Programovanie - II
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: