Elektroda.pl
Elektroda.pl
X
Relpol przekaźniki
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

jak wyeliminować nieustalony stan pinów I/O w czasie staru modułu ESP8266?

11 Mar 2018 21:42 1212 24
  • Poziom 22  
    Witam,

    projektuję sterownik do silnika AC sterowany przez WiFi w oparciu o moduł ESP8266 12E. Silnik ma obroty lewo/prawo. Elementami wykonawczymi są przekaźniki. W momencie podłączenia sterownika do zasilania oba przekaźniki włączają się na moment, co powoduje, że silnik chce równocześnie pracować w obu kierunkach i przez tę chwilę znacznie się nagrzewa. W jaki sposób wyeliminować ten problem? Rezultat ma być taki, że piny ESP sterujące przekaźnikami w czasie uruchomienia sterownika mają być cały czas w stanie niskim, a nie zmieniać stanu na wysoki, po czym znowu na niski.
  • Relpol przekaźniki

  • Poziom 30  
    Pokaż schemat wykonawczy? Jaki to silnik itp. W przypadku silników indukcyjnych i styczników, one powinny mieć blokadę mechaniczną.
  • Relpol przekaźniki
  • Poziom 9  
    Maryush czytałem kiedyś o tym problemie, ale nie przypuszczałem że stanowi to jakiś realny problem, może powinieneś spróbować traktować mikrokontroler jako zwykły przycisk i zastosować tzw. sprzętowy debounce'ing (do eliminacji drgań styków) przed bazą tranzystora.

    korzystając z programu który napisałem do testowania sprzętowej emulacji drgań styków dostępny na:
    http://aiiot.c0.pl/web/2018/02/01/program-do-testowania-sprzetowej-eliminacji-drgania-stykow/

    jak wyeliminować nieustalony stan pinów I/O w czasie staru modułu ESP8266?
    zauważyłem że ten stan nieustalony rzeczywiście występuje, oraz można się go pozbyć układem MAX6818, ale czy ta opcja jest opłacalna do tego celu to już inna kwestia, może wystarczy przeanalizować działanie tego układu i odtworzyć go w tylko takim stopniu w którym drgania nie będą występować (samo dodanie kondensatora i rezystora nie pomoże)
    jak wyeliminować nieustalony stan pinów I/O w czasie staru modułu ESP8266?
  • Poziom 17  
    Maryush napisał:
    Jest to silnik do rolety. Sterowanie przekaźnikami standardowe, tranzystorem BC848 z portu I/O modułu ESP.

    Przy "standardowym sterowaniu przekaźnikiem" silnik nie nie będzie zachowywał się tak jak napisałeś, jeśli przekaźniki są sprawne. Pokaż schemat. Próbowałeś na innych pinach?
  • Poziom 22  
    Problem stanu nieustalonego po zasileniu ESP dotyczy wszystkich pinów I/O, tak jak kolega AIIoT przedstawił to na diagramie z oscyloskopu. Nie wiem, czy równoczesne podanie obrotów lewych i prawych na silnik może mu zaszkodzić, jeśli nie to w moim przypadku nie będzie stanowić to problemu, ale jeśli tak, to problem już jest. Specyfikacja tego napędu nie podaje szczegółowych informacji, co do zabezpieczeń.
  • Poziom 17  
    Jesteś pewien? W takim razie przekaźniki są zepsute ;-)
  • Poziom 38  
    Widzę kilka możliwości:
    1. Hardware'owa eleminacja stanów nieustalonych na pinach I/O - np. jakieś filtry RC - przydałoby się znać częstotliwość i czas trwania tych stanów; poza tym tego typu filtr wprowadzi opóźnienie podczas normalnej pracy.
    2. Jakiś układ logiczny uniemożliwiający jednoczesne włączenie przekaźników - co nie zmieni faktu, że podczas stanów nieustalonych przekaźniki będą się na chwilę włączać (niejednocześnie) - spowoduje to "szarpanie" silnikiem, co nie jest pożądane.
    3. Opóźnione włączenie zasilania przekaźników - zasilanie ESP podawane jest najpierw, zasilanie cewek przekaźników z jakimś (np. 1s) opóżnieniem.
  • Poziom 22  
    Kolega Loker bardzo ładnie przeanalizował i rozpracował temat.
    Najlepszym rozwiązaniem będzie opcja 3, czyli najpierw włączy się ESP a później zostanie podany plus zasilania na cewki przekaźników. To musi być jakiś mały scalak/układ bo już w tym momencie nie mam praktycznie miejsca na płytce. Może coś na NE555?
  • Poziom 37  
    Witam,
    Maryush napisał:
    czyli najpierw włączy się ESP a później zostanie podany plus zasilania na cewki przekaźników

    może typowy układ "reset" - mały, tani, itd.

    Pozdrawiam
  • Poziom 17  
    Maryush napisał:
    Dlaczego niby przekaźniki miałyby być zepsute? Cewki przekaźników są załączane, dokładnie tak, jak pokazuje to diagram.

    Jeśli wszystko dobrze podłączyłeś, a uruchamiają się oba kierunki jednocześnie, to mogą być uszkodzone. To jest niezależne od ESP8266.

    Te stany nieustalone to tak na poważnie? Na każdym pinie? Nawet jakbyś sterował stanem niskim na wyjściu?

    Bez schematu to trudno Ci doradzić sensownie.
  • Poziom 37  
    mpier napisał:
    Maryush napisał:
    Dlaczego niby przekaźniki miałyby być zepsute? Cewki przekaźników są załączane, dokładnie tak, jak pokazuje to diagram.

    Jeśli wszystko dobrze podłączyłeś, a uruchamiają się oba kierunki jednocześnie, to mogą być uszkodzone. To jest niezależne od ESP8266.

    Trochę z innej beczki - autor prawdopodobnie popełnił drobny błąd koncepcyjny: zastosował jeden przekaźnik lewo a drugi prawo. Powinien był zastosować jeden przekaźnik lewo - prawo a drugi start - stop. Co nie zmienia faktu, że stany nieustalone będą powodowały niekontrolowane przełączanie tych przekaźników podczas podnoszenia się procesora.
  • Poziom 17  
    To raczej nie jest możliwe. Przecież autor napisał, że "podłączył standardowo". Czyli tak jak napisałeś albo styki NO drugiego szeregowo z NC pierwszego albo jeszcze inaczej. Które piny autor używa do sterowania?
  • Poziom 9  
    Maryush Na samym początku proponowałbym ci spróbować zmienić sposób sterowania, podczas uruchomienia ESP ma głównie stan wysoki.
  • Poziom 31  
    A w czym kolega pisze program ? w arduino ? czy piny mają stany (LOW lub HIGH - w zależności od logiki układu sterującego przekaźnikami) ustalone przy starcie programu ? do tego odpowiednie rezystory pulldown lub pullup i nie powinno być problemów.
    Pin 13 to pin RX uart1, więc może tu jest problem

    https://i.pinimg.com/originals/0c/8c/e8/0c8ce8bc22ee6ba0e2ed830bcbb28454.png


    Pozdr
  • Poziom 22  
    krzbor napisał:
    Zobacz temat, który promuję (w stopce). To rozwiązanie na pewno działa.

    Bardzo dobrze opisane, jeśli na którymś pinie ESP8266 12E jest czysto w czasie startu, to można wykonać takie sterowanie. Spróbuję też z dodaniem rezystorów podciągających do zera, ale wydaje mi się, że to nic nie da.
  • Poziom 17  
    Odnośnie drugiego UART nie doczytałeś do końca mojego promowanego tematu :) Tam też ktoś zadał to pytanie. Nie rozumiem dlaczego nie zastosowałeś sposobu z linią Rx - czy po podłączeniu przez rezystor 3k3 do masy był na tym wyjściu jakiś sygnał podczas startu?
  • Poziom 17  
    Maryush napisał:
    Rezystory na nic się zdały.
    Pierwszy rezystor od lewej podłączyłeś odwrotnie. Drugi jest za duży albo wewnętrzne podciągnięcie jest za moce. Policz sobie co wyszło na bazie tranzystora. Jeśli pin 16 jest w stanie wysokim (google) to prędzej go spalisz niż ściągniesz do masy. Ty chyba bardzo nie chcesz tego zrobić.