Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Για όσους δεν είναι συνηθισμένοι στα ηλεκτρονικά, το PWM σημαίνει έλεγχο ισχύος. Και σε αυτό το συγκρότημα, δείχνουμε πώς να το χρησιμοποιούμε για τον έλεγχο της έντασης του φωτός ενός LED, παρόμοιο με ένα ρυθμιστή φωτισμού σε μια λάμπα, με επιλογές να σκουραίνει και να φωτίζεται.
Αυτός ο μηχανισμός σας επιτρέπει επίσης, για παράδειγμα, να συνδέσετε ένα πρόγραμμα οδήγησης σε έναν κινητήρα. Αυτή είναι μόνο μία από τις πολλές δυνατότητες.
- Σημείωση: Το PWM σημαίνει Pulse-Width Modulation.
Βήμα 1: Στόχος
Το συγκρότημα αποτελείται από ένα ποτενσιόμετρο, το οποίο είναι μια μεταβλητή αντίσταση, που παρακολουθείται από το ESP. Σε αυτό το σχήμα, χρησιμοποιώ τον ίδιο πηγαίο κώδικα που θα χρησιμοποιούσα με ένα Arduino. Λόγω των πολλών πλεονεκτημάτων του, χρησιμοποιούμε το Arduino IDE με ESP και σε άλλα έργα.
Στη διάταξη, το ESP είναι συνδεδεμένο σε USB μόνο για τροφοδοσία. Έχουμε επίσης τον πείρο του δρομέα, ο οποίος είναι ο πείρος του κεντρικού ποτενσιόμετρου, συνδεδεμένος στη θύρα AD, και το θετικό και αρνητικό.
Καθώς η τάση ποικίλλει, είναι δυνατή η ανάγνωση διαφορετικής τιμής στο AD. Επομένως, περιστρέφοντας το ποτενσιόμετρο, μπορείτε να αυξήσετε ή να μειώσετε τη φωτεινότητα του LED.
Βήμα 2: Συναρμολόγηση
Το ηλεκτρικό σχήμα είναι πολύ απλό: χρησιμοποιώντας το ESP8266 στη διαμόρφωση του NodeMCU, θα τροφοδοτήσουμε το USB. Έτσι, εδώ, το ποτενσιόμετρο πρέπει να συνδεθεί από το ένα άκρο στο αρνητικό και το άλλο από το θετικό. Το μέσο, το οποίο είναι ο δρομέας, παραμένει ενεργοποιημένο στο ADC 0, επειδή αυτό το ESP έχει μόνο μια θύρα που διαβάζει αναλογικές τιμές.
Βήμα 3: WiFi ESP8266 NodeMCU ESP-12E
Βήμα 4: Πηγαίος κώδικας
Ρύθμιση
Στη συνάρτηση Setup, ορίζουμε τη συμπεριφορά των ακίδων που χρησιμοποιούμε, σε αυτήν την περίπτωση το LED και το POTENTIOMETER.
void setup () {Serial.begin (115200) // Instrução para colocar o gpio que iremos utilisar como entrada, // podemos fazer a leitura nesse pino pinMode (A0, INPUT); // A0 é uma um um e indic indic // Inst Inst Inst Inst // LED_BUILTIN é uma constante que indica o LED do ESP8266}
Βρόχος
Σε αυτή τη λειτουργία, η λογική είναι να διαβάσετε την τιμή POT και να εκχωρήσετε αυτήν την τιμή (που είναι η ένταση της φωτεινότητας) στο LED.
void loop () {// faz a leitura do pino A0 (no nosso caso, o potenciômetro, retorna um valor entre 0 e 1023) int potencia = analogRead (A0); Serial.println (potencia); // como o LED no ESP8266 trabalha de maneira contrária, ou seja, quanto maior o valor atribuído, menor a intensidade. Faremos o cálculo para aumentarmos o brilho conforme girarmos o potenciômetro em sentido horário. potencia = 1023 - potencia; // atribui o valor lido do potenciômetro para configurar a intensidade do brilho do LED analogWrite (LED_BUILTIN, potencia); }