Inhaltsverzeichnis:

DIY-Steuerung RGB-LED-Farbe über Bluetooth - Gunook
DIY-Steuerung RGB-LED-Farbe über Bluetooth - Gunook

Video: DIY-Steuerung RGB-LED-Farbe über Bluetooth - Gunook

Video: DIY-Steuerung RGB-LED-Farbe über Bluetooth - Gunook
Video: RGB LED Streifen: Farben auf Fernbedienung vertauscht? 2024, Juli
Anonim
DIY-Steuerung RGB-LED-Farbe über Bluetooth
DIY-Steuerung RGB-LED-Farbe über Bluetooth

Intelligente Glühbirnen werden in letzter Zeit immer beliebter und werden immer mehr zu einem wichtigen Bestandteil des Smart Home-Toolkits. Intelligente Glühbirnen ermöglichen es dem Benutzer, sein Licht über eine spezielle Anwendung auf dem Smartphone des Benutzers zu steuern; die Glühbirne kann ein- und ausgeschaltet und die Farbe kann über die Anwendungsoberfläche geändert werden. In diesem Projekt haben wir einen intelligenten Glühbirnen-Controller gebaut, der über eine manuelle Taste oder eine mobile Anwendung über Bluetooth gesteuert werden kann. Um diesem Projekt etwas Flair zu verleihen, haben wir einige Funktionen hinzugefügt, mit denen der Benutzer eine Beleuchtungsfarbe aus der Liste der Farben auswählen kann, die in der Anwendungsoberfläche enthalten sind. Es kann auch einen „Auto-Mix“aktivieren, um Farbeffekte zu erzeugen und die Beleuchtung jede halbe Sekunde zu ändern. Über eine PWM-Funktion kann der Nutzer seinen eigenen Farbmix erstellen, der auch als Dimmer für die drei Grundfarben (Rot, Grün, Blau) verwendet werden kann. Wir haben der Schaltung auch externe Tasten hinzugefügt, damit der Benutzer in den manuellen Modus wechseln und die Lichtfarbe von einer externen Taste ändern kann.

Dieses Instructable besteht aus zwei Abschnitten; das GreenPAK™-Design und das Android-App-Design. Das GreenPAK-Design basiert auf der Verwendung einer UART-Schnittstelle für die Kommunikation. UART wird gewählt, weil es von den meisten Bluetooth-Modulen sowie den meisten anderen Peripheriegeräten wie WIFI-Modulen unterstützt wird. Folglich kann das GreenPAK-Design in vielen Anschlussarten verwendet werden.

Um dieses Projekt zu bauen, verwenden wir das SLG46620 CMIC, ein Bluetooth-Modul und eine RGB-LED. Das GreenPAK IC wird der Steuerungskern dieses Projekts sein; es empfängt Daten von einem Bluetooth-Modul und/oder externen Tasten und beginnt dann mit dem erforderlichen Verfahren, um die richtige Beleuchtung anzuzeigen. Es erzeugt auch das PWM-Signal und gibt es an die LED aus. Abbildung 1 unten zeigt das Blockschaltbild.

Das in diesem Projekt verwendete GreenPAK-Gerät enthält eine SPI-Verbindungsschnittstelle, PWM-Blöcke, FSM und viele andere nützliche Zusatzblöcke in einem IC. Es zeichnet sich auch durch seine geringe Größe und den geringen Energieverbrauch aus. Dies wird es Herstellern ermöglichen, eine kleine praktische Schaltung mit einem einzigen IC aufzubauen, wodurch die Produktionskosten im Vergleich zu ähnlichen Systemen minimiert werden.

In diesem Projekt steuern wir eine RGB-LED. Um das Projekt wirtschaftlich rentabel zu machen, müsste ein System wahrscheinlich die Leuchtkraft erhöhen, indem viele LEDs parallel geschaltet und die entsprechenden Transistoren verwendet werden; Auch der Stromkreis muss berücksichtigt werden.

Sie können alle Schritte durchgehen, um zu verstehen, wie der GreenPAK-Chip programmiert wurde, um RGB-LED-Farbe über Bluetooth zu steuern. Wenn Sie jedoch den IC einfach programmieren möchten, ohne die gesamte innere Schaltung zu verstehen, laden Sie die GreenPAK-Software herunter, um die bereits fertige GreenPAK-Designdatei anzuzeigen. Schließen Sie das GreenPAK Development Kit an Ihren Computer an und klicken Sie auf Programm, um den benutzerdefinierten IC zur Steuerung der RGB-LED-Farbe über Bluetooth zu erstellen.

Das GreenPAK-Design besteht aus dem UART-Empfänger, der PWM-Einheit und der Steuereinheit, die in den folgenden Schritten beschrieben werden.

Schritt 1: UART-Empfänger

UART-Empfänger
UART-Empfänger

Zuerst müssen wir das Bluetooth-Modul einrichten. Die meisten Bluetooth-ICs unterstützen das UART-Protokoll für die Kommunikation. UART steht für Universal Asynchronous Receiver / Transmitter. UART kann Daten zwischen parallelen und seriellen Formaten hin und her konvertieren. Es enthält einen Seriell-Parallel-Empfänger und einen Parallel-Seriell-Wandler, die beide getrennt getaktet werden.

Die im Bluetooth-Modul empfangenen Daten werden an unser GreenPAK-Gerät übertragen. Der Ruhezustand für Pin10 ist HIGH. Jedes gesendete Zeichen beginnt mit einem logischen LOW-Startbit, gefolgt von einer konfigurierbaren Anzahl von Datenbits und einem oder mehreren logischen HIGH-Stoppbits.

Der UART-Sender sendet 1 START-Bit, 8 Datenbits und ein STOP-Bit. Normalerweise beträgt die Standardbaudrate für ein UART-Bluetooth-Modul 9600. Wir senden das Datenbyte vom Bluetooth-IC an den SPI-Block des GreenPAK™ SLG46620.

Da der GreenPAK-SPI-Block keine START- oder STOP-Bitsteuerung hat, verwenden wir stattdessen diese Bits, um das SPI-Taktsignal (SCLK) zu aktivieren und zu deaktivieren. Wenn Pin10 auf LOW geht, wissen wir, dass wir ein START-Bit erhalten haben, daher verwenden wir den PDLY-Detektor für fallende Flanken, um den Beginn der Kommunikation zu identifizieren. Dieser Detektor für fallende Flanken taktet DFF0, was es dem SCLK-Signal ermöglicht, den SPI-Block zu takten.

Unsere Baudrate beträgt 9600 Bits pro Sekunde, daher muss unsere SCLK-Periode 1/9600 = 104 μs betragen. Daher haben wir die OSC-Frequenz auf 2MHz gesetzt und CNT0 als Frequenzteiler verwendet.

2 MHz-1 = 0,5 μs

(104 μs / 0,5 μs) - 1 = 207

Daher möchten wir, dass der CNT0-Zählerwert 207 beträgt. Um sicherzustellen, dass wir keine Daten verpassen, müssen wir den SPI-Takt um einen halben Taktzyklus verzögern, damit der SPI-Block zum richtigen Zeitpunkt getaktet wird. Wir haben dies erreicht, indem wir CNT6, 2-Bit-LUT1 und die externe Uhr des OSC-Blocks verwendet haben. Der Ausgang von CNT6 geht erst 52 μs nach dem Takten von DFF0 hoch, was der Hälfte unserer 104 μs SCLK-Periode entspricht. Wenn CNT6 hoch ist, lässt das 2-Bit-LUT1-UND-Gatter das 2MHz-OSC-Signal in den EXT passieren. CLK0-Eingang, dessen Ausgang mit CNT0 verbunden ist.

Schritt 2: PWM-Einheit

PWM-Einheit
PWM-Einheit

Das PWM-Signal wird mit PWM0 und einem zugehörigen Taktgenerator (CNT8/DLY8) erzeugt. Da die Pulsbreite vom Benutzer steuerbar ist, verwenden wir FSM0 (das an PWM0 angeschlossen werden kann), um die Benutzerdaten zu zählen.

