Πίνακας περιεχομένων:

I2C Relay Met Arduino IDE: 5 βήματα
I2C Relay Met Arduino IDE: 5 βήματα

Βίντεο: I2C Relay Met Arduino IDE: 5 βήματα

Βίντεο: I2C Relay Met Arduino IDE: 5 βήματα
Βίντεο: ESp8266 + I2C LCD + microPython + API calls = Renewables on grid 2024, Ιούλιος
Anonim
I2C Relay Met Arduino IDE
I2C Relay Met Arduino IDE

Παραγγέλνω ένα ωραίο relayboard αλλά δεν υπήρχε οδηγία ArduinoIDE, απλά Raspberry Pi e.o. Ανακαλύπτω πώς να το χρησιμοποιήσω με το Arduino και θέλω να το μοιραστώ για να εξοικονομήσετε χρόνο.

Αρχικό παράδειγμα RaspberryPi:

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

Το ωραίο είναι ότι μπορείτε να στοιβάζετε έως και 4 σανίδες. Μπορείτε λοιπόν να χρησιμοποιήσετε το max. 4 x 4 = 16 ρελέ σε ένα δίαυλο I2C.

Υπάρχουν επίσης κάποια μειονεκτήματα:

  • μικρά τερματικά, δεν ταιριάζουν με σύρμα 1 mm2
  • δεν μπορείτε να αλλάξετε την καλωδίωση των κάτω συνδέσμων όταν είναι στοιβαγμένα μεταξύ τους

Αλλά ακόμα βολικό ταμπλό.

Βήμα 1: Σύρμα

Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση

Στις εικόνες μπορείτε να δείτε το σύρμα.

Το 52Pi χρειάζεται και τα 5V (για ρελέ) και 3,3V (τσιπ I2C).

Άρα χρειάζονται 5 καλώδια:

  • GND σε GND
  • 5 V έως 5 V
  • 3,3 V έως 3,3 V
  • SLA σε SLA
  • SCL σε SCL

Εάν χρησιμοποιείτε Arduino UNO ή άλλα 5 V, να είστε από τα μέγιστα 3, 6 V από το χειριστήριο I2C! Χρησιμοποιήστε αντιστάσεις ή αλλιώς για να χαμηλώσετε τα 5 V από τα PIN του Arduino!

Βήμα 2: Παράδειγμα απλού κώδικα:

/* Παράδειγμα Arduino IDE (ESP) για relaisboard I2C.

* By Laurens Korste www.boktorrobotica.nl * δωρεάν για χρήση. */ #include // για ρύθμιση κενών επικοινωνίας I2C () {// αυτός ο κανόνας δεν είναι για UNO ή πίνακες με ειδικές ακίδες I2C Wire.begin (D1, D2). // συνδέστε το δίαυλο i2c με SDA = D1 και SCL = D2 για NodeMCU} void loop () {Wire.beginTransmission (0x10);/ * ξεκινήστε τη μετάδοση στη διεύθυνση I2C 10 (για αλλαγή επίσης σε 11, 12 ή 13) */ Wire. γράψτε (0x01); / * επιλογή relais 1 (από 4) στο πλοίο 10 (επίσης 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* ρυθμίστε το relais 1 στο πλοίο 10 σε ON. όλοι οι αριθμοί> 0 θα το κάνουν */ Wire.endTransmission (); / * διακοπή μετάδοσης */ καθυστέρηση (3000). Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * ορίστε το relais 1 επί του σκάφους 10 σε OFF */ Wire.endTransmission (); / * διακοπή μετάδοσης */ καθυστέρηση (3000). }

Βήμα 3: Κωδικός δοκιμής τεσσάρων ρελέ

/* σκίτσο της Laurens Korste για το Arduino (ESP / NodeMCU)

* Αλλά και άλλοι πίνακες θα κάνουν επίσης * www.boktorrobotica.nl * Σε αυτό το skeych al οι ρελέ 4 θα ενεργοποιηθούν με απενεργοποίηση */ #include // για εγκατάσταση κενών επικοινωνίας I2C () {Serial.begin (115200); // έναρξη σειρών για εντοπισμό σφαλμάτων (9600 για UNO) Wire.begin (D1, D2). // σύνδεση i2c bus με SDA = D1 και SCL = D2 του NodeMCU δεν χρειάζεται UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // ξεκινήστε με τη διεύθυνση συσκευής Wire.write (i); // επιλογή του relais Wire.write (0xFF); // στείλτε τον κωδικό "on" FF (κάθε μέτρηση από 01 έως FF θα κάνει) Wire.endTransmission (); // διακοπή μετάδοσης Serial.write (i); Serial.println ("aan"); καθυστέρηση (1000)? Wire.beginTransmission (0x10); // ξεκινήστε με τη διεύθυνση συσκευής Wire.write (i); Wire.write (0x00); // Αποστολή του κωδικού "off" Wire.endTransmission (); // διακοπή μετάδοσης Serial.write (i); Serial.println ("uit"); καθυστέρηση (1000)? }}

