Hoe maak je goede regenboog en willekeurige kleuren met het RGB-kleurmodel (3 / 5 stap)

Stap 3: Opzoektabellen

Een groot eerste deel van de code in de vorige stap bestaat uit grote constante matrices. Dit zijn de opzoektabellen vooraf berekende waarden voor sinusgolf en HSV functies op te slaan. Natuurlijk is het mogelijk in plaats daarvan voor de berekening van de exacte waarde van elke LED de tijd die het is ingeschakeld, bijvoorbeeld voor normale HSV:

 byte red, green, blue; if (angle<60) {red = 255; green = round(angle*4.25-0.01); blue = 0;} else if (angle<120) {red = round((120-angle)*4.25-0.01); green = 255; blue = 0;} else if (angle<180) {red = 0, green = 255; blue = round((angle-120)*4.25-0.01);} else if (angle<240) {red = 0, green = round((240-angle)*4.25-0.01); blue = 255;} else if (angle<300) {red = round((angle-240)*4.25-0.01), green = 0; blue = 255;} else {red = 255, green = 0; blue = round((360-angle)*4.25-0.01);} setRGBpoint(LED, red, green, blue); 

Deze berekeningen zal vrij sommige dynamisch geheugen, maar ten koste van het programmageheugen en verwerkingstijd. Hoewel het meer of minder OK met eenvoudige vermenigvuldiging van HSV, sinus golven in realtime doen vereist operaties met zwevende punt en de meeste zeker moet worden vermeden, vandaar de opzoektabellen.

Merk op dat de opzoektabel sinusgolf zelfs een matrix met nullen aan het einde-dat is bevat omdat ik veel gebruik van deze tabellen en vond dat een honderd meer gevulde bytes van het dynamische geheugen een goede inruil voor een schonere code.

U kunt deze tabellen berekenen tijdens Setup in plaats van invoegen in de code-weer, als ik ze veel gebruiken, ik liever te doen hen eens en dan gewoon kopiƫren en plakken de arrays.

