Alarm z "podtrzymaniem" - 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: Alarm z "podtrzymaniem" (/watek-alarm-z-podtrzymaniem) |
Alarm z "podtrzymaniem" - gorylla - 15-04-2018 Witam mam mały problem na arduino nano a mianowicie prubuję napisać program alarmu do garażu. Niby wszystko działa okej ale nie do końca może od początku. Mam podłączone do Nano kontrakton, buzer, dwie diody zworkę. Ogólnie zasada jest taka na bramie jest zamoacowny kontrakton bramę garazu otwieram z pilota Myślałem aby wykorzystać sygnał w chwili otwarcia z bramy który by wył. alarm. a teraz sytuacja co się dzieje. pilot daje impuls bramie brama się otwiera rozłączany jest układ i teraz kontrakton ma stan wysoki bo jest rozwarty natomiast brama ma stan niski bo impuls przestał być wysyłany i włącza się ponownie alarm nie wiem jak napisać aby po otwarciu bramy program czekał do ponownego zamknięcia kontaktronu i nie aktywował alarmu. Lub jak wykonać pętle tylko raz ? tu moje pierwsze wypociny. Jestem początkujący proszę o wyrozumiałość. Kod: const int buzzer = 10; RE: Alarm z "podtrzymaniem" - Robson Kerman - 15-04-2018 Alarm jest uzbrojony gdy nie dostaje sygnału z pilota: while (bram == LOW) A powinien być uzbrojony niezależnie, czyli stanem jakiejś zmiennej: Kod: bool uzbrojAlarm; I wtedy możesz sprawdzać: Kod: //************************************************* RE: Alarm z "podtrzymaniem" - gorylla - 16-04-2018 Witam dziękuje za szybką odpowiedz ale niestety teraz brak reakcji ze strony układu ? Nie wiem gdzie popełniłem błąd ? Kod: const int buzzer = 10; RE: Alarm z "podtrzymaniem" - Robson Kerman - 16-04-2018 Bo nadal wszystko masz w pętli while (bram == LOW), czyli działa gdy brak sygnału z pilota. A co to takiego robi???? Kod: while (bram == LOW) Założenie jest takie: (15-04-2018, 13:59)gorylla napisał(a): Myślałem aby wykorzystać sygnał w chwili otwarcia z bramy który by wył. alarm. czyli tak jak napisałem: Kod: if (bram==LOW) uzbrojAlarm=false; (15-04-2018, 13:59)gorylla napisał(a): pilot daje impuls bramie brama się otwiera rozłączany jest układ i teraz kontrakton ma stan wysoki bo jest rozwarty natomiast brama ma stan niski bo impuls przestał być wysyłany (15-04-2018, 13:59)gorylla napisał(a): jak napisać aby po otwarciu bramy program czekał do ponownego zamknięcia kontaktronu i nie aktywował alarmu. No przecież napisałem: Kod: if (kon==LOW && uzbrojAlarm==false) uzbrojAlarm=true; Nie rozumiem, czego jeszcze nie rozumiesz? Ja naprawdę nie napiszę za Ciebie tego kodu, chociaż zajęło by to pewnie 3 minuty. Jesteśmy w dziale "Piaskownica", czyli ty budujesz babki z piasku, a ja doglądam czy go sypiesz do wiaderka, a nie za koszylkę kolegi. Ja za ciebie tej budowli nie skonstruuję, z czystej sympatii do niczym nie skrępowanej pomysłowości młodych adeptów sztuki programowania. RE: Alarm z "podtrzymaniem" - gorylla - 16-04-2018 Dziękuje jeszcze raz dziś już to zostawię ale załapałem o co chodzi jutro podrzucę działający program prawdopodobnie. pozdrawiam RE: Alarm z "podtrzymaniem" - gorylla - 24-05-2018 Witam ponownie. Niestety w dalszym ciągu mam problem a mianowicie niby wszystko działa okej. Ale po złożeniu i podłączeniu pod bramę mam problem którego nie umiem obejść mimo usilnych prób. A mianowicie program działa poprawnie z tym że gdy podawany jest impuls z bramy następuje rozbrojenie alarmu ale funkcja loop zdąży się wykonać po raz kolejny zanim kontrakton się rozłączy, tak mi się wydaje i całość alarmu ponownie się uzbraja powodując alarm. Co muszę poprawić w kodzie ktoś ma jakiś pomysł ? kombinacja z czasem opóźnienia też nie działa nie wiem ? Kod: void loop() RE: Alarm z "podtrzymaniem" - es2 - 25-05-2018 Reaguj na zmianę stanu a nie na poziom. Wywal dealay. RE: Alarm z "podtrzymaniem" - Robson Kerman - 25-05-2018 Takie pytanko do gorylla: Czy wiesz co robi z pętlą słowo kluczowe "break"? W powyższym przypadku można powiedzieć, że pętle wykonują się tylko raz. Nie mam czasu na analizę, ale podejrzewam, że ten kod nie mama sensu. |