Bluetooth: 5. Steuern einer RGB-LED
Gepostet September 2015, Kategorie: Bluetooth HC05

In diesen Teil wird gezeigt, wie man eine LED-RGB stufenlos über das Smartphone steuern kann. Die RGB-LED wird durch PWM-Ausgänge des Arduinos angesteuert.
- Eine RGB-LED hat meist vier Anschlüsse. Drei für die jeweiligen Farben und eine gemeinsame Kathode oder Anode.
- Die diesem Beispiel verwende ich eine LED mit einer gemeinsamen Kathode.
- Mit Hilfe der Pulsweitenmodulation (PWM) lassen sich verschiedene Helligkeitsstufen einer LED erzeugen.
- Mit Hilfe von 3 PWM-Ausgängen (für jede Farbe) lassen sich alle möglichen Farbkombinationen mit Hilfe einer RGB-LED anzeigen.
- Resultierender Schaltplan:

- Vereinbarungen über die Nachricht
- Handy sendet die gewünschte Farbe als 3 Dezimalzahlen (0-255) in folgender Form: "SET255,64,0;"
- Der Arduino antwortet mit einem "OK;"
- Programmierung des Arduinos:
- Pins der drei Farben als Array: int rgb[] = {5, 6, 9};
- Setze alle drei Pins als Ausgang, setze sicherheitshalber deren PWM-Wert auf 0 [HILFE]
- Die Nachricht wird empfangen, wie bei der LED.
- Wenn c == ';'
- Wenn msg mit "SET" beginnt: [HILFE]
- Entferne die ersten 3 Zeichen aus msg (Bsp: msg =>"255,64,0") [HILFE]
- int index = Position des nächsten Kommas in msg (Bsp: index=>3) [HILFE]
- String
color = Die Zahl als Zeichenkette des Wertes von Rot (Bsp: "255") (Ein
Teil der Zeichenkette msg von einschließlich 0 bis ausschließlich index)
- int val = Der Wert von Rot (Bsp: 255) [HILFE]
- Setze den PWM-Wert des "roten" Pins
- Entferne den roten Anteil und das Komma aus msg (Bsp: msg =>"64,0")
- index = Position des nächsten Kommas (Bsp: 2)
- color = Zeichenkette des grünen Wertes (Bsp: "64")
- val = Der grüne Wert
- Setzten des grünen PWMs
- Entferne den grünen Anteil und das Komma aus msg (Bsp: "0")
- val = msg als Zahl
- Setzen des blauen PWMs
- Schicke ein OK!
- [Lösung]
- Handy-Programmierung
- Designer:
- ListPicker1: Wählen der Bluetooth-Verbindung, wie bei LED
- SliderR, SliderG, SliderG:
- Min: 0
- Max: 255
- Zum Wählen der Farbe
- Button1: Absenden der eingestellten Farbe
- Canvas1: Zeigt die eingestellte Farbe als Hintergundfarbe an
- BluetoothClient1, Notifier1, Clock1 (250 ms)
- Programmierung:
- initialize gloabl msg = ""
- initialize gloabl msg = ""
- when Screen1.Initialize: wie bei der LED
- when ListPicker1.BeforePicking: wie bei der LED
- when ListPicker1.AfterPicking: wie bei der LED
- when Clock1.Timer: wie bei der LED
 |
Wenn einer der drei Slider bewegt wird, dann führe die Prozedur updateColor aus
Prozedur updateColor: Erstelle eine Farbe aus den drei Slider-Werten und setze diese als Hintergrundfarbe des Canvas1
Wenn Absenden geklickt wird: Erstelle eine Zeichenkette aus Set, Kommas, Semikolon und den drei Slider-Werten und sende diese an den Arduino
Setze den ListPicker auf Warte auf Antwort! |
Download: [AIA] [APK]