const int buttonPins[] = {A0, A1, A2, A3, A4, A5, 2};
const int numButtons = sizeof(buttonPins) / sizeof(buttonPins[0]);
const int ledPins[] = {13, 12, 11, 10, 9, 8, 7};
const int MVPin = 6;
const int numLeds = sizeof(ledPins) / sizeof(ledPins[0]);
const unsigned long shortPressDuration = 1000; // Maximální doba pro krátký stisk v milisekundách (1 sekunda)
const unsigned long ledDuration = 30000; // Délka svícení LED po krátkém stisknutí v milisekundách (10 sekund)
void setup() {
for (int i = 0; i < numButtons; i++) {
pinMode(buttonPins[i], INPUT_PULLUP);
}
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Vypnout všechny LED
}
}
void loop() {
for (int i = 0; i < numButtons; i++) {
int buttonState = digitalRead(buttonPins[i]);
// kontrola jestli je tlačítko na daném pinu stisknuto (nyní je aktivní nízký stav)
if (buttonState == LOW) {
unsigned long buttonPressTime = millis(); // zapsání čas stisku tlačítka
unsigned long ledOnTime = 0; // Čas, kdy byla LED rozsvícena
// čekat, dokud je tlačítko stisknuto
while (digitalRead(buttonPins[i]) == LOW && millis() - buttonPressTime < shortPressDuration) {
// Počkat, až bude tlačítko puštěno nebo uplyne čas pro krátké stisknutí
}
// Pokud tlačítko bylo stisknuto krátce, rozsviťí LED po dobu 10 sekund
if (millis() - buttonPressTime < shortPressDuration)
{
ledOnTime = millis();
digitalWrite(ledPins[i], HIGH);
digitalWrite (MVPin, HIGH);
while (millis() - ledOnTime < ledDuration)
{
// Počkat, dokud LED nesvítí po dobu 10 sekund
}
// Vypnout LED po uplynutí 10 sekund
digitalWrite(ledPins[i], LOW);
digitalWrite(MVPin, LOW);
}
}
}
}