Στην Progressive Automations, προσφέρουμε πολλές επιλογές για τον έλεγχο του γραμμικού ενεργοποιητή σας. Από απλές λύσεις όπως διακόπτες rocker, μέχρι τους πιο προηγμένους ελεγκτές μας όπως η μονάδα ελέγχου PA‑35 Wi‑Fi, διαθέτουμε πολλές επιλογές plug‑and‑play. Ωστόσο, μερικές φορές οι απαιτήσεις του έργου και οι ανάγκες των πελατών είναι λίγο πιο ιδιαίτερες από αυτά που μπορούν να προσφέρουν οι παραπάνω επιλογές. Εκεί είναι που οι μικροελεγκτές μπορούν πραγματικά να μας φανούν χρήσιμοι. Σε αυτό το άρθρο, θα δούμε πώς μπορούμε να αλλάξουμε τη θέση ενός ενεργοποιητή με βάση την ποσότητα φωτός που υπάρχει, προσφέροντάς σας μια μοναδική και προηγμένη μορφή ελέγχου γραμμικού ενεργοποιητή.
Τι θα χρειαστείτε;
Ό,τι χρειαζόμαστε για αυτό το έργο είναι ένα Arduino (στην περίπτωσή μας ένα Arduino Uno), ένας φωτοαντιστάτης (γνωστός και ως photoresistor ή LDR), μία αντίσταση 10k ohm, ένα 2‑καναλο ρελέ module και, φυσικά, ένας ενεργοποιητής.
Επιλογή του Γραμμικού σας Ενεργοποιητή
Σε πολλές περιπτώσεις, θα χρησιμοποιήσουμε αυτόν τον τύπο εναύσματος για εφαρμογές εξωτερικού χώρου, όπως έναν ηλιακά τροφοδοτούμενο ενεργοποιητή πόρτας κοτετσιού. Πρέπει να λάβετε υπόψη σε τι είδους περιβάλλον θα λειτουργεί ο ενεργοποιητής σας και να βεβαιωθείτε ότι διαθέτει τον σωστό Βαθμό προστασίας IP. Για να βοηθήσουμε σε αυτό, μπορείτε να βρείτε τον οδηγό μας για τους βαθμούς IP εδώ. Πρέπει επίσης να βεβαιωθούμε ότι θα βρείτε το σωστό μήκος Διαδρομής και την ονομαστική δύναμη για τον ενεργοποιητή σας. Για βοήθεια, μπορείτε να ανατρέξετε σε μία από τις πολλές αναρτήσεις μας εδώ. Ουσιαστικά, ο τύπος ενεργοποιητή που θα χρησιμοποιήσετε εξαρτάται πλήρως από την εφαρμογή σας και τη σκληρότητα του περιβάλλοντος στο οποίο βρίσκεστε.
Καλωδίωση

