Sadržaj:

Primjena MCP-23008 pomoću relejnog sučelja (I2C) :: 6 koraka
Primjena MCP-23008 pomoću relejnog sučelja (I2C) :: 6 koraka

Video: Primjena MCP-23008 pomoću relejnog sučelja (I2C) :: 6 koraka

Video: Primjena MCP-23008 pomoću relejnog sučelja (I2C) :: 6 koraka
Video: Izazovi u kreiranju - PRIMJENA- Ana Bučević 2024, Novembar
Anonim
Primjena MCP-23008 koristeći relejno sučelje (I2C)
Primjena MCP-23008 koristeći relejno sučelje (I2C)

zdravo

Srdačan pozdrav.. !!

Ja (Somanshu Choudhary) u ime Dcube tech ventures -a idem kontrolirati releje putem I2C protokola koristeći Arduino nano i MCP23008.

Korak 1: Pregled

Pregled
Pregled
  • Uređaj MCP23X08 pruža 8-bitno općenito, paralelno I/O proširenje za I2C sabirnicu ili SPI aplikacije.
  • MCP23X08 se sastoji od više 8-bitnih konfiguracijskih registara za izbor ulaza, izlaza i polariteta. Sistemski master može omogućiti I/O kao ulaze ili izlaze upisivanjem bitova za U/I konfiguraciju. Podaci za svaki ulaz ili izlaz čuvaju se u odgovarajućem ulaznom ili izlaznom registru. Polaritet registra ulaznog porta može se obrnuti registrom za inverziju polariteta. Glavni registar može pročitati sve registre.
  • LINKA SA PODACIMA:

Korak 2: Šta vam treba / Veze

Šta vam treba / Veze
Šta vam treba / Veze

1. Arduino Nano LINK:

2. Štit za Arduino Nano LINK:

3. USB kabel tipa A do mikro tipa B Dugi 6 stopa

4. I²C kabel LINK:

5. Osam upravljanih releja SPDT I²C

6. LINKA adaptera:

Korak 3: Dijagram kola

Dijagram kola
Dijagram kola
Dijagram kola
Dijagram kola

Korak 4: Programiranje - I

Programiranje - I
Programiranje - I
Programiranje - I
Programiranje - I
  • U ovom kodu koristim paradigmu programiranja funkcija
  • Koristio sam različite kartice za definisanje funkcija i pozivanje funkcija

KOD ISPOD KARTICE q:

// Jednostavni pozivni kod funkcije

#include void setup ()

{

// I2C adresa MCP23008

#define MCP_ADDR 0x20

// Pridružite se I2C Bus -u kao master

Wire.begin ();

// Pokretanje serijske komunikacije i postavljanje brzine prijenosa

Serial.begin (9600);

// Pokretanje prijenosa s datim uređajem na I2C sabirnici

Wire.beginTransmission (MCP_ADDR);

// Odaberite registar IODIR - I/O DIRECTION REGISTER

Wire.write (0x00);

// Odabir potrebne operacije (izlaz)

Wire.write (0x00);

// Odaberite registar CONFIGURATION

Wire.write (0x05);

// Odabir potrebne operacije

Wire.write (0x0E);

// prekid prijenosa

Wire.endTransmission ();

}

void loop ()

{

a1_on ();

kašnjenje (1000);

a1_off ();

kašnjenje (1000);

a2_on ();

kašnjenje (1000);

a2_off ();

kašnjenje (1000);

a3_on ();

kašnjenje (1000);

a3_off ();

kašnjenje (1000);

a4_on ();

kašnjenje (1000);

a4_off ();

kašnjenje (1000);

a5_on ();

kašnjenje (1000);

a5_off ();

kašnjenje (1000);

a6_on ();

kašnjenje (1000);

a6_off ();

kašnjenje (1000);

a7_on ();

kašnjenje (1000);

a7_off ();

kašnjenje (1000);

a8_on ();

kašnjenje (1000);

a8_off ();

}

KOD ISPOD KARTICE q1:

// Ovaj kod služi za uključivanje i isključivanje releja 1 na brodu

void a1_on () {

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serijski.println (GPIO, BIN);

}

void a1_off ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serijski.println (GPIO, BIN);

}

KOD ISPOD KARTICE q2:

// Ovaj kod služi za uključivanje i isključivanje releja 2 na brodu

void a2_on () {

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

void a2_off ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

KOD ISPOD KARTICE q3: // Ovaj kod služi za uključivanje i isključivanje releja 3 na brodu

void a3_on ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

void a3_off ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

Korak 5: Programiranje - II

Programiranje - II
Programiranje - II

KOD ISPOD KARTICE q4:

// Ovaj kod služi za uključivanje i isključivanje releja 4 na brodu

void a4_on ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

void a4_off ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serijski.println (GPIO, BIN);

}

KOD ISPOD KARTICE q5:

// Ovaj kod služi za uključivanje i isključivanje releja 5 na brodu

void a5_on ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

void a5_off ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

KOD ISPOD KARTICE q6: // Ovaj kod služi za uključivanje i isključivanje releja 6 na brodu

void a6_on ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serijski.println (GPIO, BIN);

}

void a6_off ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

KOD ISPOD KARTICE q7: // Ovaj kod služi za uključivanje i isključivanje releja 7 na brodu

void a7_on () {

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

void a7_off ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

KOD ISPOD KARTICE q8: // Ovaj kod služi za uključivanje i isključivanje releja 8 na brodu

void a8_on () {

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

void a8_off ()

{

// Započni prijenos

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kašnjenje (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Izlaz na ekran

Serial.print ("GPIO vrijednost:");

Serial.println (GPIO, BIN);

}

Korak 6: Video

Za dodatne upite slobodno posjetite našu web stranicu:

www.dcubetechnologies.com

Preporučuje se: