Arduino/App gecontroleerd Desk Light (4 / 6 stap)

Stap 4: Arduino Code

Als met de App-code zal ik dekken dit kort...

Eerst setup ik al mijn variabelen, de sensoren en LED's toe te wijzen aan de juiste pinnen. De uitvoer van de sensoren hall-effect zal worden gelezen met behulp van de functie van analogRead, geven een waarde tussen 0 en 1023. Zoals eerder beschreven output het helft wanneer geen magneten, dus ongeveer 500 presenteren. Ik gebruik lage en hoge trigger variabelen om mij te gemakkelijk aanpassen wanneer het weet de puck is over de sensor.


De neopixels vereisen een bibliotheek zodat de hier omschreven...

De void setup start de feuilletons, pinnen (bluetooth) gebruik voor de Micro de Rx/Tx Serial1... De pennen zijn vervolgens ingesteld op inputs of outputs en LED's ingesteld op uitgeschakeld.

Nu is het de hoofdlus...

Dit eerste deel is controleren of alle gegevens wordt ontvangen van de App. Serial1.available() is het lezen van de serie en krijgen van het aantal bytes in het koord. Als dat de > 0 weet ik datas inkomende.

Als u zich herinnert, alle tekenreeksen die ik vanuit de App verzenden eindigen met een vraagteken... dwz (Bright100)?

Ik gebruik de functie .readStringUntil om te lezen van de seriële gegevens tot het vraagteken (Bright100) en de variabele BTstring ingesteld op dit. Ik check of BTstring met eindigt een ')' om ervoor te zorgen volledige opdrachten worden ontvangen. Als ze zijn, dan is de BluetoothProgram-lus callled... Dit is beschreven verder naar beneden...

Dit volgende beetje Hiermee bepaalt u het alarm van de zonsopgang. In principe als het alarm is ingeschakeld en de tijd klopt zal dan beginnen vervagen van de LED's. Als gevolg van het menselijk oog is het waarnemen van licht logaritmisch is beter te doen elke vorm van LED vervagen ups/neer met een exponentiële curve in plaats van lineaire. Vandaar een vergelijking is het besturen van de PWM-waarden...

Om te voorkomen dat de puck bemoeien met App controle krijgt het gedeactiveerd wanneer u App gebruiken. Om de puck opnieuw te activeren moet u verplaatsen uit het product gedurende 5 seconden... Dit codefragment wordt eerst gecontroleerd of alle sensoren zijn het uitvoeren van een steady-state-waarde (geen magneet) en start een timer. Wanneer 5 seconden is voltooid is terug de variabele BTinControl ingesteld op false.

De code voor de puck nu... De sensoren eerst te lezen.

Als het licht momenteel uitgeschakeld is, zal controleren of een van de sensoren boven zijn of onder de triggerpoints in de boog dwz de puck heeft gebracht. Als het is, dan zal het verdwijnen van de witte LED's aan uw laatste instelling maakt niet uit waar u plaatst.

Om de LED's set te uw laatste instelling in plaats van bijwerken naar de waarden vennoot met welke sensoren zijn triggering, is de MovedSinceStandby-variabele ingesteld op false. Dit volgende beetje van code in principe controleert of u hebt verruilt de puck haar aanvankelijke standpunt door een vast bedrag...

Als u de puck verplaatst heet de 'MainProgram' om te werken de helderheid/kleur temp. Dit is beschreven verder naar beneden.

Het laatste stukje in deze controles of de puck terug in de standby-modus is gebracht dock - hoofdlus is sensor 12 een waarde boven/onder een trekkerpunt wordt gelezen. Als zo vervaagt het de LED terug naar beneden...

De bluetooth-lus:

Zoals hierboven beschreven wanneer gegevens via bluetooth wordt ontvangen, wordt de tekenreeks wordt gelezen. Nu moeten we controleren wat die string zegt...

Alle snaren afgezien van helderheid, kleur temp en RGB zijn vrij eenvoudig te behandelen. Controleer of BTstring gelijk aan de tekst die wordt verzonden vanuit de App is.

Als u herinnert aan, wanneer u schermen in de App, stuurt zij een bluetooth-opdracht. Hier wij vraag daarvoor en sommige variabelen instellen op true of false zodat we weten welke scherm je op.

U ziet aan het einde van elke sectie dat ik de variabele BTinControl op true en schakelt u de BTstring-waarde ingesteld.

Wanneer u de power-knop in de App onttrekt zal het vervagen de LEDs omhoog of omlaag. De variabelen zoals hierboven voor welke scherm je op worden gebruikt om te beslissen of het is de RGB- of witte LED's te controleren...

