26-04-2019, 17:50
Kod:
uint8_t odczyt_SW = digitalRead(SW_); //Odczyt stanu przycisku do zmiennej GPIO 0
if (odczyt_SW != ostatni_stan_SW) {
SW_Time = millis();
}
ostatni_stan_SW = odczyt_SW; // zapisywanie odcztanej wartosci stanu przyciku
if ((millis() - SW_Time) > 100 ) { // warunek czasu krotkiego nacisniecia drganie stykow
if (odczyt_SW != stan_short_SW) {
stan_short_SW = odczyt_SW;
if (stan_short_SW == LOW) { // Jesli przycisk jest wcisniety (stan niski)
// akcja krótkiego przyciskania
}
}
}
if ((millis() - SW_Time) > 1000) {
if (odczyt_SW != stan_long_SW) {
stan_long_SW = odczyt_SW;
if (stan_long_SW == LOW) {
// akcja długiego przyciskania
}
}
}
}
}
Macie może pomysł jak to przerobić, bo w tej chwili jes tak krótkie naciśniecie=akcja, długie naciśniencie= akcja a przydało by się jeszcze dwuklik= akcja ??
Nic mi do głowy nie przychodzi, dodatkowe wejście nie wchodzi w rachubę.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą.