Warunek wykonywany raz, jak ? - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Warunek wykonywany raz, jak ? (/watek-warunek-wykonywany-raz-jak) |
Warunek wykonywany raz, jak ? - emil134679 - 13-08-2017 Witam jako nowy użytkownik Mam wydaje się mieć banalny problem z językiem Arduino, gdyż zajmuję się nim niezbyt długo. Jak napisać warunek tj. if(){} który będąc w pętli wykona się tylko raz, dopóki nie zostanie wykonany inny ? Bardziej fizycznie...4 przyciski 4 diody, gdy wcisnę przycisk pierwszy zapala się dioda pierwsza, i gaśnie. Ma to robić raz, po czym którykolwiek z 3 przycisków może zostać wciśnięty by zapalić i zgasić diodę, powiedzmy że po jednym cyklu chciałbym "zablokować" ten przycisk aż do wykonania innego z pozostałych warunków. I tak dla każdego, a pisząc zwykły if będzie migać cały czas. Jak to napisać ? RE: Warunek wykonywany raz, jak ? - adix - 13-08-2017 Kod: bool flag; RE: Warunek wykonywany raz, jak ? - emil134679 - 14-08-2017 Nie za bardzo rozumiem jak to wykorzystać, jest za późna godzina na testy, ale jeśli domyślnie mój fragment kodu wygląda tak: Kod: if(analogRead(A5)<700) I to powoduje ciągłe załączanie i wyłączanie przekaźnika zgodnie z pętlą, więc jeśli zrobię to tak ? (nie wiem czy dobrze rozumiem) Kod: bool flag; Program ma działać na takiej zasadzie, że przysłonienie jednego z 4 fotorezystorów powoduje jedną "akcje" przekaźnika, następnie mogę go sobie trzymać ile mi się podoba a przekaźnik nie ruszy, ruszy dopiero inny przekaźnik gdy przysłonie inny fotorezystor, i ta sama zasada, jedna akcja przekaźnika i koniec. Obecnie trzymając przysłonięty fotorezystor naturalnie przekaźnik ciągle napiernicza RE: Warunek wykonywany raz, jak ? - adix - 14-08-2017 To zabezpiecz to flagami . RE: Warunek wykonywany raz, jak ? - emil134679 - 14-08-2017 (14-08-2017, 00:29)adix napisał(a): To zabezpiecz to flagami . Napisałem tak: Kod: while(foto1 == 0 && analogRead(A5)<700){ Dziękuje za pomoc i pomysł z flagami, dostajesz punkty |