Im SLG46620 kann 8-Bit-FSM1 mit PWM1 und PWM2 verwendet werden. Das Bluetooth-Modul muss angeschlossen sein, dh der SPI-Parallelausgang muss verwendet werden. Die parallelen SPI-Ausgangsbits 0 bis 7 werden mit DCMP1, DMCP2 und den OUT1 und OUT0 des LF OSC CLK gemuxt. PWM0 erhält seine Ausgabe vom 16-Bit-FSM0. Unverändert führt dies zu einer Übersteuerung der Pulsbreite. Um den Zählerwert auf 8 Bit zu begrenzen, wird ein weiterer FSM hinzugefügt; FSM1 wird als Zeiger verwendet, um zu wissen, wann der Zähler entweder 0 oder 255 erreicht. FSM0 wird verwendet, um den PWM-Impuls zu erzeugen. FSM0 und FSM1 müssen synchronisiert werden. Da beide FSMs über voreingestellte Taktoptionen verfügen, werden CNT1 und CNT3 als Vermittler verwendet, um den CLK an beide FSMs weiterzugeben. Die beiden Zähler sind auf den gleichen Wert eingestellt, der für dieses Instructable 25 beträgt. Wir können die Änderungsrate des PWM-Werts ändern, indem wir diese Zählerwerte ändern.

Der Wert der FSMs wird durch die Signale '+' und '-', die vom SPI Parallel Output stammen, erhöht und verringert.

Schritt 3: Steuereinheit

Steuergerät
Steuergerät

Innerhalb der Steuereinheit wird das empfangene Byte vom Bluetooth-Modul zum SPI Parallel Output geführt und dann an die zugehörigen Funktionen weitergegeben. Zuerst werden die Ausgänge PWM CS1 und PWM CS2 überprüft, um zu sehen, ob das PWM-Muster aktiviert ist oder nicht. Wenn es aktiviert ist, bestimmt es, welcher Kanal die PWM über LUT4, LUT6 und LUT7 ausgibt.

LUT9, LUT11 und LUT14 sind dafür verantwortlich, den Zustand der anderen beiden LEDs zu überprüfen. LUT10, LUT12 und LUT13 prüfen, ob die Manual-Taste aktiviert ist oder nicht. Wenn der manuelle Modus aktiv ist, arbeiten die RGB-Ausgänge gemäß den Ausgangszuständen D0, D1, D2, die jedes Mal geändert werden, wenn die Farbtaste gedrückt wird. Sie ändert sich mit der steigenden Flanke von CNT9, das als Entprellung für steigende Flanken verwendet wird.

Pin 20 ist als Eingang konfiguriert und dient zum Umschalten zwischen manueller und Bluetooth-Steuerung.

Wenn der manuelle Modus deaktiviert und der Auto-Mixer-Modus aktiviert ist, ändert sich die Farbe alle 500 ms mit der steigenden Flanke von CNT7. Eine 4-Bit-LUT1 wird verwendet, um den '000'-Zustand für D0 D1 D2 zu verhindern, da dieser Zustand bewirkt, dass das Licht während des Auto-Mixer-Modus ausgeschaltet wird.

Wenn der manuelle Modus, PWM-Modus und der Auto-Mixer-Modus nicht aktiviert sind, fließen die roten, grünen und blauen SPI-Befehle an die Pins 12, 13 und 14, die als Ausgänge konfiguriert und mit der externen RGB-LED verbunden sind.

DFF1, DFF2 und DFF3 werden verwendet, um einen 3-Bit-Binärzähler aufzubauen. Der Zählerwert erhöht sich mit CNT7-Impulsen, die P14 im Auto-Mixer-Modus passieren, oder von Signalen, die von der Farbtaste (PIN3) im manuellen Modus kommen.

Schritt 4: Android-Anwendung

Android-Anwendung
Android-Anwendung
Android-Anwendung
Android-Anwendung
Android-Anwendung
Android-Anwendung
Android-Anwendung
Android-Anwendung