Voor helderheid, de kleur temp en de RGB-nodig ik om te lezen van de snaren in een iets andere manier. Omdat het nummer deel van de tekenreeks zal veranderen ik vraag me af of de tekenreeks met een van de id's niet de volledige tekenreeks, dus gewoon begint (Bright hier...

Ik moet nu te scheiden van de werkelijke helderheidswaarde van de tekenreeks. De indeling van de tekenreeks die wordt verzonden vanuit de App is (Brightwaarde) zodat ik dus weet dat de helderheidswaarde tussen de 't 'en de')'. De positie van de 't' zal constant blijven, het zal altijd de 7de teken in de tekenreeks. Maar omdat de helderheidswaarde kan tussen 10 en 100 op de positie van de ')' zal veranderen. Ik gebruik het .indexOf commando te werken waar de ')' is, wat karakter het is en kan vervolgens de opdracht .substring om te lezen van de tekenreeks tussen het 7de karakter en de ')' teken positie. Dit laat me met enkel de helderheidswaarde die ik gebruiken kan om het RGB- of witte LED's afhankelijk van de scherm te passen.

Temp kleurenaanpassing is een soortgelijk proces hierboven, maar de waarde zal liggen tussen de 'p' en de ')' ditmaal...

Voor de RGB-aanpassing hebben we drie waarden uit de tekenreeks wilt ophalen, maar het is een soortgelijk proces opnieuw. Vanuit de app ontvangen we tekenreeksen in de vorm (RGBwaarde. waarde. waarde)

Zodat ik weet dat de waarde voor rood tussen de 'B' en de eerste full stop. De groene waarde is tussen de 1e/2e volledige stoppen en de blauwe waarde is tussen de 2de full stop en de ')'.

Als we eenmaal de waarden de neopixles zijn ingesteld op de nieuwe kleur...

Hier controleren we of het alarm wordt ingeschakeld of uitgeschakeld. Als het alarmtijdstip is gewijzigd zal krijgen wij een tekenreeks met het aantal milliseconden vanaf nu tot het alarm verzonden. Deze waarde wordt opnieuw gewonnen uit de reeks en om te kunnen controleren of de tijd om te beginnen de zonsopgang we moeten een variabele ingesteld op de huidige tijd (millis)...

Puck-besturingselementen:

Zoals beschreven voordat als de puck (magneet) één manier omhoog is het de hall sensor output onder de lage trigger zal rijden en als de andere weg omhoog boven de hoge trigger.

Hierdoor kan de controle van zowel de helderheid als de kleur temp op de dezelfde boog...

De waarden van de sensoren worden gelezen. Als een van hen lager dan de lage trigger-waarde zijn vervolgens wij zijn aan te passen kleur temp. Er zijn 11 sensors onder de boog die zal op zijn beurt gaan onder het trekkerpunt output zoals de puck is verplaatst overheen. Elke sensor heeft een PWM-waarde voor de koele en warme LEDs ertegen, beginnend met sensor 1 op 100% warm, 0% cool en werken aan de 11e bij 0% warm, 100% cool.

Het besturingselement helderheid gebeurt op dezelfde manier... controle als de sensoren uitgangen boven de hoge trigger zijn ditmaal en geven elke sensor een helderheid weging van waarde.

De weging van deze helderheid wordt vervolgens vermenigvuldigd met de kleur temp waarde te geven van de totale uitvoer van waarde. Zodat u kunt elke kleur temp ingesteld op elke helderheid...

Gerelateerde Artikelen

Arduino Bluetooth gecontroleerde bureaulamp - met Relay Kluisje

Arduino Bluetooth gecontroleerde bureaulamp - met Relay Kluisje

