Inhoudsopgave:

DIY Smart LED-dimmer bestuurd via Bluetooth - Ajarnpa
DIY Smart LED-dimmer bestuurd via Bluetooth - Ajarnpa

Video: DIY Smart LED-dimmer bestuurd via Bluetooth - Ajarnpa

Video: DIY Smart LED-dimmer bestuurd via Bluetooth - Ajarnpa
Video: Умный модульный wi-fi LED светильник - гексагональные панели с адресными светодиодами 2024, Juli-
Anonim
DIY Smart LED-dimmer bestuurd via Bluetooth
DIY Smart LED-dimmer bestuurd via Bluetooth

Deze Instructable beschrijft hoe je een slimme digitale dimmer bouwt. Een dimmer is een veel voorkomende lichtschakelaar die wordt gebruikt in huizen, hotels en vele andere gebouwen. Oudere versies van dimmerschakelaars waren handmatig en bevatten meestal een draaischakelaar (potentiometer) of knoppen om het lichtniveau te regelen. Deze Instructable beschrijft hoe je een digitale dimmer bouwt die twee manieren heeft om de lichtintensiteit te regelen; een smartphone en fysieke knoppen. De twee modi kunnen naadloos samenwerken, zodat de gebruiker de helderheid kan verhogen of verlagen met zowel een knop als een smartphone. Het project wordt geïmplementeerd met behulp van een SLG46620V CMIC, HC-06 Bluetooth-module, drukknoppen en LED's.

We gaan de SLG46620V CMIC gebruiken omdat deze helpt om discrete projectcomponenten te minimaliseren. GreenPAK™ IC's zijn klein en hebben multifunctionele componenten, waardoor een ontwerper componenten kan verminderen en nieuwe functies kan toevoegen. Bovendien worden de projectkosten vervolgens verlaagd.

De SLG46620V bevat ook een SPI-verbindingsinterface, PWM-blokken, FSM en een heleboel handige extra blokken in één kleine chip. Met deze componenten kan een gebruiker een praktische slimme dimmer bouwen die kan worden bediend via een Bluetooth-apparaat of muurknoppen, ondersteuning biedt voor langdurig dimmen en de toevoeging van selecteerbare functies zonder een microcontroller of dure componenten te gebruiken.

Hieronder hebben we de stappen beschreven die nodig zijn om te begrijpen hoe de oplossing is geprogrammeerd om een slimme LED-dimmer te creëren die via Bluetooth wordt bestuurd. Als u echter alleen het resultaat van het programmeren wilt hebben, download dan GreenPAK-software om het reeds voltooide GreenPAK-ontwerpbestand te bekijken. Sluit de GreenPAK Development Kit aan op uw computer en druk op programma om de slimme LED-dimmer te maken die via Bluetooth wordt bestuurd.

Stap 1: Projectfuncties en interface

Projectfuncties en interface
Projectfuncties en interface

Projectkenmerken:

1. Twee controlemethoden; mobiele app en echte knoppen.

2. Soepele aan-uit overgang voor het licht. Dit is gezonder voor de ogen van de consument. Het geeft ook een luxer gevoel, wat aantrekkelijk is voor hotels en andere dienstverlenende bedrijven.

3. Slaapmodusfunctie. Dit zal een toegevoegde waarde zijn voor deze toepassing. Wanneer de gebruiker deze modus activeert, neemt de helderheid van het licht geleidelijk af in 10 minuten. Dit helpt mensen die last hebben van slapeloosheid. Het is ook handig voor kinderkamers en winkels (sluitingstijd).

Projectinterface

De projectinterface heeft vier drukknoppen, die worden gebruikt als GreenPAK-ingangen:

AAN\UIT: zet het licht AAN\UIT (soft-start\stop).

UP: lichtniveau verhogen.

Omlaag: lichtniveau verlagen.

Slaapmodus: door de slaapmodus te activeren, neemt de helderheid van het licht geleidelijk af over een periode van 10 minuten. Dit geeft de gebruiker de tijd voordat hij gaat slapen en garandeert dat het licht niet de hele nacht AAN blijft.

Het systeem geeft een PWM-signaal af, dat wordt doorgegeven aan een externe LED en LED-indicator voor de slaapmodus.

Het GreenPAK-ontwerp bestaat uit 4 hoofdblokken. De eerste is een UART-ontvanger, die gegevens van de Bluetooth-module ontvangt, opdrachten uitpakt en naar een controle-eenheid stuurt. Het tweede blok is een besturingseenheid, die opdrachten ontvangt van de UART-ontvanger of van de externe knoppen. De besturingseenheid bepaalt de vereiste actie (AAN/UIT zetten, verhogen, verlagen, slaapmodus inschakelen). Deze eenheid wordt geïmplementeerd met behulp van LUT's.

