hc12 komunikacja - 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: hc12 komunikacja (/watek-hc12-komunikacja) |
hc12 komunikacja - kamilussulimak - 26-07-2021 Witam jestem tu nowy Od jakichś 5 lat bawię się z arduino ale z dłuższymi przerwami chciałbym wykonać zdalne sterowanie do wciągarki leśnej : -nadajnik z przełącznikiem dzwigienkowym (on)off(on) -odbiornik z przekaźnikami sterujący elektrozaworami wciągarki narazie napisałem mini program sterujący jednym przekaźnikiem tylko nie wiem dlaczego odbiornik nie wysyła do nadajnika (3333) informujących o włączeniu przekaźnika i gdy puszczę przycisk to przekaźnik się nie wyłącza. może ktoś mi doradzić w czym tkwi problem ? ewentualnie proszę was o podsuniecie innego pomysłu na sterowanie chwilowe dwóch przekaźników za pomocą 2x hc12 i 2x nano, bo siedzę nad tym już drugi dzień i albo przekaźnik nie chce się wyłączyć albo sa lagi, a postanowiłem sobie ze nie odpuszczę i walczę z tym cały czas Kod nadajnika: Kod: #include <SoftwareSerial.h> Kod odbiornika: Kod: #include <SoftwareSerial.h> RE: hc12 komunikacja - Jarewa0606 - 27-07-2021 "tylko nie wiem dlaczego odbiornik nie wysyła do nadajnika (3333) informujących o włączeniu przekaźnika" #define przekaznik 2 if(przekaznik==HIGH) Bo je jest flagą?? przecież przekaźnik zdefiniowałeś "2" wiec ten if się nigdy nie wykona bo HIGH to jest "1".. "i gdy puszczę przycisk to przekaźnik się nie wyłącza." if(dane == 1111) digitalWrite(przekaznik, HIGH); Bo nie ma funkcji wyłączenia... RE: hc12 komunikacja - kamilussulimak - 27-07-2021 Jarewa0606 dzięki za pomoc teraz wszystko ruszyło tylko nie wysyłam np. "1111" tylko "11 " wtedy szybciej reaguje dioda na puszczenie przycisku ,przypuszczam że muszę zwiekszyc predkość transmisji to wtedy też to pomoże. Nie zamykam narazie tematu bo będę jeszcze ten program rozbudowywał i napewno będę potrzebować waszej pomocy RE: hc12 komunikacja - Jarewa0606 - 27-07-2021 Bardziej użył bym sprzętowego RS to da kopa bo programowy jest blokujący.. Tylko tu jest minus bo uno ma jedno o ile nie musisz czytać coś na monitorze to można się skusić. Albo wymienić płytkę na atmęgę2560 mini nawet ma wtedy więcej portów sprzętowych. RE: hc12 komunikacja - kaczakat - 28-07-2021 Wysyłaj dane w stałych odstępach czasu, np. do 20ms, do takiego interwału dobierz prędkość transmisji, jak przez np. 3 cykle nie odbierzesz polecenia (czyli mierz timeout) to zareaguj, np. zatrzymaj działanie wyciągarki. Wywal delay i użyj WD. Zabezpieczeń pewnie powinno być więcej, takie urządzenie może narobić szkód czy okaleczyć, zdrowia życzę. RE: hc12 komunikacja - kamilussulimak - 28-07-2021 (28-07-2021, 01:48)kaczakat napisał(a): Wysyłaj dane w stałych odstępach czasu, np. do 20ms, do takiego interwału dobierz prędkość transmisji, jak przez np. 3 cykle nie odbierzesz polecenia (czyli mierz timeout) to zareaguj, np. zatrzymaj działanie wyciągarki. Wywal delay i użyj WD. Zabezpieczeń pewnie powinno być więcej, takie urządzenie może narobić szkód czy okaleczyć, zdrowia życzę. Stworzyłem nowy kod bez delay Nadajnik: -gdy wcisnę guzik wysyłam co 5ms "11" , Odbiornik: -gdy odbiorę "11"włączam diodę -jeśli od ostatniego odbioru "11" minęło ponad 15ms diodę gaszę to jest najlepszy patent bo odrazu mam zabezpieczenie przed utratą zasięgu(i kod jest nieskomplikowany ) bo gdy odbiornik nie dostanie danych to sam przekaźniki powyłącza tylko jest jeden problem a mianowicie gdy nacisnę guzik dioda zapala się natychmiast, ale gdy go puszczę dioda gaśnie po ok 1.5-2s -próbowałem przejść na serial sprzętowy i nic się nie zmieniło -odbiornik zasilany z 2x 18650 połączony grubymi kablami jedyne co to nie dałem kondensatora filtrującego -według mnie problem leży w kodzie odbiornika bo jak podglądam te przychodzące "11" w serial monitorze odbiornika to wyglada to tak: lecą zera - gdy wcisnę guzik odrazu zaczynają lecieś jedynki - gdy puszczę guzik serial się natychmiast zatrzymuje na te 1.5-2s i po tym czasie gaśnie dioda i jednocześnie lecą zera w serial monitorze kod nadajnika: Kod: #include <SoftwareSerial.h> kod odbiornika: Kod: #include <SoftwareSerial.h> RE: hc12 komunikacja - kamilussulimak - 29-07-2021 Problemem okazało się parseint () Teraz wysyłam pojedyncze litery i odbieram je za pomocą Serial.read i teraz wszystko działa bardzo szybko bez zacięć |