Hur man gör ordentlig Rainbow och slumpmässiga färger med RGB-färgmodellen (3 / 5 steg)

Steg 3: Uppslagstabeller

En stor första del av koden i föregående steg består av stora konstant matriser. Detta är uppslagstabeller lagra förkalkylerade värden för sinusvåg och HSV funktioner. Naturligtvis är det istället möjligt att beräkna det exakta värdet av varje LED den tid den är påslagen, till exempel för normala HSV:

byte röd, grön, blå;
om (vinkel < 60) {röd = 255, grön = round(angle*4.25-0.01); blå = 0;} annat
om (vinkel < 120) {röd = round((120-angle)*4.25-0.01); grön = 255, blå = 0;} annat
om (vinkel < 180) {röd = 0, grön = 255, blå = round((angle-120)*4.25-0.01);} annat
om (vinkel < 240) {röd = 0, grön = round((240-angle)*4.25-0.01); blå = 255;} annat
om (vinkel < 300) {röd = round((angle-240)*4.25-0.01), grön = 0; blå = 255;} annat
{röd = 255, grön = 0; blå = round((360-angle)*4.25-0.01);}
setRGBpoint (LED, röd, grön, blå);

Dessa beräkningar kommer gratis några dynamiska minne, men på bekostnad av programminne och bearbetningstid. Medan det är mer eller mindre OK med enkel multiplikation av HSV, göra sinustoner i realtid kräver operationer med flytande punkt och de flesta säkerligen bör undvikas, därav uppslagstabellerna.

Observera att sinusvåg uppslagstabellen även innehåller en matris med nollor på slutet – det beror på att jag använder dessa tabeller mycket och tyckte att hundra mer fyllda byte dynamisk minne är en bra kompromiss för en renare kod.

Du kan beräkna dessa tabeller under setup() i stället för att infoga dem i koden-igen, som jag använder dem mycket, jag föredrar att göra dem en gång och sedan bara klistra in arrayer.

Du kanske vill göra din egen tabell av olika storlek eller med olika värden, så här är skissen. Det kommer ut tre matriser i fönstret Serial Monitor, det är lätt att kopiera-klistra in dem därifrån.

uint8_t lampor [360];
uint16_t kkk;
void setup() {
Serial.BEGIN(9600);
sinusvåg
Serial.println ("const uint8_t lights[360]={");
för (flyta k = PI; k <(3*PI); k = k + PI/120)
{
Lights[KKK]=int((COS(k)+1)*127.7); Jag använder kosinus
om (lyser [kkk] < 10) Serial.print(""); Jag gillar att hålla bordet ren
om (lyser [kkk] < 100) Serial.print(""); sa ju att använder jag dem mycket!
Serial.Print(Lights[KKK]);
om (kkk < 255) Serial.print (","); "om" portion är användbart om du inte fyller i
resten av tabellen med nollor. Det gör att det finns
ingen extra kommatecken efter det sista värdet av matris.
Jag håller det här bara för denna situation
om (kkk %8 == 7) Serial.println(); ny rad för renare tabell!
KKK ++;
}
för (; kkk < 360, kkk ++) / / Fyll resten med nollor
{
Serial.Print ("0");
om (kkk < 359) Serial.print (",");
om (kkk %8 == 7) Serial.println();
}
Serial.println("};");
HSV
Observera att till skillnad från den tidigare dessa två bara skriva ut siffrorna utan att lagra dem
ändra Serial.print till lampor [k] = om du behöver lagra värdena i lampor [] matris
för senare använda i loop()
Serial.println ("const uint8_t HSVlights [61] = {");
för (int k = 0; k < 61; k ++)
{
Serial.Print(Round(k*4.25-0.01));
om (k < 60) Serial.print (",");
}
Serial.println("};");

Power-medvetna HSV
Serial.println ("const uint8_t HSVpower [121] = {");
för (int k = 0; k < 121; k ++)
{
Serial.Print(Round(k*2.125-0.01));
om (k < 120) Serial.print (",");
}
Serial.println("};");
}
void loop() {
}

Det är en bra idé att hålla lookup table-genererar koden i den setup() delen av din skiss tills du är helt nöjd med deras resultat, sedan klistra in const tabellen och ta bort koden.

Se Steg
Relaterade Ämnen

Hur man byter den vita lysdioden från din nyckelring ficklampa med RGB LED.

Hi,I denna enkla instructable ska jag lära dig att byta ut den vita lysdioden från din nyckelring ficklampa med RGB LED. En RGB-LED är en röd, grön, blå LED kombinerade in i en LED. Du kan ersätta den med någon färg men jag tror RGB är bäst av efters...

Lätt hur man mögel rösterna och duplicera din träsnideri med betong

Lär dig den enklaste metoden för att duplicera din träsniderier!Steg 1: Förbered din carvingShellac eller någon lämplig fogmassa kan tillämpas på carving. När tätningsmedlet har torkat bör carving limmas till botten av en mögel box/container att förh...

Hur man gör Awesome Rainbow Cupcakes

detta Instructable visar dig hur man gör awesome rainbow cupcakes som inte bara ser bra men smaka bra också! Dina vänner kommer bara tror det tog dig för evigt att göra dessa muffins. Bara vet du att det inte tog hela dagen att göra dem.Steg 1: Samla...

