Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
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
- 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
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
Hakbang 4: 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
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