Hi Community,
i have the next question. Got multiple buttons working with multiple clicks recognition - and also the blinking in a special frequency - BUT - it should only blink for a special time. I got a millis() query to get an interval but its switch sometime of when its still on and the LED keeps switched on.
So i need either a process which is looking "is something still on" or a process which is counting the blinks and i delete the millis() query. But i dont know how to get it working.
#include "ClickButton.h"
// Button Array
const int BlinkButtons = 2;
const int LichtButtons = 2;
const int HupeButton = 1;
// LED
const int BlinkLedPin[BlinkButtons] = { 7, 11 }; // Arduino pins to the LEDs
int BlinkLedState[BlinkButtons] = { 0, 0 };
int BlinkLEDfunction[BlinkButtons] = { 0, 0 };
unsigned long lastActionMillis[BlinkButtons] = { 0,0 };
// Input Pin
const int BlinkButtonPin1 = 14;
const int BlinkButtonPin2 = 19;
//Intervalle
unsigned long lastActionMillis2 = 0;
const long Interval2 = 3000;
// Instantiate ClickButton objects in an array
ClickButton BlinkButton[BlinkButtons] = {
ClickButton (BlinkButtonPin1, LOW, CLICKBTN_PULLUP), // HABEN ALLE PULLUPS AM NANO?
ClickButton (BlinkButtonPin2, LOW, CLICKBTN_PULLUP),
};
void setup()
{
for (int i=0; i<BlinkButtons; i++)
{
pinMode(BlinkLedPin[i],OUTPUT);
BlinkButton[i].debounceTime = 20; // Debounce timer in ms
BlinkButton[i].multiclickTime = 250; // Time limit for multi clicks
BlinkButton[i].longClickTime = 1000; // Time until long clicks register
}
}
void loop()
{
for (int i=0; i<BlinkButtons; i++)
{
BlinkButton[i].Update();
if (BlinkButton[i].clicks != 0) {
BlinkLEDfunction[i] = BlinkButton[i].clicks;
lastActionMillis[i] = millis();
}
if(BlinkButton[i].clicks == 1) {
BlinkLedState[i] = !BlinkLedState[i];
}
if(BlinkLEDfunction[i] == 2 && millis() - lastActionMillis[i] < Interval2) { /here it has to happen
BlinkLedState[i] = millis() % (650*2) >= 650;
}
}
// update the LEDs
for (int i=0; i<BlinkButtons; i++)
{
digitalWrite(BlinkLedPin[i],BlinkLedState[i]);
}
}
Beste
Z