Hur man gör stativ Iphone och Samsung Smartphone

Hur man gör stativ iphone och samsung smartphone med rakbladYouTube-videor...

Hur man grädde smör och socker (för Hand eller med en Mixer)

många läckra dessert recept ber oss att grädde ihop smör och socker, utan som faktiskt beskriver stegen. Vissa personer beskriver det som en "konst", vilket jag tycker är över påstå saker bara lite. Avgiftsbelägga betyder helt enkelt blanda dina...

Hur man gör en sprite och objekt i Gamemaker Studios

Det är där du kommer att lära dig hur man gör en sprite och objekt i Gamemaker Studios.Steg 1: Få en spriteFörst gå till "www.spriters-resources.com". När du kommer dit i vänster spalten klicka sedan på NES som tar dig för en massa spel.Steg 2:...

Hur man gör skärp och armband av soda pop flikarna

detta instructable visar dig hur man gör skärp och armband av flikarna finns på soda burkar.Detta projekt är ganska enkelt men tar lite tid.Armband i genomsnitt 10-20 minuter och bälten tar ca 1-2 timmar beroende på hur snabb du är.Steg 1: leveranser...

Visa hur man viker dinosaurie Tyrannosaurus Del1 och 2 ORIGAMI hur man viker dinosaurie Tyrannosaurus Del1 och 2 Origami

Visa hur man viker dinosaurie Tyrannosaurus Del1 och 2 ORIGAMI hur man viker dinosaurie Tyrannosaurus Del1 och 2 OrigamiHoppas du gillar. Pls kommentar....

Hur man löser en skjuvning och ögonblick Problem

Detta instructable kommer att lära dig hur du löser för krafter och moment på en balk och hur man drar en skjuvning och ögonblick diagram för att stråla. En skjuvning och nu problemet är ett vanligt problem i en teknisk kurs som använder olika grunde...

Hur man gör söta och sura fläsk

söt och syrlig fläsk är en av det traditionella köket i Kina, och det är också en välkända rätter i västerländska länder. Skålen består av djupa stekt fläsk i bita stora bitar och därefter wokad i en mer anpassad version av sötsur sås gjord av socker...

Hur man skriver en enkel ackord och ostinato baserad melodi och ackompanjemang

bonjour instructables! i detta "vänners kompatibla kommer jag visa dig hur man skriver en enkel melodi och ackompanjemang! du behöver några musikaliska kunskaper! (om någon vill ha en hur man på musik behandlingen och teori bara lämna en kommentar oc...

Hur man gör en pappers-och dalbana | DIY tidningen Craft handledning

Hur man gör en tidning-och dalbana | DIY tidningen Craft TutorialI denna tutorial får du lära dig att göra vackra glasunderlägg med tidningar i bara några steg. Låt oss komma igång.Jo jag hoppas att du haft detta hantverk och så glöm inte att dela, k...

Hur man gör den snabbaste och Long Distance flyger papper flygplan

vill du göra en Puma pappersflygplan?Dessa steg för steg video instruktioner lärde dig hur man gör de snabbaste och långväga papper flygplan som du kan hitta fullständiga instruktioner på http://extremepaperairplanes.com. Det finns länkar finns kan d...

Hur man gör en billig och enkel högtalare för Mp3, ipod, etc

hur man gör en enkel och billig högtalareDet är enkelt men inte högljudd och inte använder stora högtalareoch om du vill ha högtalare för ipod eller mobiltelefon (någon sak som jack inte 3,5 audio jack, du kan ändra jack.)och om du har några frågor s...

Hur man botar poison ivy, ek, och sumak

Hej toxicpaw100 här jag kommer att visa dig hur man botar gifter ivy, ek och sumak.Steg 1: Använd calamine lotion eller pulver (lotion rekommenderas starkt eftersom fungerar på ett kick) få några calamine lotion eller pulver (lotion rekommenderas). C...

Hur man gör mål och glida

hur man gör mål och glidaScoring och halka är en viktig del av lera byggnaden och om det inte görs rätt, kan generera några stora problem. Titta på videon för att se en steg för steg guide om hur man fäster lera korrekt.Material:-lera-pin verktyg ell...

Hur man gör en skruv och ett gängat hål i 123d Design

Om du gillar mitt arbete så Överväg att gå och donera en liten mängd pengar till mig att hjälpa till att finansiera en öppen källkod tabletter jag arbetar på ett framtida projekt.http://www.Gofundme.com/Rpitablet-Tack---------------------------------...

Hur man gör en MDF stomme för åkeriet plattor med en Laser

detta Instructable visar hur man gör en snabb och billig ram att visa 3 3 "x 6" keramiska plattor med 1/4 "MDF. Designen skapades för att få de mest ramar av ett ark med 18 "x 24" MDF. Den består av en hjälpare ombord dekorativa k...

Hur man gör den bästa PB + J någonsin med en CRUNCH!

i detta Instructable jag kommer att berätta hur man gör en awesome PB + J smörgås med en crunch. Jag menar inte med crunchy jordnötssmör men en ljus kritan. att njuta av.Steg 1: Första steget Okej här är ditt första steg. köpa förnödenheter. För denn...