Witam. Kolego Namok, co prawda mam już szkic spełniający moje oczekiwania z pierwszego postu (przerobiony szkic z biblioteki "OneButton.h") ale to nie oto chodzi.
Wedle Twoich wskazówek połączyłem BlinkWithoutDelay z częścią szkicu Kolegi ferdricco i wyszło mi takie cuś:
Nie jest to wersja idealna, ale nie jest zła.
Chodzi o stan w którym pozostaje dioda led po ponownym wciśnięciu przycisku.
Proszę o komentarz.
Jeśli ma to ręce i nogi, to pokombinuję z kodem do pojedynczego lub podwójnego mignięcia diodą w zależności od stanu. Tak jak radziłeś w/w wątku.
Wedle Twoich wskazówek połączyłem BlinkWithoutDelay z częścią szkicu Kolegi ferdricco i wyszło mi takie cuś:
Kod:
const int ledPin = LED_BUILTIN;
int ledState = LOW;
unsigned long previousMillis = 0;
const long interval = 1000;
int przycisk = 2;
int stanPrzycisku;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(przycisk, INPUT_PULLUP);
}
void migacz(){
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(ledPin, ledState);
}
}
void loop() {
if(digitalRead(przycisk) == LOW){
delay(20);
stanPrzycisku=!stanPrzycisku;
while(digitalRead(przycisk) == LOW);
delay(20);
}
if(stanPrzycisku == HIGH){
migacz();
}
}
Nie jest to wersja idealna, ale nie jest zła.
Chodzi o stan w którym pozostaje dioda led po ponownym wciśnięciu przycisku.
Proszę o komentarz.
Jeśli ma to ręce i nogi, to pokombinuję z kodem do pojedynczego lub podwójnego mignięcia diodą w zależności od stanu. Tak jak radziłeś w/w wątku.