Talaan ng mga Nilalaman:
- Hakbang 1: Pangkalahatang-ideya
- Hakbang 2: Ano ang Kailangan Mo / Mga Link
- Hakbang 3: Diagram ng Circuit
- Hakbang 4: Programming - I
- Hakbang 5: Programming - II
- Hakbang 6: Video
Video: Paglalapat ng MCP-23008 Paggamit ng Relay Interface (I2C) :: 6 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
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
Inirerekumendang:
Pagsisimula Sa I2C Sensor Interface ?? - I-interface ang Iyong MMA8451 Paggamit ng mga ESP32: 8 Mga Hakbang
Pagsisimula Sa I2C Sensor Interface ?? - I-interface ang Iyong MMA8451 Paggamit ng ESP32s: Sa tutorial na ito, malalaman mo ang lahat tungkol sa Paano magsimula, kumonekta at makakuha ng I2C device (Accelerometer) na gumagana sa controller (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
SCARA Robot: Pag-aaral Tungkol sa Foward at Inverse Kinematics !!! (Plot Twist Alamin Kung Paano Gumawa ng Tunay na Oras ng Interface sa ARDUINO Paggamit ng PROSESYON !!!!): 5 Mga Hakbang (na may Mga Larawan)
SCARA Robot: Pag-aaral Tungkol sa Foward at Inverse Kinematics !!! (Plot Twist Alamin Kung Paano Gumawa ng Tunay na Oras ng Interface sa ARDUINO Paggamit ng PROSESYON !!!!): Ang isang SCARA robot ay isang tanyag na makina sa mundo ng industriya. Ang pangalan ay kumakatawan sa parehong Selective Compliant Assembly Robot Arm o Selective Compliant Articulated Robot Arm. Karaniwan ito ay isang tatlong degree na robot ng kalayaan, ang unang dalawang displ
Mag-interface ng Maramihang LCD sa Arduino Uno Paggamit ng Karaniwang Linya ng Data: 5 Mga Hakbang
Interface Maramihang LCD sa Arduino Uno Paggamit ng Karaniwang Linya ng Data: Ngayon, sa itinuturo na ito ay ipapakita ko sa iyo kung paano i-interface ang maramihang 16x2 LCD module na may isang arduino uno board gamit ang karaniwang linya ng data. Ang pinaka-kagiliw-giliw na bagay tungkol sa proyektong ito ay, gumagamit ito ng karaniwang linya ng data at nagpapakita ng iba't ibang data sa e
Paano Ligtas na Natatanggal ang Mga Elektronikong Mga Bahagi para sa Muling Paggamit: 9 Mga Hakbang (na may Mga Larawan)
Paano Ligtas na Natapos na Mga Elektronikong Mga Bahagi para sa Muling Paggamit: Kumusta! Ako ay isang electronics nerd, kaya gusto kong maglaro ng iba't ibang mga elektronikong sangkap sa aking mga proyekto. Gayunpaman, maaaring wala akong palaging mga sangkap na kailangan ko upang matapos ko ang aking trabaho. Minsan mas madali itong hilahin ang mga sangkap na kailangan ko mula sa isang lumang elektronikong
Pagdidisenyo ng PCB at Paghiwalay ng Paggamit ng Paggamit lamang ng Libreng Software: 19 Hakbang (na may Mga Larawan)
Pagdidisenyo at Pag-iisa ng PCB Paggamit ng Tanging Libreng Software: Sa Instructable na ito ipapakita ko sa iyo kung paano mag-disenyo at gumawa ng iyong sariling mga PCB, eksklusibong gumagamit ng libreng software na tumatakbo sa Windows pati na rin sa isang Mac. Mga bagay na kailangan mo: computer na may koneksyon sa internet cnc galingan / router, mas tumpak ang pusta