Vandaag zal ik u tonen hoe te bouwen uw eigen Bluetooth gecontroleerde bureaulamp met arduino uno.Voor dit project zul je om te bouwen van de kluis van het ralay dat u kunt het hier vinden:(Opmerking: als u niet wilt om te bouwen van een kluisje kunt
Arduino stem gecontroleerde Robot met RGB-LED

Arduino stem gecontroleerde Robot met RGB-LED

Hoi is dit mijn eerste project in instructable. Dit is een arduino robot gecontroleerd in drie ways.you kunt bepalen met behulp van spraak, knopbesturingselement en richtingscontrole met behulp van android apps. We kunnen ook een RGB led met Stembedi
Android + Arduino + bluetooth gecontroleerde RC speelgoed

Android + Arduino + bluetooth gecontroleerde RC speelgoed

Hoi techneuten dit is ma eerste project met behulp van de Arduino.This is een eenvoudig project. Ik dank de andere instructable leden in ma problemen op te lossen.Dit speelgoed kan worden gecontroleerd met behulp van touch bediening anders met behulp
Sensor Temperatura y Humedad DHT11-Arduino-APP

Sensor Temperatura y Humedad DHT11-Arduino-APP

Nl este instructable veremos como contact el sensor de temperatura y humedad DHT11 al Arduino Uno y mandar los datos por Bluetooth een una App para poder verlo nl el celular.Los materiales que necesitaremos zoon:Arduino UNOSensor DHT11Modulo Bluetoot
SoGo Mini alleen draagbare Multi Speaker met APP gecontroleerd RGB LED-verlichting

SoGo Mini alleen draagbare Multi Speaker met APP gecontroleerd RGB LED-verlichting

Binnenkort SoGo Mini enige draagbare Multi Speaker met APPGecontroleerde RGB LED licht en aanpasbare ring kleur. Breed scala van compatibiliteit met andere apparaten, zoals PC, Mac, Android, IOS, 20 plus uur power back-up en brede draadloos bereik ma
Arduino Bluetooth gecontroleerde elektrische deuropener

Arduino Bluetooth gecontroleerde elektrische deuropener

Hallo! In deze handleiding Instructables zal ik u tonen hoe te maken van uw eigen Bluetooth gecontroleerde systeem van de deur ontgrendelen met behulp van de Arduino uno board. Ik maakte mijn eigen circuit met behulp van de ATmega328 micro controller
Android App gecontroleerd ATR (alle terrrain racer)

Android App gecontroleerd ATR (alle terrrain racer)

De Bluetooth gecontroleerde alle terrein Racer (BCATR) is een soepele mix van intelligentie en robuustheid.Het is dat een 4-wielaandrijving, aangedreven door een paar 12v 2200 mAh Li-Po batterijen. 4 hoog koppel gelijkstroommotoren geven het een tops
Robot Arm Arduino App

Robot Arm Arduino App

We hadden behoefte aan een platform voor het testen van onze nieuwe MICILE / Arduino gebruikersinterface. De robot hand en arm leek iets complex genoeg om echt het concept een uitgebreide training. Het project konden we gebruik van een MICILE Tablet,
Arduino PWM muziek LED Light

Arduino PWM muziek LED Light

On mijn vakantie 2 weken tussen zomer klassen en de school van mijn 5e jaar heb ik besloten om wat pret met mijn 1W led's dat ik nooit gebruikt heb alhoewel ik heb hen voor eeuwig had.Dit werd gebruikt om het dek uit mijn huis, dus we iets anders dan
Arduino licht gecontroleerd Bot

Arduino licht gecontroleerd Bot

Dit is een Arduino Robot die wordt beheerd door licht!De enige Sensor wordt gebruikt is een trio van LDR.De 3 LDRs bevinden zich op 3 verschillende plaatsen op het Bot. dat wil zeggen, aan de voorkant, links, rechts.Wanneer licht van voldoende intens
Arduino stem gecontroleerde robotarm

Arduino stem gecontroleerde robotarm

Heb je ooit gevoeld fustrated doen, ik wens u enerzijds meer had?Nou, zal dit u helpen.Dit is een robot die wat doen kan u wilt gewoon spreken aan bijvoorbeeld je kunt zeggen "up" en de robot zal doen een beetje beweging naar de zijkant dat u ge
ROVER Bot - de Arduino Bluetooth gecontroleerde Tank

ROVER Bot - de Arduino Bluetooth gecontroleerde Tank

Arduino Bluetooth ROVER RobotDe Arduino ROVERBot. Dit bericht wil presenteren u de stappen van de bouw van een ROVER met behulp van de Arduino en een bluetooth-module. Gebruikt om te controleren de ROVER was een Android telefoon als RC (radio control
Arduino auto gecontroleerd via Bluetooth

Arduino auto gecontroleerd via Bluetooth

Alles wat die we weten dat Arduino een uitstekende prototyping platform, is voornamelijk omdat het een vriendelijke programmeertaal gebruikt en er zijn een heleboel extra ongelooflijke onderdelen die ons grote ervaringen bieden.We kunnen de Arduino t
Automatische Blinds met Arduino. Gecontroleerd door Android-TV Remote-knoppen-klok

Automatische Blinds met Arduino. Gecontroleerd door Android-TV Remote-knoppen-klok

Hallo jij daar!Eerste Instructable...Dagelijks in de ochtend open ik de blind bij 8:00 am en ik dicht op waas @ 19:00 uur, dus heb ik besloten voor het automatiseren van de gehele procedure.Ik gebruik een Arduino pro mini 5v, Encoder voor huidige pos