Πώς να μετρήσετε το επίπεδο φωτός με το Arduino και ένα LDR

  • Ένα LDR είναι μια αντίσταση που μεταβάλλει την τιμή της ανάλογα με το αντιληπτό φως.
  • Η αρχή λειτουργίας ενός LDR βασίζεται στην αγωγιμότητα των ημιαγωγών υλικών.
  • Η βασική ρύθμιση με το Arduino βασίζεται σε ένα διαιρέτη τάσης μεταξύ του LDR και μιας σταθερής αντίστασης.
  • Τα LDR είναι χρήσιμα για τη μέτρηση των τάσεων φωτός, αλλά δεν είναι ακριβή για τη μέτρηση της φωτεινότητας σε lux.

Αισθητήρας φωτός LDR

Αν έχετε αναρωτηθεί ποτέ πώς να μετρήσετε αποτελεσματικά το επίπεδο φωτός σε ένα περιβάλλον με το Arduino, βρίσκεστε στο σωστό μέρος. Σε αυτό το άρθρο, θα εξηγήσουμε βήμα προς βήμα πώς να το κάνετε χρησιμοποιώντας μια φωτοαντίσταση LDR, γνωστή και ως φωτοαντίσταση. Αυτά τα μικρά τεχνολογικά θαύματα είναι ηλεκτρονικά εξαρτήματα ικανά να αλλάζουν την αντίστασή τους ανάλογα με την ποσότητα φωτός που λαμβάνουν, γεγονός που ανοίγει ατελείωτες δυνατότητες για ηλεκτρονικά έργα και έργα αυτοματισμού.

Οι εφαρμογές του αισθητήρα φωτός με το Arduino είναι πολλές: από αυτόματα συστήματα φωτισμού μέχρι ρομπότ που προσανατολίζονται με βάση το φως. Το καλύτερο από όλα, είναι ένα προσιτό και εύκολο στη χρήση εξάρτημα. Εδώ θα σας δώσουμε όλες τις απαραίτητες πληροφορίες ώστε να κατασκευάσετε το δικό σας σύστημα μέτρησης φωτός με το Arduino και να εκμεταλλευτείτε πλήρως τις δυνατότητές του.

Τι είναι το LDR και πώς λειτουργεί;

ένα LDR (Αντίσταση που εξαρτάται από το φως) Είναι μια αντίσταση της οποίας το μέγεθος ποικίλλει ανάλογα με την ποσότητα του φωτός που πέφτει πάνω της. Σε σκοτεινές συνθήκες, η αντίσταση είναι πολύ υψηλή, φτάνοντας τιμές έως και 1 MOhm. Αντίθετα, όταν το LDR δέχεται άφθονο φως, η αντίσταση μειώνεται σημαντικά, φτάνοντας σε τιμές μεταξύ 50 και 100 Ohm υπό έντονο φως.

Η λειτουργία του βασίζεται στην αρχή της αγωγιμότητας των ημιαγωγών υλικών. Με τη λήψη φωτός, τα φωτόνια ενεργοποιούν τα ηλεκτρόνια του υλικού, διευκολύνοντας τη ροή του ρεύματος και επομένως μειώνοντας την αντίσταση. Αυτός ο τύπος αισθητήρα είναι πολύ χρήσιμος για εφαρμογές όπου απαιτείται σχετική μέτρηση του φωτός στο περιβάλλον.

Χαρακτηριστικά LDR

Αυτό το εξάρτημα είναι πολύ δημοφιλές λόγω του χαμηλού κόστους και της ευκολίας χρήσης του. Οι τυπικές τιμές αντίστασης κυμαίνονται από 1 MOhm σε απόλυτο σκοτάδι έως 50-100 Ohm σε έντονο φως. Ωστόσο, αξίζει να αναφέρουμε ότι δεν είναι οι πιο ακριβείς αισθητήρες αν θέλετε να μετρήσετε με ακρίβεια τη φωτεινότητα (φως σε lux), καθώς μπορεί να επηρεαστούν από παράγοντες όπως η θερμοκρασία.

Η διακύμανση της αντίστασης είναι αρκετά αργή, χρειάζονται από 20 έως 100 χιλιοστά του δευτερολέπτου ανάλογα με το μοντέλο. Αυτό σημαίνει ότι δεν είναι κατάλληλο για την ανίχνευση γρήγορων αλλαγών φωτός, όπως αυτές που παράγονται κάτω από φώτα AC, αλλά προσφέρει εξαιρετική σταθερότητα σε πιο σταθερές συνθήκες φωτισμού.

Ενώ Τα LDR είναι πιο κατάλληλα για τη μέτρηση των ελαφρών τάσεων ότι για την παροχή ακριβών δεδομένων, το χαμηλό τους κόστος και η ευκολία ενσωμάτωσης με τις πλακέτες Arduino τις καθιστούν ιδανικό αισθητήρα για έργα DIY.

Διάγραμμα κυκλώματος και σύνδεσης

Προκειμένου το Arduino να μετρήσει τη διακύμανση αντίστασης του LDR, είναι απαραίτητο να τοποθετήσετε τον αισθητήρα σε αυτό που είναι γνωστό ως διαχωριστικό τάσης. Αυτό είναι ένα πολύ απλό κύκλωμα που αποτελείται από το LDR και μια σταθερή αντίσταση συνδεδεμένη σε σειρά. Το LDR τοποθετείται μεταξύ της τάσης εισόδου (π.χ. 5 V στην πλακέτα Arduino Uno) και την αναλογική ακίδα εισόδου και η σταθερή αντίσταση συνδέεται μεταξύ της ακίδας και της γείωσης (GND).

Η τιμή της σταθερής αντίστασης είναι συνήθως 10 kOhms, αν και μπορεί να ποικίλλει ανάλογα με την ευαισθησία που θέλετε να επιτύχετε στη μέτρησή σας.

Παραδείγματα Συναρμολόγησης και Κώδικα

Για να δημιουργήσετε ένα βασικό σύστημα με Arduino και LDR, το πρώτο πράγμα που πρέπει να κάνετε είναι να συνδέσετε τα ακόλουθα στοιχεία:

  • Το ένα άκρο του LDR στην παροχή 5V.
  • Το άλλο άκρο του LDR στην αναλογική είσοδο (Α0, για παράδειγμα) και ταυτόχρονα σε μια σταθερή αντίσταση που θα συνδεθεί στη γείωση.

Με αυτήν τη ρύθμιση μπορείτε να ξεκινήσετε την ανάγνωση των τιμών που παρέχει το LDR μέσω της αναλογικής εισόδου. Ο παρακάτω κώδικας είναι ένα βασικό παράδειγμα για να διαβάσετε αυτές τις τιμές:

const int pinLDR = A0;
void setup() {
Serial.begin(9600); // Iniciar monitor serie}
void loop() {
int valorLDR = analogRead(pinLDR); // Leer valor de LDR
Serial.println(valorLDR); // Imprimir valor en monitor
delay(500);
}

Αυτός ο κωδικός θα εκτυπώσει τιμές μεταξύ 0 (δηλαδή όταν δεν υπάρχει φως) και 1023 (μέγιστο φως που λαμβάνεται). Αυτές οι τιμές είναι ανάλογες με το φως που αντιλαμβάνεται το LDR.

Η συμπεριφορά της αντίστασης ως συνάρτηση του φωτός

Όπως ήδη αναφέρθηκε, η αντίσταση του LDR μειώνεται καθώς δέχεται περισσότερο φως. Για να αποκτήσετε ένα ακριβής μέτρηση της ποσότητας φωτός, πρέπει να γνωρίζετε τις τιμές αντίστασης του LDR σας σε διαφορετικές συνθήκες φωτισμού.

Στη σειρά GL55, για παράδειγμα, οι τιμές κυμαίνονται από 5 kΩ έως 200 kΩ παρουσία φωτός και από 500 kΩ έως 10 MΩ σε συνθήκες σκότους. Αυτές οι τιμές μπορεί να διαφέρουν από το ένα μοντέλο στο άλλο, επομένως είναι σκόπιμο να συμβουλεύεστε πάντα το φύλλο δεδομένων του κατασκευαστή του αισθητήρα.

Μια ενδιαφέρουσα ιδιαιτερότητα του LDR είναι ότι Η ευαισθησία του είναι μεγαλύτερη στο τμήμα του πράσινου φωτός του φάσματος., περίπου σε μήκη κύματος 540 nm. Αυτό σημαίνει ότι τα LDR ανταποκρίνονται καλύτερα στο πράσινο φως από άλλα μέρη του ορατού φάσματος.

Πρακτικές εφαρμογές

Οι πιθανές εφαρμογές των LDR που συνδέονται με ένα Arduino είναι σχεδόν ατελείωτες. Μεταξύ των πιο πρακτικών είναι τα αυτόματα συστήματα φωτισμού, όπου το κύκλωμα μπορεί να ενεργοποιήσει ή να απενεργοποιήσει τα φώτα ανάλογα με τα επίπεδα φωτός που ανιχνεύονται. Χρησιμοποιούνται επίσης για ρομπότ που ακολουθούν το φως και συστήματα οικιακού αυτοματισμού.

Μπορείτε, για παράδειγμα, να δημιουργήσετε ένα σύστημα όπου καθώς μειώνονται τα επίπεδα φωτός, ανάβει ένα LED για να αντισταθμίσει την έλλειψη φωτός. Ακολουθεί ένα απλό παράδειγμα κώδικα:

int LDRPin = A0; // Pin para la LDR
int LEDPin = 13; // Pin para el LED
int threshold = 500; // Umbral para encender el LED
void setup() {
pinMode(LEDPin, OUTPUT);
pinMode(LDRPin, INPUT);}
void loop() {
int valorLuz = analogRead(LDRPin);
if (valorLuz < threshold) {
digitalWrite(LEDPin, HIGH); // Enciende el LED
} else {
digitalWrite(LEDPin, LOW); // Apaga el LED
}
delay(100);}

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

Περιορισμοί και προφυλάξεις

Αν και η χρήση ενός LDR είναι πολύ βολική σε πολλά έργα, είναι σημαντικό να ληφθούν υπόψη ορισμένοι από τους περιορισμούς του:

  • Δεν είναι πολύ ακριβείς αν θέλετε να μετρήσετε την ακριβή ένταση του φωτός σε lux.
  • Η συμπεριφορά του μπορεί να διαφέρει ανάλογα με τη θερμοκρασία.
  • Λειτουργούν καλύτερα για να ανιχνεύουν μεγαλύτερες αλλαγές στο φως και όχι γρήγορες μεταβολές.

Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.