Het derde blok voedt de CLK generatoren. In dit project wordt een FSM-teller gebruikt om de PWM aan te sturen. De waarde van de FSM zal veranderen (omhoog, omlaag) volgens de volgorde die wordt gegeven door 3 frequenties (hoog, gemiddeld en laag). In deze sectie worden de drie frequenties gegenereerd en wordt de vereiste CLK volgens de vereiste volgorde doorgegeven aan FSM; Bij het in-/uitschakelen gaat de hoge frequentie naar FSM naar soft start/stop. Tijdens het dimmen passeert de middenfrequentie. De lage frequentie passeert in de slaapmodus om de FSM-waarde langzamer te verlagen. Dan neemt ook de lichthelderheid langzaam af. Het vierde blok is de PWM-eenheid, die pulsen genereert naar externe LED's.

Stap 2: GreenPAK-ontwerp

De beste manier om een dimmer te bouwen met GreenPAK is door de 8-bit FSM en een PWM te gebruiken. In de SLG46620 bevat FSM1 8 bits en kan worden gebruikt met PWM1 en PWM2. De Bluetooth-module moet zijn aangesloten, wat betekent dat de parallelle SPI-uitgang moet worden gebruikt. De parallelle SPI-uitgangsbits 0 t/m 7 worden gecombineerd met DCMP1-, DMCP2- en LF OSC CLK-, OUT1-, OUT0 OSC-uitgangen. PWM0 verkrijgt zijn uitvoer van FSM0 (16 bits). FSM0 stopt niet bij 255; het loopt op tot 16383. Om de tellerwaarde te beperken tot 8 bits wordt nog een FSM toegevoegd; FSM1 wordt gebruikt als een aanwijzer om te weten wanneer de teller 0 of 255 bereikt. FSM0 werd gebruikt om de PWM-puls te genereren. Omdat de waarden van de twee FSM's tegelijkertijd moeten worden gewijzigd om dezelfde waarde te hebben, wordt het ontwerp een beetje complex waarbij beide FSM's een vooraf gedefinieerde, beperkte, selecteerbare CLK hebben. CNT1 en CNT3 worden gebruikt als mediatoren om de CLK door te geven aan beide FSM's.

Het ontwerp bestaat uit de volgende onderdelen:

- UART-ontvanger

- Besturingseenheid

- CLK-generatoren en multiplexer

- PWM

Stap 3: UART-ontvanger

UART-ontvanger
UART-ontvanger

Eerst moeten we de HC06 Bluetooth-module instellen. De HC06 gebruikt het UART-protocol voor communicatie. UART staat voor Universal Asynchronous Receiver / Transmitter. UART kan gegevens heen en weer converteren tussen parallelle en seriële formaten. Het bevat een serieel-naar-parallel-ontvanger en een parallel-naar-serieel-omzetter die beide afzonderlijk worden geklokt. De gegevens die in de HC06 worden ontvangen, worden verzonden naar ons GreenPAK-apparaat. De inactieve status voor Pin 10 is HOOG. Elk verzonden teken begint met een logisch LAGE startbit, gevolgd door een configureerbaar aantal databits en een of meer logische HOGE stopbits.

De HC06 verzendt 1 START-bit, 8 databits en één STOP-bit. De standaard baudrate is 9600. We sturen de databyte van de HC06 naar het SPI-blok van de GreenPAK SLG46620V.

Aangezien het SPI-blok geen START- of STOP-bitbesturing heeft, worden die bits in plaats daarvan gebruikt om het SPI-kloksignaal (SCLK) in en uit te schakelen. Wanneer Pin 10 LAAG wordt, heeft het IC een START-bit ontvangen, dus gebruiken we de PDLY-valflankdetector om het begin van de communicatie te identificeren. Die dalende-flankdetector klokt DFF0, waardoor het SCLK-signaal het SPI-blok kan klokken.

Onze baudrate is 9600 bits per seconde, dus onze SCLK-periode moet 1/9600 = 104 µs zijn. Daarom hebben we de OSC-frequentie ingesteld op 2 MHz en CNT0 als frequentiedeler gebruikt.

2 MHz - 1 = 0,5 µs

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

Daarom willen we dat de CNTO-tellerwaarde 207 is. Om ervoor te zorgen dat er geen gegevens worden gemist, wordt een halve klokcyclusvertraging op de SPI-klok toegevoegd, zodat het SPI-blok op het juiste moment wordt geklokt. Dit wordt bereikt door CNT6, 2-bit LUT1 en de externe klok van het OSC-blok te gebruiken. De output van CNT6 wordt pas in 52 µs hoog nadat DFF0 is geklokt, wat precies de helft is van onze SCLK-periode van 104 µs. Wanneer het hoog wordt, laat de 2-bit LUT1 AND-poort het 2 MHz OSC-signaal door naar de EXT. CLK0-ingang, waarvan de uitgang is verbonden met CNT0.

Stap 4: Besturingseenheid

Besturingseenheid
Besturingseenheid

In deze sectie worden opdrachten uitgevoerd volgens de ontvangen byte van de UART-ontvanger of volgens de signalen van de externe knoppen. Pins 12, 13, 14, 15 zijn geïnitialiseerd als ingangen en zijn verbonden met externe knoppen.

Elke pin is intern verbonden met een OF-poortingang, terwijl de tweede ingang van de poort is verbonden met het overeenkomstige signaal dat via Bluetooth van de smartphone komt en dat op de parallelle SPI-uitgang zal verschijnen.

DFF6 wordt gebruikt om de slaapmodus te activeren, waarbij de uitvoer naar hoog verandert met de stijgende flank afkomstig van 2-bit LUT4, terwijl DFF10 wordt gebruikt om de verlichtingsstatus te behouden en de uitvoer verandert van laag naar hoog en vice versa bij elke stijgende flank. van 3-bit LUT10-uitgang.

FSM1 is een 8-bits teller; het geeft een hoge puls op de uitgang wanneer de waarde 0 of 255 bereikt. Daarom wordt het gebruikt om te voorkomen dat FSM0 (16-bit) de waarde 255 overschrijdt, omdat de uitgang DFF's reset en de DFF10-status verandert van aan naar uit en vice versa als de verlichting wordt bediend met de knoppen +, - en het maximum/minimum niveau is bereikt.

De signalen die zijn aangesloten op de FSM1-ingangen houden, omhoog zal FSM0 bereiken via P11 en P12 om te synchroniseren en dezelfde waarde op beide tellers te behouden.

Stap 5: CLK-generatoren en multiplexer

CLK-generatoren en multiplexer
CLK-generatoren en multiplexer

In deze sectie worden drie frequenties gegenereerd, maar slechts één zal de FSM's tegelijkertijd klokken. De eerste frequentie is RC OSC, die wordt opgehaald uit de matrix 0 tot en met P0. De tweede frequentie is LF OSC die ook wordt opgehaald uit de matrix 0 tot en met P1; de derde frequentie is de CNT7-uitgang.

3-bit LUT9 en 3-bit LUT11 laten één frequentie door, volgens de 3-bit LUT14-uitgang. Daarna zendt de gekozen klok naar FSM0 en FSM1 via CNT1 en CNT3.

Stap 6: PWM

PWM
PWM

Ten slotte transformeert de FSM0-waarde naar een PWM-signaal om te verschijnen via pin 20 die is geïnitialiseerd als een uitgang en is verbonden met de externe LED's.

Stap 7: Android-app

Android-app
Android-app
Android-app
Android-app
Android-app
Android-app

De Android-app heeft een virtuele bedieningsinterface die lijkt op de echte interface. Het heeft vijf knoppen; AAN\UIT, OMHOOG, OMLAAG, Slaapmodus en Verbinden. Deze Android-applicatie kan het indrukken van een knop omzetten in een commando en zal de commando's naar de Bluetooth-module sturen om uit te voeren.

Deze app is gemaakt met MIT App Inventor, waarvoor geen programmeerervaring vereist is. Met de App Inventor kan de ontwikkelaar een applicatie voor Android OS-apparaten maken met behulp van een webbrowser door programmeerblokken aan te sluiten. U kunt onze app importeren in de MIT App Inventor door te klikken op Projecten -> Project importeren (.aia) vanaf mijn computer en het.aia-bestand te selecteren dat bij deze app-notitie wordt geleverd.

Om de Android-applicatie te maken, moet een nieuw project worden gestart. Er zijn vijf knoppen vereist: één is een lijstkiezer voor Bluetooth-apparaten en de andere zijn de bedieningsknoppen. We moeten ook een Bluetooth-client toevoegen. Afbeelding 6 is een schermafbeelding van de gebruikersinterface van onze Android-applicatie.

Nadat we de knoppen hebben toegevoegd, gaan we aan elke knop een softwarefunctie toewijzen. We gaan 4 bits gebruiken om de status van de knoppen weer te geven. Eén bit voor elke knop, dus als je op de knop drukt, wordt er een specifiek nummer via Bluetooth naar het fysieke circuit gestuurd.

Deze cijfers zijn weergegeven in tabel 1.

Conclusie

Deze Instructable beschrijft een slimme dimmer die op twee manieren kan worden bediend; een Android-app en echte knoppen. Binnen de GreenPAK SLG46620V zijn vier afzonderlijke blokken geschetst die de processtroom regelen voor het verhogen of verlagen van de PWM van een lamp. Bovendien wordt een slaapstandfunctie beschreven als een voorbeeld van extra modulatie die beschikbaar is voor de toepassing. Het getoonde voorbeeld is laagspanning, maar kan worden aangepast voor implementaties met hogere spanning.

Aanbevolen: