Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Συχνά όταν οι άνθρωποι θέλουν να ελέγξουν τη λωρίδα LED RGB με ένα Arduino, χρησιμοποιούνται τρία ποτενσιόμετρα για να αναμειγνύουν το κόκκινο, το πράσινο και το μπλε χρώμα. Αυτό λειτουργεί και θα μπορούσε να είναι τέλειο για τις ανάγκες σας, αλλά ήθελα να κάνω κάτι πιο διαισθητικό, κάτι σαν έγχρωμο τροχό.
Αυτό το έργο φαίνεται να είναι μια τέλεια εφαρμογή για έναν περιστροφικό κωδικοποιητή. Αυτή είναι μια συσκευή που μετατρέπει την κίνηση του άξονα της σε ψηφιακή έξοδο. Όταν ο άξονας γυρίζει, ο κωδικοποιητής στέλνει ένα σήμα (παλμό) το οποίο μπορεί να μετρηθεί με ένα Arduino. Για περισσότερα σχετικά με τους περιστροφικούς κωδικοποιητές, μπορείτε να παρακολουθήσετε αυτό το βίντεο που το εξηγεί σε βάθος.
Σε αυτό το Instructable θα σας δείξω πώς να φτιάξετε ένα Arduino RGB LED strip controller χρησιμοποιώντας έναν περιστροφικό κωδικοποιητή. Αυτό το Instructable καλύπτει την κατασκευή του κυκλώματος σε μια σανίδα ψωμιού. Θα μπορούσατε ωστόσο να παράγετε το δικό σας PCB για να δημιουργήσετε μια ασπίδα Arduino!
Βήμα 1: Μέρη
Για τον ελεγκτή ταινιών RGB LED θα χρειαστείτε τα ακόλουθα υλικά:
- 1x Arduino Nano
- 3x IRLB8721PBF, οποιοδήποτε λογικό επίπεδο καναλιού MOSFET θα το κάνει αρκεί να βαθμολογείται τουλάχιστον στα 12V και να καταναλώνει το ρεύμα που καταναλώνει η λωρίδα LED σας.
- 1x Περιστροφικός κωδικοποιητής
- Τροφοδοσία 1x 12V 2A, το ρεύμα που πρέπει να παρέχει το τροφοδοτικό μπορεί να εξαρτάται από το μήκος της χρησιμοποιούμενης ταινίας LED.
- 16x Ανδρικά έως αρσενικά καλώδια βραχυκυκλωτήρων
- 1x Χωρίς ψωμί χωρίς κόλλα, κάθε ψωμί θα κάνει όσο είναι αρκετά μεγάλο.
Βήμα 2: Κύκλωμα
Συνδέστε το Arduino στη ράγα 12V και GND της σανίδας. Στη συνέχεια, συνδέστε τα άλλα μέρη ως εξής:
Περιστροφικός κωδικοποιητής
Καρφίτσα A - D4
Καρφίτσα Β - D3
GND - GND
MOSFET Κόκκινο
Πύλη - GND
Αποστράγγιση - κόκκινο καλώδιο λωρίδας LED
Πηγή - D11
MOSFET GreenGate - GND
Αποστράγγιση - πράσινο καλώδιο λωρίδας LED
Πηγή - D9
MOSFET BlueGate - GND
Αποστράγγιση - μπλε σύρμα λωρίδας LED
Πηγή - D6
Βήμα 3: Κωδικός
// Καρφίτσες Arduino PWM
int redPin = 11; int greenPin = 6; int bluePin = 9; // Ακίδες κωδικοποιητή Arduino int encoderPinA = 3; int encoderPinB = 4; // Μεταβλητές χρώματος int colorVal; int redVal; int greenVal; int blueVal; // Μεταβλητές κωδικοποίησης int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // Άλλος μετρητής int; void setup () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (κωδικοποιητήςPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (μετρητής); analogWrite (redPin, redVal); analogWrite (greenPin, greenVal); analogWrite (bluePin, blueVal); } int readEncoder () {encoderPinACurrent = digitalRead (encoderPinA); εάν ((encoderPinALast == LOW) && (encoderPinACurrent == HIGH)) {if (digitalRead (encoderPinB) == LOW) {encoderPos = encoderPos - 1; } else {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; μετρητής = κωδικοποιητήςPos*8; αν (μετρητής 1535) {μετρητής = 0; } μετρητής επιστροφής. } int encoder2rgb (int counterVal) {// Κόκκινο σε κίτρινο if (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Κίτρινο σε πράσινο else if (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Πράσινο σε κυανό αν (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Κυανό σε μπλε άλλο αν (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Μπλε σε ματζέντα else if (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Magenta to red else {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } return redVal, greenVal, blueVal; }