Skocz do zawartości
Komentator

Kurs Arduino II - #5 - klawiatura, własny system alarmowy

Pomocna odpowiedź

(edytowany)

Racja, bo tak: jak wchodzisz w case 3 to jedyna możliwość żeby zostać w jakimś stabilnym stanie to mieć już wciśnięty przycisk na klawiaturze, ale jak będziesz go trzymał to wyskoczy przy kolejnym obrocie pętli. Twoje ify wewnątrz case 3 muszą mieć jakąś pamięć.

Czyli nie możesz sprawdzać przycisku wewnątrz ifa tylko gdzieś na zewnątrz - nawet w głównej pętli i przy wykryciu zbocza zapisywać że:

aha przycisk X był w HIGH (nie wciśnięty, masz to zapisane w zmiennej pomocniczej ostatni stan przycisku) ale w kolejnym obrocie pętli (czyli teraz) przycisk jest w LOW, to ustaw zmienną przycisk_x na true. Jeżeli inny będzie wciśnięty to poprzedni kasujesz:

przycisk_x = false, przycisk_y = true. itd.

W Arduino reakcja na stan przycisku zazwyczaj jest nieprzydatna, tylko reakcja na zmianę stanu i zapamiętanie tej zmiany.

Edytowano przez Gieneq

Udostępnij ten post


Link to post
Share on other sites

Witam.

Mam problem z dodatkowym zadaniem. Przerwanie mi nie działa. Dopisałem przerwanie w kodzie programu. Po wgraniu programu, arduino w ogóle nie reaguje na przycisk. Czy się go wciśnie, czy się go puści, brak reakcji. Wstawiam linijki z kodu związane z przerwaniem. 

#define PRZYCISK 12 //pin do którego podlączony jest przycisk

volatile int stanAlarmu = 1;

void setup(){
  pinMode(PRZYCISK, INPUT_PULLUP); //przycisk jako INPUT_PULLUP
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), reset, FALLING); //przerwanie
}

void reset() {
  wylaczDiody(); //funkcja która wylącza diody
  noTone(BUZZER); //wycisz buzzer
  stanAlarmu = 1; //wartość zmiennej stanAlarmu ustaw na 1 Przy wartości 1 alarm powiniem przejść w stan czuwania
}

W programie działa wszystko oprócz przerwania.

Udostępnij ten post


Link to post
Share on other sites

@amisztal0 witam serdecznie na forum 🙂 

image.thumb.png.3618e139d3db112ab77ba8dfca7873da.png

przerwania w UNO można podpiąć tylko do 2 i 3 pinu.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...