Βήμα 4: Το έργο μου

Το προτζεκτ μου
Το προτζεκτ μου
Το προτζεκτ μου
Το προτζεκτ μου

Έχω γράψει έναν κωδικό για να λειτουργήσω τα 3 παντζούρια μου. Αυτό μπορεί να γίνει με διακόπτες, αλλά και με την εφαρμογή BLYNK, Δείτε την εικόνα.

  • Ένα σύντομο πάτημα θα ξεκινήσει να κινεί ένα κλείστρο (ή θα το σταματήσει όταν κινείται).
  • Ένα μακρύ πάτημα και τα τρία παντζούρια ανοίγουν (ή κλείνουν ή σταματούν).
  • Διπλή πίεση: τα ρολά πηγαίνουν στη θέση "οπών".

Όπως φαίνεται στην εικόνα, ενσωμάτωσα επίσης έναν αισθητήρα θερμοκρασίας και φωτός.

Τώρα όλα σε καλή βάση PCB και τακτοποιημένα σε κουτί.

Βήμα 5: Καλέστε ένα ρελέ με μία εντολή

Είναι χρήσιμο εάν χρειάζεστε μόνο μία εντολή για να ενεργοποιήσετε ή να απενεργοποιήσετε ένα ρελέ. Παρακάτω είναι μια λειτουργία που μπορεί να το κάνει αυτό (με lowbyte και highbyte).

/ * σκίτσο της Laurens Korste για Arduino (ESP/NodeMCU) με relaysboard I2C * Αλλά και άλλοι πίνακες θα κάνουν επίσης * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Σε αυτό το σκίτσο, το ρελέ θα ενεργοποιηθεί με μία κλήση. 4 ρελέ. Σε αυτό το σκίτσο μόνο δύο PCB // PCB και ρελέ συγχωνεύονται έτσι ώστε να μπορούν να κληθούν με μία εντολή const byte PutOn = 0xFF; // εντολή για ενεργοποίηση const byte PutOff = 0x00; // comand για απενεργοποίηση const λέξη Relay1bord1 = 0x1001; // μπορείτε να τυχαίνετε τα ονόματα με παράδειγμα Relay1 const λέξη Relay2bord1 = 0x1002; // μπορείτε να τυχαίνετε τα ονόματα με το παράδειγμα Relay2 const λέξη Relay3bord1 = 0x1003; // μπορείτε να τυχαία τα ονόματα με παράδειγμα Relay3 const λέξη Relay4bord1 = 0x1004; // μπορείτε να πιθανοποιήσετε τα ονόματα με παράδειγμα Relay4 const λέξη Relay1bord2 = 0x1101; // μπορείτε να τυχαία τα ονόματα με παράδειγμα Relay5 const w ord Relay2bord2 = 0x1102; // μπορείτε να τυχαία τα ονόματα με παράδειγμα Relay6 const λέξη Relay3bord2 = 0x1103; // μπορείτε να τυχαία τα ονόματα με παράδειγμα Relay7 const λέξη Relay4bord2 = 0x1104; // μπορείτε να τυχαία τα ονόματα με παράδειγμα Relay8 const λέξη Relay1bord3 = 0x1201; // μπορείτε να τυχαία τα ονόματα με παράδειγμα Relay9 const λέξη Relay2bord4 = 0x1302; // μπορείτε να τυχαία τα ονόματα με παράδειγμα Relay14 void setup () {Serial.begin (115200); // έναρξη σειρών για εντοπισμό σφαλμάτων (9600 για UNO) Wire.begin (D1, D2). // σύνδεση i2c bus με SDA = D1 και SCL = D2 του NodeMCU δεν χρειάζεται UNO} void loop () {// για εναλλαγή ρελέ 4 στο PCB 2 στο RelayActie (Relay4bord2, PutOn); καθυστέρηση (1000)? // για να απενεργοποιήσετε το ρελέ 4 στο PCB 2 εκτός RelayActie (Relay4bord2, PutOff). καθυστέρηση (1000)? } void RelayActie (λέξη Relay, byte OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (Relay)); Wire.write (OnOrOff); Wire.endTransmission (); }

Συνιστάται: