Talaan ng mga Nilalaman:

Paglalapat ng MCP-23008 Paggamit ng Relay Interface (I2C) :: 6 Mga Hakbang
Paglalapat ng MCP-23008 Paggamit ng Relay Interface (I2C) :: 6 Mga Hakbang

Video: Paglalapat ng MCP-23008 Paggamit ng Relay Interface (I2C) :: 6 Mga Hakbang

Video: Paglalapat ng MCP-23008 Paggamit ng Relay Interface (I2C) :: 6 Mga Hakbang
Video: pag lagay ng formica laminate | paano ba mag formica laminate | diy laminate formica tutorial 2024, Nobyembre
Anonim
Paglalapat ng MCP-23008 Paggamit ng Relay Interface (I2C)
Paglalapat ng MCP-23008 Paggamit ng Relay Interface (I2C)

Kamusta

Magandang Pagbati.. !!

Ako (Somanshu Choudhary) sa ngalan ng Dcube tech ventures na pupunta upang makontrol ang Relay sa pamamagitan ng I2C protocol gamit ang Arduino nano at MCP23008.

Hakbang 1: Pangkalahatang-ideya

Pangkalahatang-ideya
Pangkalahatang-ideya
  • Ang aparato ng MCP23X08 ay nagbibigay ng 8-bit, pangkalahatang layunin, kahanay na pagpapalawak ng I / O para sa mga aplikasyon ng I2C bus o SPI.
  • Ang MCP23X08 ay binubuo ng maraming 8-bit na mga rehistro ng pagsasaayos para sa pagpili ng output, output at polarity. Maaaring paganahin ng master ng system ang I / Os bilang alinman sa mga pag-input o output sa pamamagitan ng pagsulat ng mga I / O na bit ng pagsasaayos. Ang data para sa bawat input o output ay itinatago sa kaukulang rehistro ng Input o Output. Ang polarity ng rehistro ng Input Port ay maaaring baligtarin sa rehistro ng Polarity Inversion. Ang lahat ng mga rehistro ay maaaring basahin ng master ng system.
  • LINK ng DATASHEET:

Hakbang 2: Ano ang Kailangan Mo / Mga Link

Ano ang Kailangan / Link
Ano ang Kailangan / Link

1. Arduino Nano LINK:

2. Shield para sa Arduino Nano LINK:

3. USB Cable Type A hanggang Micro Type B 6 Feet Long

4. LINK ng Cable ng IKC:

5. Walong SPDT I²C Mga Kinokontrol na Relay

6. Link ng Adapter:

Hakbang 3: Diagram ng Circuit

Diagram ng Circuit
Diagram ng Circuit
Diagram ng Circuit
Diagram ng Circuit

Hakbang 4: Programming - I

Programming - I
Programming - I
Programming - I
Programming - I
  • Sa code na ito, gumagamit ako ng Function Programming Paradigm
  • Gumamit ako ng iba't ibang mga tab para sa kahulugan ng mga pagpapaandar at pagtawag sa pag-andar

CODE SA ILALIM NG TAB q:

// Simple code sa pagtawag sa pagpapaandar

# isama ang void setup ()

{

// I2C address ng MCP23008

# tukuyin ang MCP_ADDR 0x20

// Sumali sa I2C Bus bilang master

Wire.begin ();

// Simulan ang serial komunikasyon at itakda ang rate ng baud

Serial.begin (9600);

// Simulan ang paghahatid gamit ang naibigay na aparato sa I2C bus

Wire.beginTransmission (MCP_ADDR);

// Select IODIR - I / O DIRECTION REGISTER magparehistro

Wire.write (0x00);

// Piliin ang kinakailangang operasyon (output)

Wire.write (0x00);

// Piliin ang pagrehistro ng CONFIGURATION

Wire.write (0x05);

// Piliin ang kinakailangang operasyon

Wire.write (0x0E);

// end transmission

Wire.endTransmission ();

}

walang bisa loop ()

{

a1_on ();

pagkaantala (1000);

a1_off ();

pagkaantala (1000);

a2_on ();

pagkaantala (1000);

a2_off ();

pagkaantala (1000);

a3_on ();

pagkaantala (1000);

a3_off ();

pagkaantala (1000);

a4_on ();

pagkaantala (1000);

a4_off ();

pagkaantala (1000);

a5_on ();

pagkaantala (1000);

a5_off ();

pagkaantala (1000);

a6_on ();

pagkaantala (1000);

a6_off ();

pagkaantala (1000);

a7_on ();

pagkaantala (1000);

a7_off ();

pagkaantala (1000);

a8_on ();

pagkaantala (1000);

a8_off ();

}

CODE SA ILALIM NG TAB q1:

// Ang code na ito ay nasa at off ang relay 1 sa board

walang bisa a1_on () {

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

walang bisa a1_off ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

CODE SA ILALIM NG TAB q2:

// Ang code na ito ay nasa at off relay 2 sa board

walang bisa a2_on () {

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

walang bisa a2_off ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

CODE UNDER TAB q3: // Ang code na ito ay nasa at off relay 3 sa board

walang bisa a3_on ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

walang bisa a3_off ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

Hakbang 5: Programming - II

Programming - II
Programming - II

CODE SA ILALIM NG TAB q4:

// Ang code na ito ay upang on at off ang relay 4 sa board

walang bisa a4_on ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

walang bisa a4_off ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

CODE SA ILALIM NG TAB q5:

// Ang code na ito ay nasa at off relay 5 sa board

walang bisa a5_on ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

walang bisa a5_off ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

CODE UNDER TAB q6: // Ang code na ito ay nasa at off relay 6 sa board

walang bisa a6_on ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

walang bisa a6_off ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

CODE UNDER TAB q7: // Ang code na ito ay nasa at off relay 7 sa board

walang bisa a7_on () {

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

walang bisa a7_off ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

CODE UNDER TAB q8: // Ang code na ito ay nasa at off relay 8 sa board

walang bisa a8_on () {

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

walang bisa a8_off ()

{

// Simulan ang paghahatid

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

pagkaantala (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Output sa screen

Serial.print ("Halaga ng GPIO:");

Serial.println (GPIO, BIN);

}

Hakbang 6: Video

Para sa karagdagang quires Huwag mag-atubiling bisitahin ang aming site:

www.dcubetechnologies.com

Inirerekumendang: