Arduino/App kontrollerade skrivbord ljus (4 / 6 steg)

Steg 4: Arduino kod

Som med App koden ska jag täcka detta kort...

Först setup jag min variabler, tilldela sensorer och leds till rätt stift. Utdata från hall effekt sensorer kommer att läsas med funktionen analogRead, vilket ger ett värde mellan 0 och 1023. Som tidigare beskrivits utgångar det hälften när inga magneter presenterar, så omkring 500. Jag använder låg och hög trigger variabler att tillåta mig att enkelt justera när det vet pucken är över sensorn.



Neopixels kräver ett bibliotek så att är definieras här...

Ogiltiga inställningar börjar följetong, för mikro Rx/Tx stift (bluetooth) använda Serial1... Stiften är sedan skapa ingångar eller utgångar och LED'S set off.

Nu är det den viktigaste loopen...

Detta första avsnitt är att kontrollera om data är tas emot från App. Serial1.available() läser seriella och att få antalet byte i strängen. Om det > 0 jag vet datas inkommande.

Om du kommer ihåg, alla strängar som jag skickar från App avslutas med ett frågetecken... dvs (Bright100)?

Jag använder funktionen .readStringUntil att läsa seriella data upp till frågetecknet (Bright100) och sätta variabeln BTstring till detta. Jag kollar om BTstring slutar med en ') "att se till kompletta kommandon tas emot. Om de är, då den BluetoothProgram slingan är benämnas... Detta beskrivs längre ner...

Denna nästa bit styr sunrise larmet. I princip om larmet är aktiverat och tiden är korrekt börjar då det bleknande upp lysdioder. På grund av det mänskliga ögat är uppfatta ljus logaritmiskt bättre att göra någon form av LED fade ups/ner med en exponentiell kurva snarare än linjärt. Därav driver en ekvation PWM värden...

För att undvika pucken störa App kontroll blir det inaktiveras när du använder App. För att åter aktivera pucken måste du flytta det utanför produkten i 5 sekunder... Denna bit kod kontrollerar först om alla sensorer utskrift av en stationära tillståndets värde (ingen magnet) och sedan startar en timer. När 5 sekunder är klar sätts variabeln BTinControl tillbaka till false.

Koden för pucken nu... Sensorerna måste först läsas.

Om ljuset är för närvarande avstängd, kommer att det kontrollera om någon av sensorerna är ovanför eller nedanför triggerpunkter dvs pucken har placerats på bågen. Om det är då det kommer att tona upp vita LED's till din senaste inställning oavsett var du placerar den.

För att hålla lysdioder set till din senaste inställning istället för uppdatering till som associeras med oavsett sensorer dess utlösande, är MovedSinceStandby variabeln satt till false. Denna nästa bit kod kontrollerar i princip oavsett om du har flyttat pucken från sitt ursprungliga läge av en viss...

Om du flyttar pucken kallas "MainProgram" för att uppdatera ljusstyrka/färg temp. Detta beskrivs längre ner.

Den sista biten i denna huvudloop kontroller om pucken har lagts tillbaka på standby docka - är sensor 12 läsning ett värde över/under en trigger-punkt. Så bleknar det LED tillbaka ner...

Bluetooth-loop:

Som beskrivs ovan när data tas emot via bluetooth, läses strängen. Vi måste nu kolla vad strängen säger...

Alla strängar förutom ljusstyrka, färg temp och RGB är ganska lätt att hantera. Du kontrollera om BTstring är lika med den text som skickas från App.

Om ni minns, när du ändrar skärmar i App skickas ett bluetooth-kommando. Här vi fråga för det och vissa variabler att sant eller falskt så vi vet vilken skärm du är på.

Märka i slutet av varje avsnitt jag anger du variabeln BTinControl till true och rensa BTstring värdet.

När du trycker på strömbrytaren i App kommer det försvinna lysdioderna upp eller ner. De variabler som ovan för vilken skärm du på används för att avgöra om det är RGB eller vita LED till kontroll...