In diesem Abschnitt werden wir eine Android-Anwendung erstellen, die die Steuerauswahl des Benutzers überwacht und anzeigt. Die Benutzeroberfläche besteht aus zwei Abschnitten: Der erste Abschnitt enthält eine Reihe von Tasten mit vordefinierten Farben, sodass beim Drücken einer dieser Tasten eine LED mit derselben entsprechenden Farbe aufleuchtet. Der zweite Abschnitt (MIX-Quadrat) erzeugt eine Mischfarbe für den Benutzer.

Im ersten Abschnitt wählt der Benutzer den LED-Pin aus, durch den das PWM-Signal geleitet werden soll; das PWM-Signal kann jeweils nur an einen Pin weitergegeben werden. Die untere Liste steuert die anderen beiden Farben logisch ein/aus während des PWM-Modus.

Die Auto-Mixer-Taste ist für das Ausführen des automatischen Lichtwechselmusters verantwortlich, bei dem sich das Licht jede halbe Sekunde ändert. Der Abschnitt MIX enthält zwei Checkbox-Listen, damit der Benutzer entscheiden kann, welche zwei Farben zusammengemischt werden sollen.

Wir haben die Anwendung mithilfe der MIT-App-Erfinder-Website erstellt. Es ist eine Site, die das Erstellen von Android-Anwendungen ohne vorherige Softwareerfahrung mit grafischen Softwareblöcken ermöglicht.

Zuerst haben wir eine grafische Benutzeroberfläche entworfen, indem wir eine Reihe von Schaltflächen hinzugefügt haben, die für die Anzeige der vordefinierten Farben verantwortlich sind. Außerdem haben wir zwei Kontrollkästchenlisten hinzugefügt, und jede Liste hat 3 Elemente; Jedes Element ist in einem eigenen Kästchen dargestellt, wie in Abbildung 5 dargestellt.

Die Schaltflächen innerhalb der Benutzeroberfläche sind mit Softwarebefehlen verknüpft: Alle Befehle, die die App über Bluetooth sendet, liegen im Byte-Format vor, und jedes Bit ist für eine bestimmte Funktion verantwortlich. Tabelle 1 zeigt die Form der an das GreenPAK gesendeten Befehlsframes.

Die ersten drei Bits, B0, B1 und B2, halten den Zustand der RGB-LEDs im direkten Steuermodus durch die Tasten der vordefinierten Farben. Wenn Sie also auf einen von ihnen klicken, wird der entsprechende Wert der Schaltfläche gesendet, wie in Tabelle 2 gezeigt.

Die Bits B3 und B4 enthalten die Befehle '+' und '-', die für das Erhöhen und Verringern der Pulsbreite verantwortlich sind. Wenn die Taste gedrückt wird, ist der Bitwert 1, und wenn die Taste losgelassen wird, ist der Bitwert 0.

Die Bits B5 und B6 sind für die Auswahl des Pins (Farbe) verantwortlich, durch den das PWM-Signal geleitet wird: Die Farbbezeichnungen dieser Bits sind in Tabelle 3 aufgeführt. Das letzte Bit, B7, ist für die Aktivierung des Automixers verantwortlich.

Abbildung 6 und Abbildung 7 demonstrieren den Vorgang der Verknüpfung von Schaltflächen mit Programmierblöcken, die für das Senden der vorherigen Werte verantwortlich sind.

Um das vollständige Design der Anwendung zu sehen, können Sie die angehängte Datei „.aia“mit den Projektdateien herunterladen und auf der Hauptseite öffnen.

Abbildung 8 unten zeigt den Schaltplan der obersten Ebene.

Schritt 5: Ergebnisse

Der Controller wurde erfolgreich getestet und es wurde gezeigt, dass die Farbmischung zusammen mit anderen Funktionen ordnungsgemäß funktioniert.

Abschluss

In diesem Instructable wurde eine intelligente Glühbirnenschaltung gebaut, um von einer Android-Anwendung drahtlos gesteuert zu werden. Das in diesem Projekt verwendete GreenPAK CMIC half auch dabei, mehrere wesentliche Komponenten für die Lichtsteuerung in einem kleinen IC zu verkürzen und zu integrieren.

Empfohlen: