Πίνακας περιεχομένων:

12V LED PWM Dimmer με ESP8266: 3 βήματα
12V LED PWM Dimmer με ESP8266: 3 βήματα

Βίντεο: 12V LED PWM Dimmer με ESP8266: 3 βήματα

Βίντεο: 12V LED PWM Dimmer με ESP8266: 3 βήματα
Βίντεο: 12v PWM LED dimmer circuit with Arduino | How to make a 12v PWM LED DIMMER CIRCUIT using Arduino 2024, Ιούλιος
Anonim
12V LED PWM Dimmer με ESP8266
12V LED PWM Dimmer με ESP8266

Ενώ προσπαθούσα να κάνω το σπίτι μου πιο βιώσιμο, αντάλλαζα λαμπτήρες αλογόνου με φώτα led. Υπάρχουν πολλές εναλλακτικές διαθέσιμες, για να αντικαταστήσετε κάθε τύπο λαμπτήρα. Ενώ το έκανα αυτό, συνάντησα το ακόλουθο πρόβλημα: Είχα ένα φωτιστικό που χρησιμοποιούσε 7 λαμπτήρες αλογόνου 12 βολτ, ο καθένας 10 Watt. Αυτό το φως ελέγχονταν από ένα ροοστάτη, το οποίο λειτούργησε καλά. Όταν άλλαξα τους λαμπτήρες με φώτα led 12 volt, το καθένα 1 Watt, το dimmer λειτούργησε άσχημα: το φως τρεμόπαιζε και το dimming κάπως ακανόνιστο. Αυτό είναι ένα πρόβλημα με πολλά κλασικά ροοστάτη: έχουν ελάχιστη βαθμολογία ισχύος, την οποία χρειάζονται για να λειτουργήσουν.

Έτσι, με βάση το σύστημα domotics, αποφάσισα να ανταλλάξω αυτό το χειροκίνητο dimmer με νέο, το οποίο θα είχε το πρόσθετο πλεονέκτημα ότι θα μπορούσα να ελέγχομαι από απόσταση. Είχα ήδη φτιάξει ένα dimmer χρησιμοποιώντας ένα N-channel MOSFET (IRF540), το οποίο είναι τέλειο για τέτοιου είδους πράγματα: μπορεί να ελεγχθεί με σήμα PWM και είναι ουσιαστικά άφθαρτο, με μέγιστη βαθμολογία 100 βολτ και 33 Amps, αρκετά για αυτόν τον σκοπό (γρήγορος έλεγχος: 7 x 1 Watt = 7 Watt, διαιρούμενο με 12 βολτ δίνει μέγιστο ρεύμα περίπου 0,58 Amps). Θέλω να χρησιμοποιήσω αυτό το ροοστάτη για ένα άλλο φωτιστικό που έχει 12 λάμπες, ο καθένας 2 watt, ο οποίος δίνει το πολύ 2 Amps, οπότε αυτό είναι επίσης αρκετό. Το μόνο που πρέπει να προσέξετε είναι η συχνότητα του σήματος PWM, αλλά οι συνήθεις τιμές για Arduino ή ESP8266 (500 Hz ή 1kHz) δεν αποτελούν πρόβλημα.

Βήμα 1: Βήμα 1: Τα εξαρτήματα

Βήμα 1: Τα εξαρτήματα
Βήμα 1: Τα εξαρτήματα
  1. Πρόγραμμα οδήγησης LED (μετατροπέας DC 230 βολτ AC σε 12 βολτ) Για το σκοπό μου, θέλω να χρησιμοποιήσω το πολύ 24 Watt, οπότε ξεκίνησα με ένα πρόγραμμα οδήγησης LED 12 βολτ και 2 Amps. Βρήκα ένα σε έναν ιστότοπο διανομής στην Κίνα. Αυτός ο οδηγός βαθμολογήθηκε με 12 βολτ, 28 Watt, οπότε ήταν αρκετό για να οδηγήσει το εξάρτημα από μόνο του. Για τη δική σας κατάσταση, μπορείτε να χρησιμοποιήσετε μια ελαφρύτερη ή βαρύτερη έκδοση, ανάλογα με τη συσκευή σας.
  2. IRF540 n-channel MOSFET
  3. Επειδή ήθελα να χρησιμοποιήσω WiFi και αγαπώ απόλυτα τα προϊόντα του Adafruit, επέλεξα αυτόν τον πίνακα: μου δίνει ένα ESP8266 με ένα βολικό pinout προγραμματισμού, έναν ρυθμιστή ισχύος επί του σκάφους και έναν κομψό συντελεστή φόρμας. Είναι λίγο υπερβολικό για αυτό το έργο, αλλά κάνει τη δοκιμή και τον εντοπισμό σφαλμάτων πολύ πιο εύκολη.
  4. Μετατροπέας DC-DC με βάση LM2596Για να αντλήσω την ισχύ για την πλακέτα ESP από τα 12 volt, χρειάστηκα ρυθμιστή. αυτοί οι μικροί μετατροπείς είναι πολύ αποδοτικοί και πολύ φθηνοί.
  5. Περιστροφικός κωδικοποιητής με λειτουργία κουμπιού, με ενσωματωμένη λυχνία led:

    www.sparkfun.com/products/10596

    Οποιοσδήποτε περιστροφικός κωδικοποιητής θα έκανε, αλλά μου άρεσε το ωραίο πρόσθετο χαρακτηριστικό ενός ενσωματωμένου LED.

  6. Διαφανές πλαστικό κουμπί

    www.sparkfun.com/products/10597

  7. Αντίσταση 4k7
  8. Αντίσταση 1κ

Βήμα 2: Βήμα 2: Το κύκλωμα

