Indholdsfortegnelse:

I2C Relæ Met Arduino IDE: 5 trin
I2C Relæ Met Arduino IDE: 5 trin

Video: I2C Relæ Met Arduino IDE: 5 trin

Video: I2C Relæ Met Arduino IDE: 5 trin
Video: Как сделать ПЛК LDmicro Arduino с ЖК-дисплеем I2C 2024, Juni
Anonim
I2C relæ med Arduino IDE
I2C relæ med Arduino IDE

Jeg bestiller et flot relayboard, men der var ingen ArduinoIDE instruktion, bare Raspberry Pi e.o. Jeg finder ud af, hvordan jeg bruger det med Arduino og vil dele det, så du kan spare den tid.

Originalt RaspberryPi -eksempel:

wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099

Det fine er, at du kan stable op til 4 brædder. Så du kan bruge max. 4 x 4 = 16 relæer på en I2C bus.

Der er også nogle ulemper:

  • små terminaler, passer ikke til 1 mm2 ledning
  • du kan ikke ændre ledningerne til bundstikkene, når de er stablet sammen

Men stadig praktiske tavler.

Trin 1: Kabelføring

Kabelføring
Kabelføring
Kabelføring
Kabelføring
Kabelføring
Kabelføring

På billederne kan du se kabelføring.

52Pi har brug for både 5V (til relæer) og 3.3V (I2C -chip).

Så 5 ledninger er nødvendige:

  • GND til GND
  • 5 V til 5 V
  • 3,3 V til 3,3 V
  • SLA til SLA
  • SCL til SCL

Hvis du bruger en Arduino UNO eller anden 5 V, skal du være opmærksom på maks. 3, 6 V fra I2C -controlleren! Brug modstande eller andet til at sænke 5 V ud af Arduino PIN'erne!

Trin 2: Eksempel på enkel kode:

/* Arduino IDE (ESP) eksempel til I2C relaisboard.

* Af Laurens Korste www.boktorrobotica.nl * gratis at bruge. */ #include // for I2C -kommunikation tomrumsopsætning () {// denne regel ikke for UNO eller boards med dedikerede I2C -pins Wire.begin (D1, D2); // slutte sig til i2c -bus med SDA = D1 og SCL = D2 for NodeMCU} void loop () {Wire.beginTransmission (0x10);/ * begynde at sende til I2C adresse 10 (for også at ændre til 11, 12 eller 13) */ Wire.skrive (0x01); / * choice relais 1 (ud af 4) om bord 10 (også 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* indstil relæer 1 om bord 10 til ON. alle tal> 0 gør det */ Wire.endTransmission (); / * stop med at sende */ forsinkelse (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * indstil relæer 1 om bord 10 til FRA */ Wire.endTransmission (); / * stop med at sende */ forsinkelse (3000); }

Trin 3: Fire relæ testkode

/* skitse af Laurens Korste til Arduino (ESP / NodeMCU)

* Men andre tavler vil også gøre * www.boktorrobotica.nl * I denne tast vil alle de 4 relæer blive aktiveret og deaktiveret */ #include // for I2C -kommunikation tomrumsopsætning () {Serial.begin (115200); // begynde seriel til fejlfinding (9600 for UNO) Wire.begin (D1, D2); // slutte sig til i2c -bus med SDA = D1 og SCL = D2 i NodeMCU ikke behov for UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // begynd med enhedsadresse Wire.write (i); // vælge relais Wire.write (0xFF); // send "on" -koden FF (hver tælling fra 01 til FF vil gøre) Wire.endTransmission (); // stop med at sende Serial.write (i); Serial.println ("aan"); forsinkelse (1000); Wire.beginTransmission (0x10); // begynd med enhedsadresse Wire.write (i); Wire.write (0x00); // Send "off" -koden Wire.endTransmission (); // stop med at sende Serial.write (i); Serial.println ("uit"); forsinkelse (1000); }}

Trin 4: Mit projekt

Mit projekt
Mit projekt
Mit projekt
Mit projekt

Jeg har skrevet en kode til at betjene mine 3 skodder. Dette kan gøres med kontakter, men også med BLYNK -appen, se billede.

  • Et kort tryk begynder at flytte en lukker (eller stopper den, når den bevæger sig).
  • Et langt tryk og alle tre skodder åbnes (eller lukkes eller stoppes).
  • Dobbelt tryk: skodderne går til positionen "huller".

Som det kan ses på billedet, har jeg også integreret en temperatur- og lyssensor.

Nu alt på en god bundplade og pænt i en æske.

Trin 5: Ring til et relæ med en kommando

Det er nyttigt, hvis du kun har brug for en kommando for at aktivere eller deaktivere et relæ. Nedenfor er en funktion, der kan gøre dette (med lowbyte og highbyte).

/ * skitse af Laurens Korste til Arduino (ESP/NodeMCU) med I2C relæbord * Men andre tavler vil også gøre * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * I denne skitse aktiveres relæet ved ét opkald; * // #include // for I2C-kommunikation // Relays declaratie. 4 printkort pr. printkort 4 relæer mulige. I denne skitse flettes kun to PCB // PCB og relæer, så de kan kaldes med en kommando const byte PutOn = 0xFF; // kommando for at tænde const byte PutOff = 0x00; // comand for at slukke const word Relay1bord1 = 0x1001; // du kan tilføje navnene ved eksempel Relay1 const word Relay2bord1 = 0x1002; // du kan tilføje navnene efter eksempel Relay2 const word Relay3bord1 = 0x1003; // du kan tilføje navnene efter eksempel Relay3 const word Relay4bord1 = 0x1004; // du kan tilføje navnene ved eksempel Relay4 const word Relay1bord2 = 0x1101; // du kan tilføje navnene ved eksempel Relay5 const w ord Relæ2bord2 = 0x1102; // du kan tilføje navnene ved eksempel Relay6 const word Relay3bord2 = 0x1103; // du kan tilføje navnene ved eksempel Relay7 const word Relay4bord2 = 0x1104; // du kan tilføje navnene ved eksempel Relay8 const word Relay1bord3 = 0x1201; // du kan tilføje navnene ved eksempel Relay9 const word Relay2bord4 = 0x1302; // du kan tilføje navnene ved eksempel Relay14 void setup () {Serial.begin (115200); // begynde seriel til fejlfinding (9600 for UNO) Wire.begin (D1, D2); // slutte sig til i2c -bus med SDA = D1 og SCL = D2 i NodeMCU ikke behov for UNO} void loop () {// for at skifte relæ 4 på PCB 2 på RelayActie (Relay4bord2, PutOn); forsinkelse (1000); // for at slå relæ 4 til PCB 2 fra RelayActie (Relay4bord2, PutOff); forsinkelse (1000); } void RelayActie (word Relay, byte OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (relæ)); Wire.write (OnOrOff); Wire.endTransmission (); }

Anbefalede: