Πίνακας περιεχομένων:
Βίντεο: Βαθμονόμηση Φωτεινότητας LED: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Ενώ έβγαζα ένα φως νεράιδας, συνειδητοποίησα ότι η τιμή PWM είναι μη γραμμικά ανάλογη με τη φωτεινότητα του LED. Με απλά λόγια, εάν η τιμή PWM είναι διπλή, η φωτεινότητα δεν είναι διπλή. ειδικά όταν το PWM είναι κοντά στο μέγιστο, οποιαδήποτε αλλαγή δεν είναι αναγνωρίσιμη από τα μάτια μου. Νόμιζα ότι πρέπει να είναι ένα απλό ζήτημα βαθμονόμησης! και έτσι έφτιαξα αυτό το έργο! Η ιδέα είναι να μετρήσετε τη φωτεινότητα ενός LED με κάποια συσκευή (αισθητήρας φωτεινότητας ή φωτοαντίσταση) και να βρείτε μια συσχέτιση μεταξύ της τιμής PWM και της φωτεινότητας. Στη συνέχεια αργότερα Εάν ορίσω τη φωτεινότητα στο 50%, το Arduino θα υπολογίσει το αντίστοιχο PWM και θα μειώσει το LED ανάλογα.
Επομένως, χρειάζομαι έναν αισθητήρα φωτεινότητας και ένα LED για τη μέτρηση της φωτεινότητας. Χρησιμοποιώντας μια κάρτα SD, θα αποθηκεύσω τα δεδομένα για μεταγενέστερη διαδικασία προσαρμογής. Η προσαρμογή θα γίνει στο Excel (ή σε οποιοδήποτε άλλο πρόγραμμα). Το out put θα χρησιμοποιηθεί στον κώδικα Arduino, και αυτό είναι όλο! Θα πρέπει να γίνει μία φορά. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε την παράμετρο βαθμονόμησης για πάντα!
Βήμα 1: Μέρη
1- WEMOS mini D1: Aliexpress 3 €
2- TSL 2561 (Αισθητήρας φωτεινότητας): Aliexpress 3 €
3- Ενότητα κάρτας SD: Aliexpress 1 €
4- LED
5- Αντίσταση 220 ohm
6- σύρματα
συνολικό κόστος: 8 -10 €
Βήμα 2: Καλωδίωση
Η μονάδα κάρτας SD και τα καλώδια του αισθητήρα φωτεινότητας δεν πρέπει να αλλάξουν (τα περισσότερα). Το led πρέπει να συνδεθεί σε ακίδα PWM.
Βήμα 3: Κωδικός
Συνδύασα τρία κομμάτια κωδικών:
Κάρτα SD: χρησιμοποιείται παράδειγμα> SD> ReadWrite στο Arduino IDE
TSL 2561: χρησιμοποιείται παράδειγμα βιβλιοθήκης Adafruit TSL2561 (sensorapi). θα το βρείτε σε παραδείγματα, εάν εγκαταστήσετε τη βιβλιοθήκη (υποθέτω ότι γνωρίζετε πώς να εγκαταστήσετε μια βιβλιοθήκη στο Arduino IDE).
Ξεθώριασμα LED: χρησιμοποιημένα παραδείγματα> Αναλογικό> ξεθώριασμα
Ο κώδικας, μετά την προετοιμασία των μονάδων, θα μειώσει το led και θα διαβάσει τη φωτεινότητα και θα το αποθηκεύσει στην κάρτα SD. με αυτόν τον τρόπο θα συλλέξω κάποια δεδομένα για βαθμονόμηση.
Άλλαξα καθένα από τους κωδικούς σύμφωνα με τις ανάγκες μου. επισυνάπτεται ο τελικός κωδικός.
Το σήμα πρέπει να μοιάζει με τη συνημμένη εικόνα. Δυστυχώς ξέχασα να τραβήξω μια φωτογραφία, οπότε την ξαναβάζω στο excel για να σας δείξω πώς πρέπει να είναι.
ΣΗΜΕΙΩΣΗ: Χρησιμοποιώ wemo mini D1 αντί για Arduino. για κάποιο λόγο που δεν γνωρίζω, το PWM είναι μεταξύ 0 και 1023. Στο Arduino θα πρέπει να είναι μεταξύ 0-255. Εάν θέλετε να χρησιμοποιήσετε τον κωδικό για το arduino, θα πρέπει να τον φροντίσετε (γραμμή 90).
Βήμα 4: Τοποθέτηση και χρήση
μετά τη συλλογή δεδομένων, άνοιξα το αρχείο στο excel και σχεδίασα τα δεδομένα (δείτε την εικόνα). η πρώτη στήλη είναι τιμή PWM και η δεύτερη είναι lux (ανάγνωση του αισθητήρα, η μονάδα δεν έχει μεγάλη σημασία). Επομένως, σχεδιάστε το lux (άξονας y) έναντι PWM (άξονας x). Όπως μπορείτε να δείτε, η φωτεινότητα είναι γραμμικά ανάλογη με την τιμή PWM. Προσάρμοσα μια γραμμή σε αυτό.
Για να χωρέσετε μια γραμμή ακολουθήστε τα εξής:
1- σχεδιάστε τα δεδομένα (εισαγάγετε> διάγραμμα διασποράς) υποθέτω ότι ξέρετε πώς.
2- Κάντε δεξί κλικ στα γραφικά δεδομένα
3- Κάντε κλικ στο trendline.
4- (στο excel 2013) στη δεξιά πλευρά εμφανίζεται ένας πίνακας. Επιλέξτε γραμμική. Στο κάτω μέρος επιλέξτε "εμφάνιση εξίσωσης στο γράφημα".
Η γραμμική σχέση είναι διαφορετική από την αντίληψή μου. Επομένως, πιστεύω ότι πρέπει να υπάρχει λογαριθμική σχέση μεταξύ της αντίληψής μου και της φωτεινότητας (αυτός είναι ο πιο απλός τρόπος που μου ήρθε στο μυαλό!). Έτσι πήρα την κλίση της προσαρμογής. Η αναχαίτιση δεν είναι σημαντική, διότι εξαρτάται από τη φωτορύπανση του περιβάλλοντος! Αντ 'αυτού, πρόσθεσα 1. Επειδή το Log10 (0) είναι άπειρο. Οπότε χρειάζομαι μια αναχαίτιση για να λύσω το πρόβλημα. Στην περίπτωσή μου η εξίσωση μοιάζει με αυτήν:
y = Log10 (0,08 x +1), y είναι η φωτεινότητα και x είναι η τιμή PWM (0-1023)
Ομαλοποίησα την εξίσωση στη μέγιστη τιμή. τότε η έξοδος είναι πάντα μεταξύ 0-100. Με αυτόν τον τρόπο μπορώ να ζητήσω από το arduino μια σχετική φωτεινότητα, χωρίς να αφορά τη μέγιστη απόλυτη φωτεινότητα.
y = Log10 (0,08 x +1)*100/1,914
Επειδή στο arduino η είσοδός μου είναι η σχετική φωτεινότητα, πρέπει να αναδιατάξω την εξίσωση για το x (PWM):
x = (10^(y*1.914 / 100) - 1) / 0.08
χρησιμοποιώντας αυτήν την εξίσωση στον κώδικα είμαστε σε θέση να λάβουμε μια γραμμική αλλαγή φωτεινότητας. Έτσι, ζητάτε από το arduino μια φωτεινότητα (y) μεταξύ 0-100 και το arduino υπολογίζει την αντίστοιχη τιμή PWM. με αυτόν τον τρόπο, εάν διπλασιάσετε τη φωτεινότητα, η αντίληψή σας είναι επίσης η ίδια.
αν θέλετε να το χρησιμοποιήσετε στον κώδικά σας, προσθέστε καλύτερα αυτές τις γραμμές:
φωτεινότητα = 50; // σε ποσοστό
PWM = pow (10, φωτεινότητα*1.914/100) -1) /0.0793;
analogWrite (ledpin, PWM);
ΣΗΜΕΙΩΣΗ: η κανονικοποίηση γίνεται για μέγιστο PWM 1023 (για Wemos mini D1). Για το Arduino το PWM είναι μεταξύ 0-255. πρέπει να το υπολογίσεις ανάλογα.
ΣΗΜΕΙΩΣΗ 2: Πρόσθεσα ένα γραμμικό διάγραμμα καταγραφής για να δείξω πώς σχετίζονται η αντίληψή μας και η τιμή PWM. δεν πρέπει να το χρησιμοποιείτε για τοποθέτηση!
Βήμα 5: Συμπέρασμα
η βαθμονόμηση λειτουργεί καλά για μένα. Όταν οι τιμές PWM είναι μεγάλες, μπορώ να δω τη διαφορά. Πριν ως μεγάλες τιμές δεν μπορούσα να δω την επίδραση του dimming. Βασικά οι περισσότερες αλλαγές έγιναν σε ένα μικρό εύρος PWM. τώρα έχει βαθμονομηθεί!
κάθε LED, ειδικά διαφορετικά χρώματα, θα πρέπει να έχει τις δικές του παραμέτρους βαθμονόμησης. Ωστόσο, βαθμονόμησα ένα μπλε LED και χρησιμοποίησα την παράμετρο για ένα λευκό LED και το αποτέλεσμα ήταν αποδεκτό. οπότε ίσως μπορείτε να χρησιμοποιήσετε την παράμετρο βαθμονόμησής μου χωρίς να ενοχλείτε τον εαυτό σας !!
Συνιστάται:
Βαθμονόμηση αισθητήρα υγρασίας εδάφους: 5 βήματα
Βαθμονόμηση αισθητήρα υγρασίας εδάφους: Υπάρχουν πολλοί μετρητές υγρασίας εδάφους στην αγορά για να βοηθήσουν τον κηπουρό να αποφασίσει πότε θα ποτίσει τα φυτά του. Δυστυχώς, η αρπαγή μιας χούφτας χώματος και η επιθεώρηση του χρώματος και της υφής είναι τόσο αξιόπιστη όσο πολλά από αυτά τα gadget! Ορισμένοι ανιχνευτές ακόμη και εγγραφούν
ARDUINO ΔΙΑΛΥΜΜΕΝΗ ΒΑΘΜΟΝΟΜΗΣΗ ΑΙΣΘΗΤΗΡΑΣ ΟΞΥΓΟΝΟΥ: 4 Βήματα
ARDUINO DISSOLVED OXYGEN SENSOR CALIBRATION: Σε αυτό το σεμινάριο, θα βαθμονομήσουμε τον αισθητήρα EZO διαλυμένου οξυγόνου (D.O) της Atlas Scientific χρησιμοποιώντας το Arduino Uno. ΘΕΩΡΙΑ ΒΑΘΜΟΝΟΜΗΣΗΣ Το πιο σημαντικό μέρος της βαθμονόμησης είναι η παρακολούθηση των μετρήσεων κατά τη διαδικασία βαθμονόμησης. Είναι πιο εύκολο να βαθμονομηθεί
Πώς να φτιάξετε μηχανή βάρους μωρού χρησιμοποιώντας Arduino Nano, HX-711 Load Cell και OLED 128X64 -- Βαθμονόμηση του HX-711: 5 βήματα
Πώς να φτιάξετε μηχανή βάρους μωρού χρησιμοποιώντας Arduino Nano, HX-711 Load Cell και OLED 128X64 || Βαθμονόμηση του HX-711: Γεια σας Instructables, Πριν από λίγες μέρες έγινα πατέρας ενός χαριτωμένου μωρού;. Όταν ήμουν στο νοσοκομείο διαπίστωσα ότι το βάρος του μωρού είναι τόσο κρίσιμο για να παρακολουθεί την ανάπτυξη του μωρού. Έχω λοιπόν μια ιδέα; για να φτιάξω μια μηχανή βάρους μωρού από τον εαυτό μου. σε αυτό το Instructable I
Πώς να κάνετε βαθμονόμηση δύναμης σε ένα CombiTouch: 6 βήματα
Πώς να κάνετε βαθμονόμηση δύναμης σε ένα CombiTouch: Αυτός ο οδηγός δείχνει πώς μπορείτε να κάνετε βαθμονόμηση δύναμης σε φούρνο Alto-Shaam CombiTouch. Εάν η οθόνη δεν ανταποκρίνεται στην αφή ή ενεργοποιεί άλλο εικονίδιο από αυτό που αγγίζετε, απλώς ακολουθήστε αυτές τις οδηγίες. Αν το
Βαθμονόμηση αισθητήρα υγρασίας: 7 βήματα
Βαθμονόμηση αισθητήρα υγρασίας: Έχω 3 αισθητήρες που μπορούν να μετρήσουν τη σχετική υγρασία του αέρα: BME280, SHT21, DHT22. Ανέφεραν την ικανότητα μέτρησης με ακρίβεια +/- 3% από 20 έως 80%. Ωστόσο, κατά τη δοκιμή στην ίδια κατάσταση για 3 αισθητήρες, πήρα 3 διαφορετικά αποτελέσματα. Oσως o