För ljusstyrka, färg temp och RGB måste jag läsa strängarna på ett något annorlunda sätt. Eftersom den främsta delen av strängen kommer att ändra jag ifrågasätter huruvida strängen börjar med en av identifierarna inte full strängen, så det är bara (Bright här...

Jag måste nu att skilja ut de faktiska intensitetsvärde från strängen. Formatet på strängen skickas från App är (Brightvärde) så därför vet jag intensitetsvärde mellan 't 'och den') ". Positionen för 't' förblir konstant, det kommer alltid vara den 7: e tecknet i strängen. Men eftersom ljusstyrka kan vara mellan 10 och 100 ställning den ') "kommer att förändras. Jag använder kommandot .indexOf för att räkna ut var den ")" är, vilken karaktär det är och kan sedan använda kommandot .substring för att läsa strängen mellan 7: e tecknet och ")" karaktär position. Detta lämnar mig med bara ljusstyrka värde som jag kan använda för att justera RGB eller vita LED beroende på skärmen.

Temp färgjusteringen är en liknande process ovan men värdet kommer att vara mellan "p" och ")" denna gång...

För RGB justering har vi tre värden till extraktet från strängen, men det är en liknande process igen. Från app vi få strängar i form (RGBvärde. värde. värde)

Så jag vet blir röda värdet mellan "B" och det första fullt stoppet. Det gröna värdet är mellan de 1: a/2: a full stannar och blå värdet är mellan det 2: a fullt stoppet och ")".

När vi har ställs värdet neopixles till ny färg...

Här kontrollerar vi om larmet är att aktiveras eller inaktiveras. Om alarmtiden ändras kommer vi få skickas en sträng med antalet millisekunder från nu till larmet. Detta värde är igen utdraget från strängen och för att kontrollera om det är dags att börja soluppgången måste vi in en variabel till den aktuella tiden (millis)...

Pucken kontroller:

Som beskrivs innan om pucken (magnet) är ett sätt upp det att köra hall sensor utdata nedan låg utlösaren och om den andra långt upp över höga utlösaren.

Detta möjliggör kontroll av både ljusstyrka och färgtemperatur på samma båge...

Sensorer värdena avläses. Om någon av dem är mindre än värdet för låg trigger vi justera färgtemperatur. Det finns 11 sensorer i arc-området, som utgångar kommer i sin tur gå nedan trigger-punkt som pucken är flytta över dem. Varje sensor har en PWM-värde för de svala och varma lysdioderna mot det, börjar med sensor 1 på 100% varm, 0% cool och arbetar för att 11 på 0% varm, 100% cool.

Ljusstyrkan kontrollen sker på samma sätt... Kontrollera om sensorer utgångarna är ovanför den höga utlösaren denna gång och ge varje sensor en ljusstyrka viktning värde.

Denna ljusstyrka viktning multipliceras sedan med det färg temp värdet att ge totalt produktionen värde. Så att du kan ställa in någon färg temp till någon ljusstyrka...

Se Steg
Relaterade Ämnen

SoGo Mini endast bärbar Multi högtalare med APP kontrollerad RGB LED-ljus

Kommer snart SoGo Mini enda bärbara Multi högtalare med APPKontrollerade RGB LED-ljus och anpassningsbara ring färg. Brett spektrum av kompatibilitet med andra enheter, såsom Mac, PC, Android, IOS, 20 plus timmars power backup och bred räckvidd gör d...

Arduino Bluetooth kontrollerad skrivbordslampa - med relä värdeskåp

