Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Τα παρακάτω βήματα είναι πειράματα για να δείξουν πώς λειτουργούν τα LED. Εικονογραφούν πώς να χαμηλώνετε ένα LED με ομοιόμορφο ρυθμό και πώς να το ξεθωριάζει μέσα και έξω.
Θα χρειαστείτε:
- Arduino (χρησιμοποίησα ένα δίδυμο)
- Breadboard
- Κόκκινο LED 5 mm
- Αντίσταση 330 Ω (Δεν είναι κρίσιμο 330-560 Ω θα λειτουργήσει.)
- 22 Gauge Solid Hookup Wire
Τα μέρη που απαιτούνται για αυτά τα πειράματα περιλαμβάνονται σε όλα τα κιτ εκκίνησης Arduino.
Βήμα 1: Επεξήγηση της διαμόρφωσης παλμών
Οι λυχνίες LED λειτουργούν πάντα στην ίδια τάση ανεξάρτητα από τη φωτεινότητα. Η φωτεινότητα καθορίζεται από έναν ταλαντωτή τετραγωνικού κύματος και το χρονικό διάστημα που η τάση είναι υψηλή καθορίζει τη φωτεινότητα. Αυτό ονομάζεται Pulse Width Modulation (PWM). Αυτό ελέγχεται από τη συνάρτηση Arduino analogWrite (pin, n) όπου το n έχει τιμή από 0 έως 255. Το analogWrite () εξάγει PWM, όχι πραγματικό αναλογικό. Εάν n = 2 η λυχνία LED θα είναι δύο φορές πιο φωτεινή από το n = 1. Η φωτεινότητα διπλασιάζεται πάντα όταν το n διπλασιάζεται. Έτσι n = 255 θα είναι δύο φορές πιο φωτεινό από n = 128.
Η τιμή του n εκφράζεται συχνά ως ποσοστό που ονομάζεται κύκλος λειτουργίας. Οι εικόνες δείχνουν ίχνη παλμογράφων για 25, 50 και 75% κύκλους λειτουργίας.
Βήμα 2: Un-even Dimming
Δημιουργήστε το κύκλωμα όπως στο διάγραμμα. Αυτό είναι ακριβώς όπως το κύκλωμα για να αναβοσβήνει ένα LED. Χρησιμοποιεί τον πείρο 9 επειδή πρέπει να χρησιμοποιήσετε έναν πείρο με δυνατότητα PWM.
Αντιγράψτε/Επικολλήστε το παρακάτω σκίτσο στο Arduino IDE και εκτελέστε το.
Θα παρατηρήσετε ότι όσο πιο φωτεινή είναι η λυχνία LED τόσο πιο αργή γίνεται. Καθώς πλησιάζει το πιο σκοτεινό, θα γίνεται πιο αμυδρό πολύ γρήγορα.
void setup ()
{pinMode (9, OUTPUT); } void loop () {int pin = 9; για (int i = 255; i> -1; i--) {analogWrite (pin, i); καθυστέρηση (10)? } για (int i = 0; i <256; i ++) {analogWrite (pin, i); καθυστέρηση (10)? }}
}
Το επόμενο βήμα δείχνει πώς να χαμηλώνετε το LED με σταθερό ρυθμό και σε ένα για δήλωση.
Βήμα 3: Πάνω και κάτω σε ένα για ()
Για να σβήσει το LED με σταθερό ρυθμό, η καθυστέρηση () πρέπει να αυξηθεί με εκθετικό ρυθμό, επειδή ο μισός κύκλος λειτουργίας θα παράγει πάντα τη μισή φωτεινότητα. Η πρώτη μου σκέψη ήταν να προσπαθήσω να χρησιμοποιήσω τη συνάρτηση map () αλλά είναι γραμμική.
Η γραμμή:
int d = (16-i/16)^2;
υπολογίζει το αντίστροφο τετράγωνο της φωτεινότητας για να καθορίσει το μήκος της καθυστέρησης.
Αντιγράψτε/Επικολλήστε το παρακάτω σκίτσο στο Arduino IDE και θα δείτε ότι το LED θα εξασθενίσει μέσα και έξω με σταθερό ρυθμό.
void setup ()
{pinMode (9, OUTPUT); } void loop () {int x = 1; int pin = 9; για (int i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; analogWrite (pin, i); καθυστέρηση (δ)? εάν (i == 255) x = -1; // εναλλαγή κατεύθυνσης στην κορυφή}}