Stap 9: Arduino en de I2C relais boord
Sluit het bord aan uw Arduino zoals afgebeeld.
Hieronder is een eenvoudige schets voor het gebruik van de I2C Relay Boards.
In deze schets, wordt alleen de "draad" bibliotheek gebruikt. Als gevolg van de gemakkelijke comminucation op de I2C-Bus, alle comms aan de MCP23017 is opgenomen in de schets.
<p>#include <Wire.h> // needed for I2C operation<br></p><p>void setup() { //start I2C communications Wire.begin();</p><p> // Setup relay boards SetupRelays(); }</p><p>void loop() { // put your main code here, to run repeatedly: for (byte relaydata = 0; relaydata <= 255; relaydata = relaydata + 1) { // write data to cards 0 .. 7 relays WriteRelays(0,relaydata); // write data to relay card 0 WriteRelays(1,relaydata); // write data to relay card 1 WriteRelays(2,relaydata); // write data to relay card 2 WriteRelays(3,relaydata); // write data to relay card 3 WriteRelays(4,relaydata); // write data to relay card 4 WriteRelays(5,relaydata); // write data to relay card 5 WriteRelays(6,relaydata); // write data to relay card 6 WriteRelays(7,relaydata); // write data to relay card 7 delay(1000); } }</p><p>//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Begin of MCP routines - no library needed </p><p>//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</p><p>void SetupRelays() { // Setup all possible relay cards (address 0 to 7) for (byte i = 0; i <= 7; i = i + 1) { MCP_Write(i, 0x00, 0b00000000); // set all pins to output MCP_Write(i, 0x12, 0b00000000); // set all outputs to off } }</p><p>void WriteRelays(byte address, byte data) { // Write data to relays // -------------------- MCP_Write(address, 0x12, data); }</p><p>void MCP_Write(byte MCPaddress, byte MCPregister, byte MCPdata) { // I2C write routine // ----------------- MCPaddress = MCPaddress + 0x20; // 0x20 is base address for MCP Wire.beginTransmission(MCPaddress); Wire.write(MCPregister); Wire.write(MCPdata); Wire.endTransmission(); } </p><p>//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</p><p>// End of MCP routines </p><p>//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</p>
Geniet van!