Idag kommer jag visa dig hur man bygger din egna Bluetooth kontrollerad skrivbordslampa med arduino uno.För detta projekt kommer du behöva bygga säkerhet ralay rutan som du kan hitta det här:(Obs: om du inte vill bygga en Säkerhetsbox kan du bara anv...

DIY glödande bubbla ljus - hur gör din egen futuristiska skrivbord ljus!

Vänligen rösta för mig i den "göra det flytta tävling!" Känn dig fri att klicka på "Rösta!" i det övre högra hörnet om du gillade detta Instructable!I denna video, kommer vi att bygga en en av ett slag futuristiska skrivbord ljus. Inte...

LED skrivbord ljus

Jag gillade inte ljus vinklar i mitt rum eller min touch lampa tar upp utrymme på skrivbordet, så jag gjorde min egen ljusJag hade några överblivna rgb led strip från att lägga till under instrumentpanelens belysning i min bil. Jag använde en måttlig...

Enkel LED skrivbord ljus

jag var trött på att få nya lampor och behöva justera mitt skrivbord ljus, så jag byggde min egen lätt flyttbara LED skrivbord ljus.Steg 1: Först få material Först måste du få material som visas här, lödtenn, en lödning penna, solid och tvinnad tråd,...

Fixa din skrivbord ljus Sensor

Wow, kom ditt nya skrivbord med fancy lysrör med fancy rörelsesensorer - Awww Ja! spara energi för att rädda planeten - cool!Förutom det inte fungerar så bra gör det... Ja, det är en bra idé på papper när du skapar nya utrymmen för människor... men j...

Archaeopteryx skrivbord ljus

Vi vet alla dessa perfekta flexibla swing arm skrivbord ljus. I år verkar det den bästa lösningen att få bra ljus på mitt arbetsyta. Men nyligen jag märkte det är lite föråldrad och alltför välbekant. Den har "så 1980's". Det är dags för en ny t...

Sensor Temperatura y Humedad DHT11-Arduino-APP

En este instructable veremos como conectar el sensor de temperatura y humedad DHT11 al Arduino Uno y mandar los datos por Bluetooth en una App para poder verlo en el celular.Los materiales que necesitaremos son:Arduino UNOSensor DHT11Modulo Bluetooth...

Hur man gör en Arduino-kontrollerade cykel-ljus

mikrokontroller är mycket kraftfulla verktyg för utforskning in i elektriska världen. I den här guiden kommer vi att använda Arduino's Uno ombord, och vi visar dig hur du programmerar ett antal grundläggande funktioner i ett set av brödunderläggen cy...

Arduino Bluetooth kontrollerad elektrisk dörröppnare

Hej! I handboken Instructables kommer jag visa dig hur man gör egna Bluetooth kontrollerad låsa upp dörren systemet med Arduino uno styrelsen. Jag gjorde min egen krets med hjälp av ATmega328 micro controller men detta är ett valfritt steg. I denna g...

ROVER Bot - Arduino Bluetooth kontrollerad Tank

Arduino Bluetooth ROVER RobotArduino ROVERBot. Detta inlägg syftar till att presentera dig de konstruktion steg för en ROVER använder Arduino och en bluetooth-modul. För att styra ROVER var används en Android-telefon som RC (radio control) gränssnitt...

Arduino-Radio kontrollerade väte luftskepp

detta närmare byggandet av fjärrstyrda luftskepp jag byggt. Här är en kort video av det flyger:Luftskepp styrs av en sändare på marken, drivs av en människa. Det finns tre kontroll spakar--en för varje motor, och för servo som roterar axeln de är fäs...

Bluetooth kontrollerad chassi ljus

vi fick ett uppdrag i skolan att tänka på, hitta eller skapa ett projekt som hade med arduino att göra och vad jag kom fram till var att jag skulle bygga upp ett ljus för min nya dator chassi eftersom det var ett ganska enkelt projekt och det skulle...

Avlägsen kontrollerade RGB ljus

Vill du kunna först bara slå på och av lamporna på min Quad-copter utan landar det och slå på den. Som jag trodde det skulle vara kul att spela med quad på natten.Leka med vissa Arduino kod och fann snart att det finns mycket mer än bara vrida lysdio...

Bekämpa SAD med smarta lampor (App-kontrollerade Wake-up Light)

SAD (Seasonal Affective Disorder) är en förstämningssyndrom som normalt sker under vintern och i dystrare klimat (Portland, jag tittar på dig). Den presenterar sig med trötthet, screwey sömnmönster och även depression, i vissa fall (mer info här). Sa...

Android App kontrollerade ATR (alla terrrain racer)

Bluetooth kontrolleras alla terräng Racer (BCATR) är en smidig blandning av intelligens och robusthet.Det är en 4 hjulsdrift drivs av ett par 12v 2200 mAh Li-Po batterier. 4 höga vridmoment DC motorer ger den en topphastighet på 900 RPM och 12 Kg/cm...

Cykel - drivna arduino vattenreningssystem (med UVC ljus)

Detta instructable visar hur att driva en UV-C vattenreningssystem med en cykel och arduino kontroll. En dynamo i den bakre delen av cykeln laddar ett batteri (som vi har från början ut redan för detta projekt) som kör arduino och ljuset.De flesta av...

USB-drivna skrivbord ljus eller arbetsbänk ljus i en altiods tin

det finns tre saker som jag verkligen tycker om denna sak, altiods tenn (som inte älskar dem?), lysdioder, och att det är USB powered. På min arbetsbänk, har jag alltid haft en vanlig glödlampa. En dag fixturen beslutade då det gjordes, och snabbt do...

Robot Arm Arduino App

Vi behövde en plattform för att testa våra nya MICILE / Arduino användargränssnitt. Robot hand och arm kändes som något komplext nog att verkligen ge begreppet en omfattande träning. Projektet tillät oss att använda en MICILE tablett, en Arduino Uno...