Η καλωδίωση για αυτό το έργο ηλιακά τροφοδοτούμενου ενεργοποιητή είναι η εξής:
LDR προς Arduino
- LDR ακροδέκτης 1 – Γείωση
- LDR ακροδέκτης 2 – 5V (μέσω αντίστασης 10k)
- LDR ακροδέκτης 2 – Αναλογική είσοδος 0
Module ρελέ προς Arduino
- VCC – 5V
- GND – GND
- IN1 – Pin 2
- IN2 – Pin 3
Module ρελέ προς τροφοδοσία και Ενεργοποιητή
- +12V στο NC1 (κανονικά κλειστός ακροδέκτης στο πρώτο ρελέ)
- -12V στο NO1 (κανονικά ανοικτός ακροδέκτης στο πρώτο ρελέ)
- NC1 προς NC2
- NO1 προς NO2
- COMMON1 προς Αγωγό Ενεργοποιητή 1
- COMMON2 προς Αγωγό Ενεργοποιητή 2
Χρησιμοποιώντας ένα 2‑καναλο module ρελέ, οι παραπάνω οδηγίες περιγράφουν πώς θα καλωδιώσετε αυτό το έργο. Πρόκειται για μια πολύ απλή διάταξη που είναι εύκολο να προγραμματιστεί, αλλά έχει και περιορισμούς. Αν θέλετε να προσθέσετε λειτουργίες όπως έλεγχο Ταχύτητας ή Ανάδραση δύναμης, ίσως θελήσετε να εξετάσετε τη χρήση του MegaMoto motor driver shield αντί για ρελέ. Περισσότερες πληροφορίες εδώ.
Προγραμματισμός του ηλιακά τροφοδοτούμενου ενεργοποιητή σας
Η λειτουργικότητα του παρεχόμενου κώδικα είναι όσο το δυνατόν πιο απλή. Όταν υπάρχει φως, ο ενεργοποιητής θα ανασύρεται. Όταν είναι σκοτεινά, ο ενεργοποιητής θα εκτείνεται. Για να αποτραπεί η ακούσια ενεργοποίηση του ενεργοποιητή (αν κάποιος περάσει και μπλοκάρει το φως ή αν ο αισθητήρας «δει» μια λάμψη), η αλλαγή από σκοτάδι σε φως (ή από φως σε σκοτάδι) πρέπει να διαρκεί τουλάχιστον τριάντα δευτερόλεπτα. Αυτή η καθυστέρηση μπορεί εύκολα να αλλάξει τροποποιώντας την τιμή του “const int triggerDelay”.
Η ποσότητα του παρόντος φωτός καθορίζεται διαβάζοντας την τάση που οδηγείται στην αναλογική είσοδο 0. Όσο περισσότερο φως, τόσο μικρότερη η αντίσταση του φωτοαντιστάτη μας. Καθώς χρησιμοποιούμε pull‑up αντίσταση, αυτό σημαίνει ότι η τάση θα μειώνεται όσο το περιβάλλον φωτίζει. Το Arduino το διαβάζει ως τιμή μεταξύ 0 και 1028. Αν θέλετε να αλλάξετε την τιμή στην οποία θα αλλάζει κατάσταση ο ενεργοποιητής, απλά αλλάξτε την τιμή του “const int threshold” (προεπιλογή 650).
Αυτός ο κώδικας θα εξυπηρετήσει τον σκοπό του ως έχει, αλλά το ωραίο με τέτοια έργα είναι ότι υπάρχει πάντα περιθώριο βελτίωσης. Νιώστε ελεύθεροι να τον τροποποιήσετε ώστε να ταιριάζει καλύτερα στη δική σας εφαρμογή ηλιακά τροφοδοτούμενου γραμμικού ενεργοποιητή! Μερικά παραδείγματα πρόσθετων λειτουργιών που θα μπορούσαν να προστεθούν: χρονικό όριο (timeout) ώστε να αποτρέπεται η συνέχιση της κίνησης αν δεν φτάσει τον τερματικό διακόπτη σε συγκεκριμένο χρόνο· ανίχνευση σύγκρουσης μέσω παρακολούθησης κατανάλωσης Ρεύματος (θα απαιτούσε οδηγό MegaMoto αντί για ρελέ)· ή μια λειτουργία που θα επιτρέπει τη ρύθμιση του ενεργοποιητή σε διάφορες θέσεις βάσει της ποσότητας φωτός (όχι μόνο τελείως πάνω ή τελείως κάτω).
/*Ο εξοπλισμός που απαιτείται για αυτό το έργο είναι ένα Arduino, ένας φωτοαντιστάτης (LDR), μία αντίσταση 10K και ένα ρελέ 5V με 2 κανάλια.
Σκοπός του είναι να ελέγχει την επέκταση και την ανάσυρση ενός ενεργοποιητή με βάση την ποσότητα φωτός που υπάρχει.
Γράφτηκε από την Progressive Automations 12/02/2020
*/
#define relay1 2 //ρελέ που χρησιμοποιείται για την επέκταση του ενεργοποιητή
#define relay2 3 //ρελέ που χρησιμοποιείται για την ανάσυρση του ενεργοποιητή
int ldr; //αναλογική μέτρηση από φωτοαντιστάτη
int countOpen = 0;//μετρά πόσο χρόνο ο αισθητήρας δεν λαμβάνει φως
int countClose = 0;//μετρά πόσο χρόνο ο αισθητήρας λαμβάνει φως
const int triggerDelay = 3000;//αριθμός δευτερολέπτων x 100 αναμονής μετά την αλλαγή φωτισμού πριν την ενεργοποίηση του ενεργοποιητή
const int threshold = 650;//
void setup() {
Serial.begin(9600);
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
}
void loop() {
checkSensor();
}
void checkSensor()
{
ldr = analogRead(0);
Serial.println(ldr);
if(ldr > threshold)//αν η μέτρηση είναι μεγαλύτερη από το όριο, ξεκίνα μέτρηση
{
countOpen++;//μέτρα πόσο χρόνο ο αισθητήρας δεν λαμβάνει φως
delay(10);
}
else
{
countOpen = 0;//μηδένισε τη μέτρηση αν η συνθήκη δεν ισχύει
}
if(countOpen > triggerDelay)// περίμενε x δευτερόλεπτα πριν την ενεργοποίηση του ενεργοποιητή
{
extend();//επέκταση ενεργοποιητή
}
if(ldr < threshold)//αν η μέτρηση είναι μικρότερη από το όριο, ξεκίνα μέτρηση
{
countClose++;//μέτρα πόσο χρόνο ο αισθητήρας λαμβάνει φως
delay(10);
}
else
{
countClose = 0;
}
if(countClose > triggerDelay)// περίμενε x δευτερόλεπτα πριν την ενεργοποίηση του ενεργοποιητή
{
retract();
}
}
void extend()
{
digitalWrite(relay1,LOW);
digitalWrite(relay2,HIGH);
}
void retract()
{
digitalWrite(relay2,LOW);
digitalWrite(relay1,HIGH);
}
Συμπέρασμα
Λοιπόν, αυτό ήταν! Η μεθοδολογία μας για τη χρήση αισθητήρα φωτός με γραμμικό ενεργοποιητή, ώστε να ελέγχετε τον ενεργοποιητή σας με ηλιακή ενέργεια. Γνωρίζουμε ότι δεν είναι όλες οι εφαρμογές ίδιες, οπότε μπορεί να έχετε απορίες ή αλλαγές που θέλετε να συζητήσετε με την ομάδα των μηχανικών μας. Κανένα πρόβλημα – στείλτε μας email στο sales@progressiveautomations.com, ή καλέστε μας δωρεάν στο 1‑800‑676‑6123.