Sunrise - Sunset
24 berichten
• Pagina 1 van 3 • 1, 2, 3
Sunrise - Sunset
Hallo, ik ben nieuw op dit forum en ben 69 jaar en ben al een tijdje bezig on de arduino neopixel te ontdekken.
Ik heb ook meteen een vraag.
Ik ben al een tijdje bezig met een Sunrise - Sunset programma.
Ik heb van het internet een programma afgehaald dat langzaam van rood naar ( dit is in te stellen) wit gaat.
Dit werkt prima. ik heb met wat aanpassingen het voor elkaar gekregen dat deze ook van wit langzaam naar rood gaat.
Dit heb in twee aparte programma's en werken allebei prima. Dus één sunrise.ino en één sunset.ino
Nu wil ik dit in één programma maken, maar dat krijg ik niet voor elkaar.
De ene keer begint hij rood en stopt bij wit of van wit naar rood, enz, enz.
De bedoeling is dat deze langzaam van rood naar wit gaat en dan een tijdje wit blijft en dan weer langzaam van wit naar rood.
Is er iemand die mij uit de brand kan helpen? ik kom er niet uit.
Ik heb mijn laatste test code bijgevoegd.
Groet Rob
#include "FastLED.h"
// How many leds in your strip?
#define NUM_LEDS 40
// For led chips like Neopixels, which have a data line, ground, and power, you just
// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
#define DATA_PIN 6
#define CLOCK_PIN 12
DEFINE_GRADIENT_PALETTE( sun_rise ) {
0, 0, 0, 0, //black
127, 255, 0, 0, //red
224, 255, 255, 0, //bright yellow
255, 255, 255, 255
}; //full white
DEFINE_GRADIENT_PALETTE( sun_set ) {
255, 255, 255, 255,
224, 255, 255, 0,
128, 255, 0, 0,
0, 0, 0, 0
};
// Define the array of leds
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
}
void loop() {
//SUNRISE
static const uint8_t sunriseLength = 30; // total sunrise length, in minutes
//7 seconds x 256 gradient steps = 1,792 seconds = ~30 minutes
static const uint8_t interval = (sunriseLength * 10) / 256; //De duur van het in faden
static uint8_t heatIndex = 0; // start out at 0 // current gradient palette color index
CRGB color = ColorFromPalette(HeatColors_p, heatIndex );
fill_solid(leds, NUM_LEDS, color); // fill the entire strip with the current color
EVERY_N_SECONDS(interval) {
if (heatIndex < 240) {
heatIndex++;
}
FastLED.show();
}
//SUNSET
static const uint8_t sunsetLength = 30; // total sunset length, in minutes
//7 seconds x 256 gradient steps = 1,792 seconds = ~30 minutes
static const uint8_t interval1 = (sunsetLength * 10) / 256; //De duur van het in faden
static uint8_t heatIndex1 = 200; // start out at 0 // current gradient palette color index
CRGB color1 = ColorFromPalette(HeatColors_p, heatIndex1 );
fill_solid(leds, NUM_LEDS, color1); // fill the entire strip with the current color
EVERY_N_SECONDS(interval1) {
if (heatIndex1 > 0) {
heatIndex1--;
}
FastLED.show();
}
}
Ik heb ook meteen een vraag.
Ik ben al een tijdje bezig met een Sunrise - Sunset programma.
Ik heb van het internet een programma afgehaald dat langzaam van rood naar ( dit is in te stellen) wit gaat.
Dit werkt prima. ik heb met wat aanpassingen het voor elkaar gekregen dat deze ook van wit langzaam naar rood gaat.
Dit heb in twee aparte programma's en werken allebei prima. Dus één sunrise.ino en één sunset.ino
Nu wil ik dit in één programma maken, maar dat krijg ik niet voor elkaar.
De ene keer begint hij rood en stopt bij wit of van wit naar rood, enz, enz.
De bedoeling is dat deze langzaam van rood naar wit gaat en dan een tijdje wit blijft en dan weer langzaam van wit naar rood.
Is er iemand die mij uit de brand kan helpen? ik kom er niet uit.
Ik heb mijn laatste test code bijgevoegd.
Groet Rob
#include "FastLED.h"
// How many leds in your strip?
#define NUM_LEDS 40
// For led chips like Neopixels, which have a data line, ground, and power, you just
// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
#define DATA_PIN 6
#define CLOCK_PIN 12
DEFINE_GRADIENT_PALETTE( sun_rise ) {
0, 0, 0, 0, //black
127, 255, 0, 0, //red
224, 255, 255, 0, //bright yellow
255, 255, 255, 255
}; //full white
DEFINE_GRADIENT_PALETTE( sun_set ) {
255, 255, 255, 255,
224, 255, 255, 0,
128, 255, 0, 0,
0, 0, 0, 0
};
// Define the array of leds
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
}
void loop() {
//SUNRISE
static const uint8_t sunriseLength = 30; // total sunrise length, in minutes
//7 seconds x 256 gradient steps = 1,792 seconds = ~30 minutes
static const uint8_t interval = (sunriseLength * 10) / 256; //De duur van het in faden
static uint8_t heatIndex = 0; // start out at 0 // current gradient palette color index
CRGB color = ColorFromPalette(HeatColors_p, heatIndex );
fill_solid(leds, NUM_LEDS, color); // fill the entire strip with the current color
EVERY_N_SECONDS(interval) {
if (heatIndex < 240) {
heatIndex++;
}
FastLED.show();
}
//SUNSET
static const uint8_t sunsetLength = 30; // total sunset length, in minutes
//7 seconds x 256 gradient steps = 1,792 seconds = ~30 minutes
static const uint8_t interval1 = (sunsetLength * 10) / 256; //De duur van het in faden
static uint8_t heatIndex1 = 200; // start out at 0 // current gradient palette color index
CRGB color1 = ColorFromPalette(HeatColors_p, heatIndex1 );
fill_solid(leds, NUM_LEDS, color1); // fill the entire strip with the current color
EVERY_N_SECONDS(interval1) {
if (heatIndex1 > 0) {
heatIndex1--;
}
FastLED.show();
}
}
Advertisement
Re: Sunrise - Sunset
Je schreef dat je 2 programma's heb. De ene betreft sunset en de andere sunrise.
Maar al ik in het vorige bericht kijk is me niet duidelijk waar het eerste programma stopt en waar het tweede begint.
Om het duidelijker te laten zien kan je beter gebruik maken van de CODE knop. Die zie je boven het vlak waar je in schrijft.
en dat doe je ook voor de tweede.
Maar al ik in het vorige bericht kijk is me niet duidelijk waar het eerste programma stopt en waar het tweede begint.
Om het duidelijker te laten zien kan je beter gebruik maken van de CODE knop. Die zie je boven het vlak waar je in schrijft.
- Code: Alles selecteren
[code]hier je sketch plakken[/code]
en dat doe je ook voor de tweede.
Re: Sunrise - Sunset
Bedankt voor je reactie
Ik heb echt geen idee wat je bedoeld.
Kan je dit uitleggen voor mij?
Groet Rob
Ik heb echt geen idee wat je bedoeld.
Kan je dit uitleggen voor mij?
Groet Rob
Re: Sunrise - Sunset
Ik heb nog nooit met iets dergelijks gewerkt maar....
Ik zie in je programma nergens de koppeling tussen DEFINE_GRADIENT_PALETTE( sun_rise ) en het stukje waar Sunrise is geprogrammeerd.
Idem bij sun_set
Is een koppeling als volgt niet de oplossing?
m.v.g. Nico
Ik zie in je programma nergens de koppeling tussen DEFINE_GRADIENT_PALETTE( sun_rise ) en het stukje waar Sunrise is geprogrammeerd.
Idem bij sun_set
Is een koppeling als volgt niet de oplossing?
- Code: Alles selecteren
DEFINE_GRADIENT_PALETTE( sun ) {
0, 0, 0, 0, //black
127, 255, 0, 0, //red
224, 255, 255, 0, //bright yellow
255, 255, 255, 255 //full white
255, 255, 255, 255,
224, 255, 255, 0,
128, 255, 0, 0,
0, 0, 0, 0
};
m.v.g. Nico
Re: Sunrise - Sunset
Heb je dit https://github.com/FastLED/FastLED/wiki/Gradient-color-palettes al gelezen?
Kijk vooral naar: CRGBPalette16 myPal = heatmap_gp;
en leds[i] = ColorFromPalette( myPal, heatindex); // normal palette access
Er is nog meer op internet te vinden over FastLED
m.v.g.
Nico
Kijk vooral naar: CRGBPalette16 myPal = heatmap_gp;
en leds[i] = ColorFromPalette( myPal, heatindex); // normal palette access
Er is nog meer op internet te vinden over FastLED
m.v.g.
Nico
Re: Sunrise - Sunset
Nico,
Ik heb DEFINE_GRADIENT_PALETTE er in gezet, maar dan krijg ik de volgende foutmelding :
exit status 1
expected '}' before numeric constant
Ik heb in het programma met alleen sunrise de DEFINE_GRADIENT_PALETTE helemaal weggelaten en het gaat dan netjes van rood naar wit.
Ik zal gaan kijken naar je andere tips.
Mocht je nog wat te binnen schieten graag.
m.v.g.
Rob
Ik heb DEFINE_GRADIENT_PALETTE er in gezet, maar dan krijg ik de volgende foutmelding :
exit status 1
expected '}' before numeric constant
Ik heb in het programma met alleen sunrise de DEFINE_GRADIENT_PALETTE helemaal weggelaten en het gaat dan netjes van rood naar wit.
Ik zal gaan kijken naar je andere tips.
Mocht je nog wat te binnen schieten graag.
m.v.g.
Rob
Re: Sunrise - Sunset
Nico,
Nog even te verduidelijking.
De sunrise.ino en sunset.ino werken elk apart prima. De één gaat mooi van rood naar wit en de ander van wit naar rood.
Ik wil ze ook wel apart uploaden als je dat wilt, dan kan je zien dat ze prima werken.
Ik wil ze alleen allebei in één .ino file hebben, zodat hij van rood naar wit gaat en dan weer terug van wit naar rood.
M.v.g.
Rob
Nog even te verduidelijking.
De sunrise.ino en sunset.ino werken elk apart prima. De één gaat mooi van rood naar wit en de ander van wit naar rood.
Ik wil ze ook wel apart uploaden als je dat wilt, dan kan je zien dat ze prima werken.
Ik wil ze alleen allebei in één .ino file hebben, zodat hij van rood naar wit gaat en dan weer terug van wit naar rood.
M.v.g.
Rob
Re: Sunrise - Sunset
Rob, ik begreep dat beide apart werken.
De compiler fout melding geeft aan dat "iets" in de code onjuist is.
Dat kan een ; vergeten zijn of een ) of iets dergelijks.
Wat bedoel je met DEFINE_GRADIENT_PALETTE er in gezet?
Er staan er al twee, ik denk dat een van beide of wellicht beide NIET gebruikt worden door het programma.
In de link staat hoe, denk ik, het wel zou moeten (kunnen) werken.
PS achteraf denk ik dat mijn combinatie van de twee versies niet werkt. De eerste kolom van de codes zou aangepast moeten worden.
De code: ColorFromPalette( myPal, heatindex); geeft een verwijzing naar het "eigen" palet myPal.
m.v.g.
Nico
De compiler fout melding geeft aan dat "iets" in de code onjuist is.
Dat kan een ; vergeten zijn of een ) of iets dergelijks.
Wat bedoel je met DEFINE_GRADIENT_PALETTE er in gezet?
Er staan er al twee, ik denk dat een van beide of wellicht beide NIET gebruikt worden door het programma.
In de link staat hoe, denk ik, het wel zou moeten (kunnen) werken.
PS achteraf denk ik dat mijn combinatie van de twee versies niet werkt. De eerste kolom van de codes zou aangepast moeten worden.
De code: ColorFromPalette( myPal, heatindex); geeft een verwijzing naar het "eigen" palet myPal.
m.v.g.
Nico
Re: Sunrise - Sunset
Nico,
Jouw combinatie werkt inderdaad niet, maar dat zei je al. Die geeft dan de foutmelding.
Ik had DEFINE_GRADIENT_PALETTE niet in gezet, maar ERUIT gelaten en evengoed werken ze.
Bedankt in ieder geval voor je hulp, mocht je nog een idee hebben, dan graag.
Ik ga maar weer wat dingen proberen.
M.v.g.
Rob
Jouw combinatie werkt inderdaad niet, maar dat zei je al. Die geeft dan de foutmelding.
Ik had DEFINE_GRADIENT_PALETTE niet in gezet, maar ERUIT gelaten en evengoed werken ze.
Bedankt in ieder geval voor je hulp, mocht je nog een idee hebben, dan graag.
Ik ga maar weer wat dingen proberen.
M.v.g.
Rob
Re: Sunrise - Sunset
je define gradient palette wordt overschreven door elkaar, dus maak er 1 palet van
dan staat er in de loop nog teveel zelfde soort definities.
en ik mis every N-seconds functie
Nu wordt zowel rise als set tegelijk uitgevoerd.
gewoon herschrijven en proberen, aan het eind lukt het wel.
dan staat er in de loop nog teveel zelfde soort definities.
en ik mis every N-seconds functie
Nu wordt zowel rise als set tegelijk uitgevoerd.
gewoon herschrijven en proberen, aan het eind lukt het wel.
paul deelen
shooter@home.nl
shooter@home.nl
24 berichten
• Pagina 1 van 3 • 1, 2, 3
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten