Inhoudsopgave:
- Stap 1: Bedrading
- Stap 2: Eenvoudig codevoorbeeld:
- Stap 3: Testcode met vier relais
- Stap 4: Mijn project
- Stap 5: Bel een relais met één commando
Video: I2C Relay Met Arduino IDE - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Ik bestel een mooi relaisbord, maar er was geen ArduinoIDE-instructie, alleen Raspberry Pi e.o. Ik ontdek hoe ik het met Arduino kan gebruiken en wil het delen zodat u die tijd kunt besparen.
Origineel RaspberryPi-voorbeeld:
wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099
Leuk is dat je tot 4 planken kunt stapelen. U kunt dus max. 4 x 4 = 16 relais op één I2C bus.
Er zijn ook enkele nadelen:
- kleine eindjes, passen niet op 1 mm2 draad
- u kunt de bedrading van de onderste connectoren niet wijzigen wanneer ze op elkaar zijn gestapeld
Maar nog steeds handige borden.
Stap 1: Bedrading
Op de foto's zie je de bedrading.
De 52Pi heeft zowel 5V (voor relais) als 3.3V (I2C chip) nodig.
Dus 5 draden nodig:
- GND naar GND
- 5 V tot 5 V
- 3,3 V tot 3,3 V
- SLA naar SLA
- SCL naar SCL
Als u een Arduino UNO of een andere 5 V gebruikt, let dan op de max 3, 6 V van de I2C-controller! Gebruik weerstanden of anders om de 5 V uit de Arduino PIN's te verlagen!
Stap 2: Eenvoudig codevoorbeeld:
/* Arduino IDE (ESP) voorbeeld voor I2C relaisboard.
* Door Laurens Korste www.boktorrobotica.nl * gratis te gebruiken. */ #include // for I2C communication void setup() { // deze regel niet voor UNO of boards met speciale I2C-pinnen Wire.begin (D1, D2); // sluit je aan bij de i2c-bus met SDA=D1 en SCL=D2 voor NodeMCU } void loop() { Wire.beginTransmission (0x10);/* begin met verzenden naar I2C-adres 10 (om ook te veranderen in 11, 12 of 13) */ Wire.schrijf (0x01); /* keuze relais 1 (van de 4) aan boord 10 (ook 0x02, 0x03, 0x04) */ Wire.write(0xFF); /* zet relais 1 op board 10 op ON. alle getallen > 0 doen dit */ Wire.endTransmission(); /* stop met zenden */ vertraging (3000); Wire.beginTransmission (0x10); /* */ Draad.schrijven (0x01); Draad.schrijven (0x00); /* zet relais 1 op board 10 op OFF */ Wire.endTransmission(); /* stop met zenden */ vertraging (3000); }
Stap 3: Testcode met vier relais
/* schets door Laurens Korste voor Arduino (ESP / NodeMCU)
* Maar andere boards doen het ook * www.boktorrobotica.nl * In deze skeych worden alle 4 relais geactiveerd en gedeactiveerd */ #include // for I2C communication void setup() { Serial.begin(115200); // begin serieel voor debug (9600 voor UNO) Wire.begin (D1, D2); // join i2c bus met SDA=D1 en SCL=D2 van NodeMCU geen noodzaak voor UNO} void loop() { for (int i=1; i<=4; i++){ Wire.beginTransmission (0x10); // begin met apparaatadres Wire.write(i); // kies het relais Wire.write (0xFF); // stuur de "aan" code FF (elke telling van 01 tot FF is voldoende) Wire.endTransmission(); // stop met het verzenden van Serial.write (i); Serial.println(" aan "); vertraging (1000); Wire.beginTransmission (0x10); // begin met apparaatadres Wire.write(i); Draad.schrijven (0x00); // Stuur de "off" code Wire.endTransmission(); // stop met het verzenden van Serial.write (i); Serieel.println(" uit "); vertraging (1000); } }
Stap 4: Mijn project
Ik heb een code geschreven om mijn 3 rolluiken te bedienen. Dit kan met schakelaars maar ook met de BLYNK app, zie afbeelding.
- Een korte druk op de knop zal een rolluik beginnen te bewegen (of stoppen wanneer het beweegt).
- Eén keer lang indrukken en alle drie de luiken openen (of sluiten of stoppen).
- Dubbele druk: de luiken gaan naar de stand "gaten".
Zoals op de foto te zien is, heb ik ook een temperatuur- en lichtsensor geïntegreerd.
Nu alles op een goede basisprint en netjes in een doos.
Stap 5: Bel een relais met één commando
Het is handig als u slechts één commando nodig heeft om een relais te activeren of deactiveren. Hieronder staat een functie die dit kan (met lowbyte en highbyte).
/* schets door Laurens Korste voor Arduino (ESP / NodeMCU) met I2C relaisbord * Maar andere borden zullen ook doen * href= https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099; www.boktorrobotica.nl * In deze schets wordt het relais geactiveerd door één aanroep; *// #include // voor I2C communicatie // Relais declaratie. 4 PCB's Per PCB 4 relais mogelijk In deze schets zijn slechts twee PCB's // PCB's en relais samengevoegd zodat ze met één commando kunnen worden aangeroepen const byte PutOn=0xFF; //commando om const byte PutOff=0x00; //commando om uit te schakelen const woord Relay1bord1=0x1001; //u kunt de namen bijvoorbeeld wijzigen Relay1 const woord Relay2bord1=0x1002; //u kunt de namen bijvoorbeeld wijzigen Relay2 const woord Relay3bord1=0x1003; //u kunt de namen bijvoorbeeld wijzigen Relay3 const woord Relay4bord1=0x1004; //u kunt de namen bijvoorbeeld veranderen Relay4 const woord Relay1bord2=0x1101; //u kunt de namen bijvoorbeeld veranderen Relay5 const w ord Relay2bord2=0x1102; // je kunt de namen bijvoorbeeld veranderen Relay6 const word Relay3bord2=0x1103; // je kunt de namen bijvoorbeeld veranderen Relay7 const word Relay4bord2=0x1104; // je kunt de namen bijvoorbeeld veranderen Relay8 const word Relay1bord3=0x1201; // je kunt de namen bijvoorbeeld veranderen Relay9 const word Relay2bord4=0x1302; // je kunt de namen bijvoorbeeld veranderen Relay14 void setup () { Serial.begin (115200); // begin serieel voor debug (9600 voor UNO) Wire.begin (D1, D2); // sluit je aan bij de i2c-bus met SDA = D1 en SCL = D2 van NodeMCU, geen UNO nodig } void loop () {// om relais 4 op PCB 2 te schakelen op RelayActie (Relay4bord2, PutOn); vertraging (1000); // om relais 4 op PCB 2 uit te schakelen RelayActie (Relay4bord2, PutOff); vertraging (1000); } void RelayActie(word Relay, byte OnOrOff){ Wire.beginTransmission (highByte(Relay)); Wire.write (lowByte (Relay)); Wire.write (AanOfUit); Wire.endTransmission(); }
Aanbevolen:
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Aan de slag met Stm32 met Arduino IDE: 3 stappen
Aan de slag met Stm32 Arduino IDE gebruiken: STM32 is een vrij krachtig en populair bord dat wordt ondersteund door Arduino IDE. om het te programmeren
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
IoT-portemonnee (slimme portemonnee met Firebeetle ESP32, Arduino IDE en Google Spreadsheet): 13 stappen (met afbeeldingen)
IoT Wallet (slimme portemonnee met Firebeetle ESP32, Arduino IDE en Google Spreadsheet): Eerste prijs in Instructables Pocket-Sized Contest!:DAls je wat geld hebt geïnvesteerd in cryptocurrencies, weet je waarschijnlijk al dat ze zeer volatiel zijn. Ze veranderen van de ene op de andere dag en je weet maar nooit veel 'echt' geld dat je nog in je portemonnee hebt
Character LCD I2c-adapter (I2c-verbindingsvoorbeeld): 12 stappen (met afbeeldingen)
Character LCD I2c-adapter (I2c-verbindingsvoorbeeld): ik ben bezig met een verbindingsschema voor een i2c-adapter voor karakterweergave. Controleer de updates op mijn site. Nu voeg ik ook een bedradingsverbindingsschema toe om de originele bibliotheek te gebruiken, niet mijn gevorkte.LiquidCrystal Arduino-bibliotheek voor de karakter-LCD-displays, gevorkte proje