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

Arduino RGB LED Strip Controller: 4 Βήματα
Arduino RGB LED Strip Controller: 4 Βήματα

Βίντεο: Arduino RGB LED Strip Controller: 4 Βήματα

Βίντεο: Arduino RGB LED Strip Controller: 4 Βήματα
Βίντεο: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Νοέμβριος
Anonim
Arduino RGB LED Strip Controller
Arduino RGB LED Strip Controller

Συχνά όταν οι άνθρωποι θέλουν να ελέγξουν τη λωρίδα 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; }

Συνιστάται: