"IF" nie działa - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: "IF" nie działa (/watek-if-nie-dzia%C5%82a) |
"IF" nie działa - stasiekx - 02-05-2021 Cześć Napisałem w Ardu już sporo programów i nigdy nie spotkałem się z problemem, a na pewno z warunkami... Mam funkcję dioda(stat), stat to wartość od 0 do 4 i mam zagwostkę: dwa pierwsze warunki powinny ustawiać dla LED_1 wartość off lub on w zależności od stat, ale nie ma znaczenia czy stat to 0 czy 1 zawsze LED_1 ma wartość on... gdzie on 0 off 1 Podstawienie w funkcji zamiast LED_1 = on i LED_1 = off wartości LED_1 = 0 i LED_ 1 = 1 również nic nie zmienia. Gdzie jest błąd, przecież tu nie ma nic trudnego. Może coś się zmieniło w nowej wersji arduino. Kod: void dioda(int stat) { RE: "IF" nie działa - Robson Kerman - 02-05-2021 Wychodzi na to, że w funkcji digitalWrite(pin, value), parametr value ustawiasz na on lub off, a powinno być HIGH lub LOW. RE: "IF" nie działa - stasiekx - 03-05-2021 (02-05-2021, 23:29)Robson Kerman napisał(a): Wychodzi na to, że w funkcji digitalWrite(pin, value), parametr value ustawiasz na on lub off, a powinno być HIGH lub LOW.Na początku zdefiniowałem #define on 0 i #define off 1. Poza tym gdy stat = 2 dioda LED_1 przyjmuje na zmianę 0 i 1 i to działa poprawnie RE: "IF" nie działa - powerTGS - 08-05-2021 Kod: void dioda(int stat) RE: "IF" nie działa - powerTGS - 08-05-2021 Tylko, że czasami problem jest gdzie indziej ... Twoje IF wyglądają OK (ale spróbuj ze switch) ale np, char literka; int liczba; i nagle robisz literka = "k0"; Arduino jest takie toporne a IDE jego jeszcze bardziej, z automatu do zmiennej liczba trafia 0 bo wyjechałeś poza zmienną która miała przechowywać tylko jedną literkę... gdzie indziej bym szukał błędu a nie w tej funkcji :-) to tylko przykład, takie niekontrolowane rzeczy się zdarzają ESP od razu się posypie (o ile kompilator to przepuści) a Arduino powie OK. Się Arduino nie bawię juz od dawna, ale nie raz cyrki się działy... miała się zapalić dioda na LEDKEY nr. 4 a załączał się przekaźnik. Głupie to Arduino, droższe niz ESP, wolne i pamięci tyle co w Commodore64 podzielić przez 32, musisz kontrolować pamięć !!! |