Βήμα 2: Το κύκλωμα
Βήμα 2: Το κύκλωμα

Αυτό είναι το κύκλωμα που χρησιμοποίησα: χρησιμοποίησα τις ακίδες 4 & 5 ως εισόδους για τον περιστροφικό κωδικοποιητή και τον ακροδέκτη 0 για το κουμπί. Το pin 0 είναι επίσης συνδεδεμένο με το κόκκινο led του σκάφους, οπότε θα μπορούσα να ελέγξω τη λειτουργία του κουμπιού στην κωδικοποίηση παρακολουθώντας αυτό το led.

Το pin 16 χρησιμοποιείται για την έξοδο PWM και το συνδέω απευθείας με το πράσινο led στον κωδικοποιητή Sparkfun. Το ESP8266 είναι 3, 3 βολτ, και ακόμη και με 100%, μέτρησα μόνο έξοδο 9, 9 βολτ, οπότε το συνέδεσα απευθείας χωρίς σειριακή αντίσταση. Αυτή η ίδια έξοδος πηγαίνει στην Πύλη του n-channel MOSFET, μέσω μιας αντίστασης 1kOhm. Αυτή η Πύλη τραβιέται στα 12 βολτ από μια αντίσταση 4,7 kOhm.

Χρησιμοποίησα τον μετατροπέα DC-DC για να μετατρέψω τα 12 βολτ σε 5,5 βολτ, αυτό συνδέεται με την είσοδο V+ του ξεμπλοκαρίσματος Adafruit. Θα μπορούσα να είχα χρησιμοποιήσει 3,3 βολτ και να το συνδέσω απευθείας, αλλά αυτό είναι λίγο πιο ασφαλές.

Η λάμπα LED 12 V στο κύκλωμα είναι το εξάρτημα μου.

Βήμα 3: Βήμα 3: Ο Κώδικας

Βήμα 3: Ο Κώδικας
Βήμα 3: Ο Κώδικας

Έβαλα τον κωδικό στο GitHub:

Σκίτσο για ρυθμιστή φωτισμού LED PWM ESP8266

Βασίζεται σε μια άλλη διδακτική ιδέα:

www.instructables.com/id/Arduino-PWM-LED-D…

Αλλά αυτό ήταν καθαρά τοπικός έλεγχος, οπότε πρόσθεσα τη δική μου λύση domotics που βασίζεται σε MQTT. Βασικά κάνει το ίδιο πράγμα, αλλά οι κύριες διαφορές είναι:

  • Ο προεπιλεγμένος αριθμός βημάτων PWM με ένα Arduino είναι 255, με το ESP8266 είναι 1023 (όπως διαπίστωσα αργότερα, ολόκληρος προσπαθώντας να καταλάβω γιατί το φωτιστικό μου LED δεν ανέβηκε μέχρι τη φωτεινότητα 100% …)
  • Δεν χρησιμοποίησα το κύκλωμα "Totempole" με τα 2 τρανζίστορ, αφού το PWM ήταν DC ούτως ή άλλως και δούλεψε μια χαρά με το IRF 540.
  • Δεν χρησιμοποίησα τις 10k pull-up αντιστάσεις για τον κωδικοποιητή, εμπιστεύτηκα τα ενσωματωμένα pullups του ESP8266.
  • Το ESP8266 χρησιμοποιεί λογική 3,3 volt αντί 5 volt για το Arduino, κάτι που δεν αποδείχθηκε πρόβλημα για το IRF540

Το λογισμικό έχει τις ακόλουθες δυνατότητες:

  • περιστρέφοντας τον κωδικοποιητή θα χαμηλώσει το φως (CW) ή θα χαμηλώσει (CCW), από το 0 έως το 100%, σε 1023 βήματα, ενώ κάποια θα επιταχυνθούν στα χαμηλότερα επίπεδα.
  • πατώντας το κουμπί θα ανάψει το φως όταν είναι σβηστό, χρησιμοποιώντας το τελευταίο αποθηκευμένο επίπεδο φωτεινότητας ή θα το σβήσει όταν είναι ενεργοποιημένο.
  • πατώντας το κουμπί για μεγαλύτερο χρονικό διάστημα ενώ η λυχνία είναι αναμμένη θα εξοικονομήσει την τρέχουσα φωτεινότητα ως το προεπιλεγμένο επίπεδο.
  • πατώντας το κουμπί για μεγαλύτερο χρονικό διάστημα ενώ η λυχνία είναι σβηστή, θα ανάψει το φως σε 100% φωτεινότητα, χωρίς να αλλάξει το προεπιλεγμένο επίπεδο.
  • Θα συνδεθεί με τις ρυθμίσεις WiFi που ορίζονται από τις συμβολοσειρές "SECRET_SSID" και "SECRET_PASS", οι οποίες αποθηκεύονται σε ξεχωριστό αρχείο στο σκίτσο μου, που ονομάζεται "secrets.h"
  • Θα συνδεθεί σε διακομιστή MQTT στο δίκτυο WiFi, χρησιμοποιώντας τις συμβολοσειρές "MQTTSERVER" και "MQTTPORT" στο ίδιο αρχείο.
  • Μπορείτε να χρησιμοποιήσετε το εισερχόμενο θέμα MQTT 'domus/esp/in' για να εκδώσετε εντολές: 'ON' ή 'OFF' για να ενεργοποιήσετε ή να απενεργοποιήσετε το φως ή μια τιμή από 0 έως 1023 για να αλλάξετε τη φωτεινότητα.
  • Θα αναφέρει την κατάσταση σχετικά με τα θέματα MQTT «domus/esp/uit» (κατάσταση ON ή OFF) και «domus/esp/uit/brightness» (η τιμή φωτεινότητας).

Συνιστάται: