Fading RGB tangentbord ljus (7 / 8 steg)

Steg 7: kodning!



Kodning är en av de roligaste delarna av hela projektet. Som nämnts tidigare, användes Arduino IDE för kodning, som förenklas avsevärt processen. När du har en programmerare ställa in och har din programvara, redo att gå, är du redo att få skriva! Eller kopiera och klistra in, som omständigheterna. :)

Detta kommer att bli lång, men jag hoppas det också hjälper och om inte annat, väcka ett intresse i kodning. Jag bifogade filen Arduino .ino, liksom PastBin länken med radnummer. Jag kommer även gå igenom oftast vad varje bit av koden gör.

http://pastebin.com/j7zYH6g9

Denna kod förutsätter att du använder den schematiska anges i steg 3.

Först linjerna ut, 1-11 uppsättning upp vissa variabler som används i hela programmet. Det är mest allmänna saker som vilka in-/ utgångar motsvarar vilka nummer, den ränta som regnbågen ska blekna och tröskeln som ljus-sensing bör reagera på. Jag ska få till linjer 8-11 i ett ögonblick.

Linje 13-18 helt enkelt ställa in alla stiften som resultat (ljussensor PIN-koden matas in som standard). Linje 17 ändrar färg för att vara helt avstängd, med hjälp av funktionen som beskrivs i nästa stycke.

Raderna 49-53, changeColor() funktionen, finns basen för detta program. I grund och botten funktionen använder ett värde 0-255 enskilda ljus värde för varje färg och sedan skriver ut det till rätt PIN-kod, med PWM signalen diskuterats. Men eftersom min LED är common-anod (gemensamma positiva), så värdet 0 (off/marken) innebär att färgen på full ljusstyrka. Således, för att skapa önskad effekt där 255 betyder full ljusstyrka, färgerna subtraheras från 255 att Invertera dem.

Gå tillbaka in programmet, börjar funktionen loop() på rad 20. Efter det anges 21-27 kontrollera för att se om det är mörkt med tröskelvärdet för operationsraderna i avsnittet variabler. Den if/else uttalande har ytterligare funktioner för att kontrollera om mörka variabeln redan är klar - om det är redan mörkt, då programmet kommer inte att ställa in den att bli mörk igen.

Linje 26 är en del av den mest komplicerade och awesome delen av detta program. Jag ville inte mitt tangentbord ljus bo hela natten (eftersom jag sällan upp klockan 3 på datorn), så jag bestämde mig att lägga till några pizazz med en automatisk avstängning funktion. Jag var tvungen att prova flera vinklar att närma sig problemet innan jag hittade något som fungerade. Förfluten tidsfunktioner verkar inte göra jobbet, och eftersom ATTiny inte har en realtidsklocka, jag bara inte kunde läsa tiden. Detta system fungerar genom att beräkna den tid det tar för att göra en regnbåge på linje 8. Sedan beräknas baserat på antalet timmar I-ingång som den tid som ljuset bör finnas kvar på, hur många regnbågar det bör slutföra när det blir mörkt. Om uttalande innan huvudsakliga ranbow (linje 28) kontrolleras om det är mörkt och kontrollerar att programmet fortfarande har mer regnbågar att köra. Linje 41 Justerar räknaren varje regnbåge. Och slutligen, rad 26 återställer räknaren rainbow cykel när det blir ljust.

Detta visar den otroliga kraften i koden. Genom att lägga till några rader med text till ett program, kan du lägga till fantastiska funktioner som skulle vara nästan omöjligt att göra med hårdvara. Detta är en av anledningarna till att jag älskar programmering så mycket. Det gör det möjligt för mig att sätta mina idéer till handling i en värld där det enda verkliga begränsar mig är min fantasi.

Att avsluta denna långvariga förklaring, linjer 29-40 cykel genom alla färger i regnbågen. I grund och botten rainbow koden fungerar genom att starta med en färg (röd till exempel) på full ljusstyrka. Då, den för loop gradvis flyttar röda värdet ned och flyttar det gröna värdet upp, tills gröna är vid full ljusstyrka. Processen upprepas tills blått tonar bort och röd är återigen den dominerande färgen. Den sista delen av programmet är annat uttalande i linjer 43-46 som stänger av ljuset om det inte är mörkt eller om det har varit på mer än 8 timmar (variabeln timeout_hours).

Se Steg
Relaterade Ämnen

10W RGB LED-ljus målning multiverktyg

Måla med ljus eller 'Ljus målning' använder ljus där en traditionell målare skulle använda färg, så i ljus målning i stället för en traditionell pensel konstnären använder en ljuskälla. bara om någon ljuskälla kan användas som ett ljus målning verkty...

9V ledde tangentbord ljus

Detta är ett led tangentbord ljus drivs av ett 9v batteriSteg 1: Verktyg och materialSaker du behöver är: ledde kit för rc bilarGamla webbkameraducttapelaptop/dator för montering på9V batteri till power lysdioderSteg 2: Atttach främre lysdioderDetta...

Klädnypa batteri drivna tangentbord ljus

här är hur man gör en enkel tangentbord ljus som du kan klämma på någon laptop! Njuta av, en snälla rösta på mig!Steg 1: Delarna Behöver du följande. 1 x 9v batteri 1 x stor wired LED 1 x 9v batteripack 1 x klädnypa verktyg: limpistolSteg 2: Koppla t...

USB-drivna tangentbord ljus

nu ska jag visa en USB powered multi färg LED tangentbord ljusSteg 1: första nu ansluta LED-lampa med USB-kabelSteg 2: final...

RGB LED ljus Fader

jag ville ha något riktigt coolt att sätta på mitt skrivbord på jobbet. Jag har sett olika LED projekt på webben, men jag ville ha något litet och kompakt att jag kunna driva med USB-porten på datorn.Jag också ville inte bara en kal LED-lampa projice...

USB tangentbord ljus

jag vände min gamla Mighty Bright bok ljus in i en USB-powered tangentbord ljus! Det fungerar otroligt för när du skriver i mörker. Jag kan även stänga av och på....

Fading RGB LED (Arduino)

i detta Instructable jag ska visa dig hur man gör en enkel fading RGB ledde.Det kan användas som en trevlig natt lampa eller som stämningsbelysning.Steg 1: delarFör att göra det behöver du:-en Arduino (jag använder en Arduino UNO R3, men andra kan fu...

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...

Sugru LED tangentbord ljus

för er som inte har fancy bärbara datorer med bakgrundsbelyst tangentbord här är ett enkelt trick som gör tangentbordet lyser upp. På vissa gamla bärbara datorer det brukade vara ledde en liten som var där för belysning tangentbordet. Vi kommer att a...

Fading Rgb ledde remsa på en två Cup-och dalbana

denna två cup coaster är 10 "x 3" x 2 5/16 ". Den har en Rgb led-strip som ändrar form blå till grön.Steg 1:Steg 2: Bygga bostäder The drill bit is about 3".Steg 3: Måla och sätta ljus på bostäder Måla huset med en glans svart. Då en g...

Laptop tangentbord ljus

trevlig laptop ljus för tangentbordMaterial:gamla kassettlimpistolsågEraserledde lyktaUSB-kabeltejpvåren från en penna220 ohm motståndSteg 1: Få en gammal kassett och demontera det. Vi behöver bara en del.Steg 2: Skär något Steg 3: Några papper Skär...

RGB-LED ljus sabel

Under de senaste levande musik och ljus festival i Sydney fanns det stånd som säljer leksak ljus sablar och andra tillbehör med färgglada lampor. Naturligtvis lockade dessa leksaker många barn (och vuxna) för att köpa och spela med dem. Men jag var "...

RGB projektion ljus

Denna LED-lampa är en enkel belysning projekt som återanvänder en tre färg LED ljus och monterar det i en tub att skapa en färgglad projektion ljus som ser bra ut när pekade mot en vägg.Efter dessa principer, kan du ta projektet i många riktningar. F...

USB-Powered tangentbord ljus

behöver du:-En vanlig manliga USB x1-En 5mm bendy halm x1-En 5mm vit ledde x1-270 ohm resister x1-skrota ledningarVerktyg:-Lödkolv-Limpistol-Eltejp-Krymplang-Sax-Hobby knivSteg 1: Steg 1 Få USB, och skal gummi av USB med en hobbykniv.Steg 2: Steg 2 B...

RGB cykel Rim ljus

Efter att ha fått en tech box från Instructables med massor av fantastiska godsaker och begäran om att göra något med det, ville jag verkligen göra något bra med den. Lådan innehöll några bra verktyg, men endast ett fåtal byggmaterial. Jag försökte (...

DIY uppgradering / FÖRKOMPRIMERA din LED tangentbord / Laptop ljus

Hej igen!Arbeta sen natt med grådaskig dim Laptop ljus är inte den bästa idén för dina ögon.Här skall vi ta en normal Ebay LED laptop tangentbord ljus, och modifiera den för bättre färg (Neutral vit) och ljusstyrka.I den första bilden, kan du se vårt...

40 x RGB LED-Controller med 8-bitars PWM och valbara mönster

Uppdatering: Den här domänkontrollanten har ersatts med de vida överlägsen 48 kanaler Mono / 16 kanal RGB LED-Controller, med USB-anslutning och ColorMotion kompatibilitet. Besök http://www.chromationsystems.com/48channled.html för information, länka...

Kontroll RGB lysdioder med en handrörelse.

IntroduktionVi var välkomna att hjälpa till vid våra lokala grundskolan STEM natt och behövde en cool demonstration, med lite tid att förbereda.Så, vi tittade igenom tech vi hade liggandes, och kom upp med idén att använda den LeapMotion handen track...

RGB Strip Light golvlampa

Detta är ett litet projekt som jag kom upp med att använda en 5 M 3528 RGB LED Strip ljus som jag vann en auktion på eBay. Strip ljus kom med en 24 nyckel IR-fjärrkontroll och en LED-controller. Jag var tvungen att lägga till en 12V AC Adapter och nå...