Turinys:

MCP-23008 taikymas naudojant relės sąsają (I2C) :: 6 žingsniai
MCP-23008 taikymas naudojant relės sąsają (I2C) :: 6 žingsniai

Video: MCP-23008 taikymas naudojant relės sąsają (I2C) :: 6 žingsniai

Video: MCP-23008 taikymas naudojant relės sąsają (I2C) :: 6 žingsniai
Video: Danfoss Icon - pažangus grindų šildymo valdymas derantis prie interjero 2024, Liepa
Anonim
MCP-23008 taikymas naudojant relės sąsają (I2C)
MCP-23008 taikymas naudojant relės sąsają (I2C)

Sveiki

Sveiki.. !!

Aš (Somanshu Choudhary) „Dcube“technologijų įmonių vardu, ketinančių valdyti relės per I2C protokolą, naudojant „Arduino nano“ir MCP23008.

1 žingsnis: apžvalga

Apžvalga
Apžvalga
  • MCP23X08 įrenginys suteikia 8 bitų bendrosios paskirties lygiagretų įvesties/išvesties išplėtimą I2C magistralės ar SPI programoms.
  • MCP23X08 sudaro keli 8 bitų konfigūracijos registrai, skirti įėjimui, išėjimui ir poliškumui pasirinkti. Sistemos valdytojas gali įjungti įvestis/išvestis kaip įvestis arba išvestis, rašydamas įvesties/išvesties konfigūracijos bitus. Kiekvienos įvesties ar išvesties duomenys saugomi atitinkamame įvesties arba išvesties registre. Įvesties prievado registro poliškumą galima apversti naudojant poliškumo inversijos registrą. Sistemos meistras gali perskaityti visus registrus.
  • DUOMENŲ LAPO NUORODA:

2 žingsnis: ko jums reikia / nuorodos

Ko jums reikia / Nuorodos
Ko jums reikia / Nuorodos

1. „Arduino Nano“nuoroda:

2. „Arduino Nano LINK“skydas:

3. USB kabelis nuo A tipo iki mikro tipo B 6 pėdų ilgio

4. I²C kabelis LINK:

5. Aštuonios SPDT I²C valdomos relės

6. Adapterio nuoroda:

3 žingsnis: grandinės schema

Grandinės schema
Grandinės schema
Grandinės schema
Grandinės schema

4 žingsnis: programavimas - I

Programavimas - I
Programavimas - I
Programavimas - I
Programavimas - I
  • Šiame kode naudoju funkcijų programavimo paradigmą
  • Funkcijų apibrėžimui ir funkcijų iškvietimui naudoju skirtingus skirtukus

KODAS PAGAL TABELĮ q:

// Paprastos funkcijos skambinimo kodas

#include void setup ()

{

// MCP23008 I2C adresas

#define MCP_ADDR 0x20

// Prisijunkite prie „I2C Bus“kaip pagrindinis

Wire.begin ();

// Pradėkite nuoseklųjį ryšį ir nustatykite duomenų perdavimo spartą

Serial.begin (9600);

// Pradėkite perdavimą naudodami nurodytą įrenginį I2C magistralėje

Wire.beginTransmission (MCP_ADDR);

// Pasirinkite registrą IODIR - I/O DIRECTION REGISTER

Wire.write (0x00);

// Pasirinkite reikiamą operaciją (išvestis)

Wire.write (0x00);

// Pasirinkite CONFIGURATION register

Wire.write (0x05);

// Pasirinkite reikiamą operaciją

Wire.write (0x0E);

// baigti perdavimą

Wire.endTransmission ();

}

tuštumos kilpa ()

{

a1_on ();

vėlavimas (1000);

a1_off ();

vėlavimas (1000);

a2_on ();

vėlavimas (1000);

a2_off ();

vėlavimas (1000);

a3_on ();

vėlavimas (1000);

a3_off ();

vėlavimas (1000);

a4_on ();

vėlavimas (1000);

a4_off ();

vėlavimas (1000);

a5_on ();

vėlavimas (1000);

a5_off ();

vėlavimas (1000);

a6_on ();

vėlavimas (1000);

a6_off ();

vėlavimas (1000);

a7_on ();

vėlavimas (1000);

a7_off ();

vėlavimas (1000);

a8_on ();

vėlavimas (1000);

a8_off ();

}

KODAS PO TAB Q1:

// Šis kodas skirtas įjungti ir išjungti 1 relę laive

void a1_on () {

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

void a1_off ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

KODAS PO TAB q2:

// Šis kodas skirtas įjungti ir išjungti 2 relę laive

void a2_on () {

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

void a2_off ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

KODAS PAGAL TABELĮ q3: // Šis kodas skirtas įjungti ir išjungti 3 relę

void a3_on ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

void a3_off ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

5 žingsnis: programavimas - II

Programavimas - II
Programavimas - II

KODAS PO TAB 4 q:

// Šis kodas skirtas įjungti ir išjungti 4 relę laive

void a4_on ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

void a4_off ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

KODAS PO TAB5 q5:

// Šis kodas skirtas įjungti ir išjungti 5 relę laive

void a5_on ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

void a5_off ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

KODAS PAGAL TABELĮ q6: // Šis kodas skirtas įjungti ir išjungti 6 relę

void a6_on ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

void a6_off ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

KODAS PAGAL TABELĮ q7: // Šis kodas skirtas įjungti ir išjungti 7 relę

void a7_on () {

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

void a7_off ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

KODAS PAGAL TABELĮ q8: // Šis kodas skirtas įjungti ir išjungti 8 relę

void a8_on () {

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

void a8_off ()

{

// Pradėti perdavimą

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

vėlavimas (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Išvestis į ekraną

Serial.print ("GPIO reikšmė:");

Serial.println (GPIO, BIN);

}

6 žingsnis: vaizdo įrašas

Dėl papildomų klausimų nedvejodami apsilankykite mūsų svetainėje:

www.dcubetechnologies.com

Rekomenduojamas: