HueDial¶
Dieses Beispiel steuert die Farbe einer RGB-LED basierend auf der Position eines Drehknopfs. Verschiedene Positionen des Knopfs entsprechen verschiedenen HUE-Werten, die dann in RGB-Farbwerte übersetzt werden, was zu einer Farbänderung der RGB-LED führt.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
Verdrahtung
Schaltplan
Code
Bemerkung
Sie können die Datei
03_huedial.ino
direkt unter dem Pfadelite-explorer-kit-main\fun_project\03_huedial
öffnen.Oder kopieren Sie diesen Code in die Arduino IDE.
Wie funktioniert das?
Hier ist eine detaillierte Erklärung des Codes:
Globale Variablendefinitionen:
redPin
,greenPin
undbluePin
: Diese definieren die PWM-Pins, die jeweils mit den roten, grünen und blauen LEDs verbunden sind.KNOB_PIN
: Definiert den analogen Eingangspin, der mit dem Drehknopf verbunden ist.setup()
:Stellen Sie die Pins für die RGB-LED als Ausgang ein. Standardmäßig sind analoge Pins als Eingänge gesetzt, daher ist es nicht notwendig, den Eingangsmodus für den Pin des Knopfes einzustellen.
loop()
:Lesen Sie den Wert des Drehknopfs. Dieser Wert reicht von 0 bis 1023. Normalisieren Sie den Wert des Knopfs auf einen Bereich von 0-1. Konvertieren Sie den normalisierten Wert in einen HUE-Wert im Bereich von 0-360. Konvertieren Sie den HUE-Wert in RGB-Werte. Aktualisieren Sie die Farbe der LED mit diesen RGB-Werten.
setColor()
:Setzen Sie die passenden PWM-Werte für jeden LED-Pin mit der Funktion
analogWrite()
, um die Farbe der RGB-LED einzustellen.HUEtoRGB()
:Diese Funktion konvertiert HUE-Werte in RGB-Werte mit der HSL-zu-RGB-Konvertierungsmethode, konzentriert sich jedoch nur auf die HUE-Komponente und hält Sättigung und Helligkeit bei 100%. Der Algorithmus ist in 6 Stufen unterteilt, wobei jede 60 Grad abdeckt. Es berechnet RGB-Werte für jede HUE-Stufe und skaliert dann diese Werte auf einen Bereich von 0-255, was der erwarteten Spanne für die Funktion
analogWrite()
entspricht.