U kunt maken van uw eigen tafel van verschillende grootte of met verschillende waarden, dus hier de schets is. Alle drie arrays in het venster Serial Monitor wordt afgedrukt, is het gemakkelijk aan kopieer-plak ze vanaf daar.

 uint8_t lights[360];uint16_t kkk;void setup() {Serial.begin(9600); //sine wave Serial.println("const uint8_t lights[360]={"); for (float k=PI; k<(3*PI); k=k+PI/120) { lights[kkk]=int((cos(k)+1)*127.7); // I use cosinus if (lights[kkk]<10) Serial.print(" "); // I like to keep the table clean if (lights[kkk]<100) Serial.print(" "); // told you I use them a lot! Serial.print(lights[kkk]); if (kkk<255) Serial.print(", "); //'if' portion is useful if you're not filling the // rest of the table with zeroes. It makes sure there's // no extra comma after the final value of array. // I keep it here just for that situation if (kkk%8==7) Serial.println(); // new line for cleaner table! kkk++; }for (; kkk<360; kkk++) // fill the rest with zeroes { Serial.print(" 0"); if (kkk<359) Serial.print(", "); if (kkk%8==7) Serial.println(); } Serial.println("};");// HSV // note that unlike the previous one these two just print out the numbers without storing them // change the Serial.print to lights[k]= if you need to store the values in lights[] array // for later use in the loop() Serial.println("const uint8_t HSVlights[61] = {"); for (int k=0; k<61; k++) { Serial.print(round(k*4.25-0.01)); if (k<60) Serial.print(", "); } Serial.println("};"); //power-conscious HSV Serial.println("const uint8_t HSVpower[121] = {"); for (int k=0; k<121; k++) { Serial.print(round(k*2.125-0.01)); if (k<120) Serial.print(", "); } Serial.println("};"); }void loop() { } 

Het is een goed idee om te houden van de code lookup tabel-genererende in het Setup -gedeelte van uw schets totdat u perfect tevreden bent met de resultaten, dan kopieer-plak de const tabel en verwijder de code.

Gerelateerde Artikelen

Hoe maak je een regenboog van Soda (Deviantart Muro)

Hoe maak je een regenboog van Soda (Deviantart Muro)

Hallo. In zijn tutorial ga ik je laten zien hoe je een regenboog in Deviantart Muro. Ik ga er echter niet alleen om u te tonen hoe maak je een regenboog. Een soda regenboog lijkt geschikter. De afbeelding toont hoe het eindproduct er uit zou kunnen z
Hoe maak je goede Bibim Myun (Go & David)

Hoe maak je goede Bibim Myun (Go & David)

dit zijn noodzakelijke ingrediƫnten om goede Bibim Myun.Stap 1: Hoe maak je goede Bibim Myun (Go & David) Dit is de Koreaanse traditionele groente, genaamd Kimchi. Het is gemaakt met een verscheidenheid van kruiderijen.Stap 2: Hoe maak je goede Bibim
Hoe maak je een regenboog potlood Case - stapsgewijze zelfstudie

Hoe maak je een regenboog potlood Case - stapsgewijze zelfstudie

https://Youtu.be/PyLjmzFyM40Stap 1: Om te doen een regenboog potlood geval u nodig! Een rits Pen zak u moet doen:1) ritsen;2) gevoeld;3) scissor;4) naald & draad (u kunt naaimachine gebruiken als u wilt);5) lijmpistool.Stap 2: In deze tutorial instru
Hoe maak je een boot van de stoom met een kaars

Hoe maak je een boot van de stoom met een kaars

https://www.YouTube.com/watch?v=sWJqCubW1ic&feature=Youtu.beStap 1: Om te doen een boot van de stoom met een kaars u nodig!In deze instructables ik zal je laten zien een geweldig idee van hoe maak je een boot van de stoom met de kaars.Stap 2: Kindere
Hoe maak je een tegenhanger van de bloem met een koffie Pod

Hoe maak je een tegenhanger van de bloem met een koffie Pod

Hallo iedereen,We wilden delen met uw onze eerste tutorial op YouTube. Hoe maak je een tegenhanger van de bloem met een koffie pod. De Nespresso koffie peulen zijn ronde, maar we willen spelen met hen en andere vormen te verkrijgen. En omdat we beide
Hoe maak je een autopatcher voor windows xp met behulp van batchbestanden

Hoe maak je een autopatcher voor windows xp met behulp van batchbestanden

hoe maak je een autopatcher voor windows xp met behulp van batchbestandenAlleen beschrijving, foto's kunnen nooit bestaan :)Stap 1: Alle stappen hier omdat het te moeilijk om te lezen in meerdere pagina 's1. Maak een nieuwe map op uw bureaublad2. all
Hoe maak je de beste PB + J ooit met een CRUNCH!

Hoe maak je de beste PB + J ooit met een CRUNCH!

In dit Instructable ik ga vertellen u hoe maak je een geweldig PB + J sandwich met een crunch. Ik bedoel niet met knapperige pindakaas maar een lichte crunch. om van te genieten.Stap 1: Eerste stap Oke hier is uw eerste stap. Koop levert. Je moet voo
Hoe maak je de letters J en O met 1/2 in PVC

Hoe maak je de letters J en O met 1/2 in PVC

In dit instructable, leert u hoe maak je de letters J en O met 1/2 in diameter PVC.Stap 1: Materialen voor J en O Om de hoofdletter J, moet u de volgende materialen: (alle gewrichten en PVC is 1/2 in)1 T-joint2 90 graden ellebogen2 2 in PVC1 1 in PVC
Hoe maak je Awesome regenboog Cupcakes

Hoe maak je Awesome regenboog Cupcakes

dit Instructable zal u tonen hoe te vergoeden awesome regenboog cupcakes die niet alleen maar de smaak goed uitzien ook! Uw vrienden zullen alleen denken het kostte je voor altijd te maken deze cupcakes. Alleen zal jij weten dat het duurde niet hele
Hoe maak je een armband van twee kleuren Survival

Hoe maak je een armband van twee kleuren Survival

Gedurende dit Instructable zal ik u tonen hoe te maken van een armband overleving 2 kleur met een gesp. Wanneer u klaar bent, afhankelijk van de grootte van uw pols, de armband zal ontrafelen in 2 gelijke lengtes van paracord elk meten van ongeveer 5
Hoe maak je een Paracord armband (2 kleuren)

Hoe maak je een Paracord armband (2 kleuren)

dit zal u tonen hoe te maken van een paracord armband met:Een gespTwee 4 voet lange touwen van paracordEen aanstekerMes of schaarStap 1: Stap 1 Uw aansteker kunt het touw samensmelten.Stap 2: Stap 2 Na dat uw gesp krijgen en het touw het touw door de
Hoe maak je goede Bostin' Yorkshire Puds

Hoe maak je goede Bostin' Yorkshire Puds

hier is een grote familie recept voor goede ouderwetse Yorkshire pudding. Dit recept heeft nooit me neer gelaten, als je het naar de letter volgen!Snel, eenvoudig en leuk om te maken!Geweldig voor een Sunday Roast!Maar ook proberen met vanille-ijs en
Hoe maak je goede aangepaste klassen in MW3

Hoe maak je goede aangepaste klassen in MW3

zoals elke CoD MW3 speler is het zeer moeilijk weten zou om aangepaste clases die betrekking hebben op elke mogelijke situatie.Gelukkig voor u heb ik gemaakt om te helpen.Stap 1: Klasse 1 wapens Moet u aangepaste klasse 1 in uw klasse snelle aanval.P
Hoe maak je een geodetische koepel van Maquette met karton,

Hoe maak je een geodetische koepel van Maquette met karton,

wat we nodig hebben:Pen en papier, een rekenmachine, een potlood, sommige heersers, een kompas, een cutter mes, plakband, lijm, enkele of dubbele muur gegolfd karton, een werktafel en "patience".Inleiding.Laat zeggen u willen een dummy van een k