Dank je
Heb de goede kleur gevonden.
Nu nog de goede waardes vinden zodat de staart langzaam vervaagt naar zwart.
Dat wordt dan morgen en/of de komende dagen.
Dank je
Heb de goede kleur gevonden.
Nu nog de goede waardes vinden zodat de staart langzaam vervaagt naar zwart.
Dat wordt dan morgen en/of de komende dagen.
Ik ben nieuwsgierig hoe.
met deze code :
CRGB color1 = CRGB(0,0,255);
CHSV color2 = rgb2hsv_approximate(color1);
Serial.println("hsv: " + String(color2.hue) + "," + String(color2.sat) + "," + String(color2.val));
}
Dus nu nog kijken of ik de kleuren kan laten vervagen naar zwart
Prima.
Gebruik van String (hoofdletter S) is in het algemeen niet aan te bevelen.
Verder is het samenstellen van een String op de manier waarop je het nu doet duur; iedere + resulteert in een nieuw String object en kost dus extra geheugen terwijl het in gebruik is.
Gebruik of de concat functie of +=.
Nu niet zo erg maar als je aan grotere projecten werkt kan het kritisch worden en tot onverwachte fouten leiden.
Hieronder de versie die ik gebruik
CRGB rgb = CRGB::Blue;
CHSV hsv = rgb2hsv_approximate(rgb);
Serial.println(F("Blue"));
printRGB(rgb);
printHSV(hsv);
En de print functies
void printHSV(CHSV hsv)
{
Serial.print(F("h = "));
Serial.print(hsv.h);
Serial.print(F(", s = "));
Serial.print(hsv.s);
Serial.print(F(", v = "));
Serial.println(hsv.v);
}
void printRGB(CRGB rgb)
{
Serial.print(F("r = "));
Serial.print(rgb.r);
Serial.print(F(", g = "));
Serial.print(rgb.g);
Serial.print(F(", b = "));
Serial.println(rgb.b);
}
Maar dit zou je toch een stuk kleiner en flexibeler moeten kunnen schrijven ?
Een lookup tabel neemt veel ruimte in, en is niet flexibel. Wel heel snel. Maar volgens mij hebben we tijd zat.
dat kan.
Ik ben aan het proberen jouw code te herschrijven zodat het in mijn project werkt.
ik hoor 't wel.
Ik verzon zelf nog een kleine optimalisatie
#include <FastLED.h>
#define NUM_LEDS 16
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
}
void loop() {
static bool LED0 = true;
LED0 = !LED0;
for (uint8_t i = 0; i < NUM_LEDS; i++) {
uint8_t x = i / 2; // hier delen door 2 zorgt dat er om en om 2 ledjes aan of uit gaan
if (LED0) x++;
x = x % 2; // hier wordt het aantal toestanden bepaald. de rest van x/2 is of 0 of 1
if (x) { // ik zou het zo schrijven
leds[i] = CRGB::Red;
}
else {
leds[i] = CRGB::Blue;
}
}
FastLED.show();
delay(500);
}
de truck zit 'm in principe in het gebrui van de '%' modulo = rest berekening.
Maar probeer de code uit, en speel wat met de waardes totdat je snapt hoe het werkt.
Pas bv de code aan zodat het 3 leds om en om worden, of/en pas de code aan zodat er 3 of meer verschillende toestanden zijn die 3 verschillende kleuren laten zien (mbv een switch case bv)
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.