Ups
Hatte gedacht den Topic nicht aufgemacht (verschickt) zu haben :~ :~ :~ Hatte geglaubt ihn gelöscht zu haben.
Wie so oft wenn man um Hifle schreibt, hat man das Problem schon so aufgearbeitet, daß man selbst eine Lösung gefinden hat. Ich benutze eine WS2812LED zu 8mm mit der FastSPI_LED Bibliothek und einen Taster mit Capsense-Bibliothek
Meine Lösung ist:
Die Blinkfunktion:
void blink(byte number_blink)
{
if (status_blink == 0)
{
previous_millis_blink = millis();
set_color_led(0, 255, 255, 255); // GRB for WS2812LED set white
FastSPI_LED.show();
LED_blink_status = 1;
number_blink_aktual = number_blink;
status_blink = 1;
}
if(millis() - previous_millis_blink > interval_blink)
{
if(LED_blink_status == 0)
{
if(number_blink_aktual <= 0 ) // stop blinking
{
status_blink = 0 ;
LED_blink_status = 0 ;
status_blink_aktive = 0 ;
return;
}
set_color_led(0, 255, 255, 255); // GRB for WS2812LED set white
}
else
{
set_color_led(0, 0, 0, 0); // GRB for WS2812LED set off
number_blink_aktual --;
}
LED_blink_status = !LED_blink_status;
FastSPI_LED.show();
previous_millis_blink = millis();
}
}
Den Switch Teil:
switch (Mode_Counter)
{
case 0:
Rainbow_manual();
break;
case 1:
if(status_blink_aktive == 1)
{
blink(1);
}
break;
case 2: // Automatic Rainbow
if(status_blink_aktive == 1)
{
blink(2);
}
else
{
Rainbow_automatic();
}
break;
case 3:
if(status_blink_aktive == 1)
{
blink(3);
}
else
{
Rainbow_automatic_fast();
}
break;
....
und der Moduswechsel:
if ((mean_capsense > limit_capsense + hysteresis_capsense) && (status_capsense == 0)) // fist time capacitive sensor on
{
digitalWrite(CONTROL_LED_PIN_13,HIGH); // status LED to see if Capsense is set.
if(status_manual == 0)
{
Mode_Counter++;
status_blink_aktive =1; // set blink aktive
}
....
sschultewolte Danke für Deine Bemühungen.
Meine Version ist etwas komplizierter als Deine wobei ich bei meiner Version sicher bin daß sie funktioniert weil ausprobiert.
Grüße Uwe