Skocz do zawartości

[SOLVED] Wariujące serwo - gdzie szukać usterki?


ethanak

Pomocna odpowiedź

Za chwilę coś mnie strzeli...

Układ najprostszy z możliwych - Arduino Pro Mini, odbiornik IR, dioda laserowa i dwa serwa SG-90 (chińczyki). Zasilanie - 18650, ładowarka z zabezpieczeniem (mały moduł) i przetwornica step-up na MT3608. Wszystko ślicznie działa - z pilota mogę regulować poziom świecenia diody i merdać serwami. Do pewnego momentu...

Po którymś z kolei włączeniu urządzenia (lub resecie) jedno z serw przestaje reagować. Napięcie zasilania jest (5.2V), przebieg na wejściu jest (sprawdzane sondą i programem PulseView), serwo jest luźne. Nie pomaga wyłączenie/włączenie urządzenia, reset, zabawy z attach/detach, serwo jest uparte. Dopiero wyjęcie w czasie pracy wtyczki (ściślej: odłączenie Vcc, sprawdzałem przepuszczając wszystko przez płytkę stykową aby wyeliminować możliwość jakiegoś zimnego lutu czy innego mechanicznego syfu na płytce) i ponowne włożenie sprawia, że serwo zaczyna reagować i zachowuje się jak trzeba.

Zmieniałem pin w Arduino, bez skutku.

Zmieniałem serwo na nowe, innego producenta - bez skutku.

Bawiłem się różnymi kondensatorami przy przetwornicy - bez skutku.

Co ciekawsze - zawsze jest to konkretne serwo (powiedzmy serwo numer dwa w urządzeniu), drugie działa prawidłowo.

Gdzie szukać przyczyny?

Edytowano przez ethanak
Link do komentarza
Share on other sites

Gdzie schemat panie, gdzie kod?? Spodziewał bym się po koledze bardziej konkretnego przedstawienia problemu niż te serwowane w komentarzach do kursu arduino ;P

Wstaw schemat i kod to pomyślimy jak Ci pomóc. Pozdro

P.S. testy nawet najprostszych urządzeń robi się za pomocą pewnego źródła zasilania a nie z jakiegoś modułu przetwornicy. Wygląda też na to, że jakieś napięcia wiszą w obwodzie pomiędzy uruchomieniami, dobrym zwyczajem jest zadanie wstępnego obciążenia rezystorem do masy tak aby szło przez niego kilka miliamper i pulldowny na liniach sygnałowych gdzie to tylko możliwe co uspokaja prądy indukowane na tych liniach kiedy nie są używane. Dzięki temu pojemności w obwodzie się rozładowują i nie powodują tego typu dziwnych przypadków co nie znaczy oczywiście, że to rozwiąże Twój problem.

Link do komentarza
Share on other sites

30 minut temu, atMegaTona napisał:

Wstaw schemat i kod to pomyślimy jak Ci pomóc

Wydawało mi się że wszystko jest jasne po pierwszym poście - po kiego grzyba schemat na którym są połączone serwa z arduino? Jest jakiś inny sposób niż ten który wszyscy stosują?

Co ma do rzeczy kod jeśli piszę, że sygnały na serwie są prawidłowe? Są jakieś kody co powodują, że sygnał jest prawidłowy a serwo nie działa? Z chęcią się nauczę.

33 minuty temu, atMegaTona napisał:

testy nawet najprostszych urządzeń robi się za pomocą pewnego źródła zasilania a nie z jakiegoś modułu przetwornicy

Widzisz - w tym przypadku przetwornica jest częścią składową urządzenia. A jak się zapewne domyślasz, inne serwo podłączone do innego egzemplarza arduino z innym zasilaniem działa prawidłowo... tylko co to ma do mojego problemu?

BTW chyba wiem jaki jest powód - sprawdzę jeszcze dokładniej ale jeśli to jest to co myślę, to nie ma to nic wspólnego ze schematem, kodem i przetwornicą 🙂

 

Link do komentarza
Share on other sites

14 minut temu, ethanak napisał:

Wydawało mi się że wszystko jest jasne po pierwszym poście - po kiego grzyba schemat na którym są połączone serwa z arduino? Jest jakiś inny sposób niż ten który wszyscy stosują?

 

14 minut temu, ethanak napisał:

Co ma do rzeczy kod jeśli piszę, że sygnały na serwie są prawidłowe? Są jakieś kody co powodują, że sygnał jest prawidłowy a serwo nie działa? Z chęcią się nauczę.

Każdy tak myśli/pisze a często się okazuje, że się zrobiło głupiego babola, który dopiero po odkryciu tego faktu okazuje się być oczywistym "errare humanum est". Widocznie te sygnały prawidłowe nie są albo przestają być po czasie skoro serwo źle działa albo samo serwo masz zepsute, albo albo...

Bez kodu/schematu można gdybać .

15 minut temu, ethanak napisał:

BTW chyba wiem jaki jest powód - sprawdzę jeszcze dokładniej ale jeśli to jest to co myślę, to nie ma to nic wspólnego ze schematem, kodem i przetwornicą

May the Force be with you!

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

9 godzin temu, atMegaTona napisał:

Każdy tak myśli/pisze a często się okazuje, że się zrobiło głupiego babola, który dopiero po odkryciu tego faktu okazuje się być oczywistym

Oj, wiem, wiem - wiele razy na własnej skórze tego doświadczyłem. Problem w tym, że w tak prostym układzie czy kodzie po prostu nie ma miejsca na błąd...

O tym że serwo jest zepsute pomyślałem od razu, dlatego je wymieniłem i okazało się, że drugie działa (a właściwie nie działa) tak samo. Ponieważ o takiej usterce nigdy nie słyszałem uznałem za mało prawdopodobne, aby dwa serwa pochodzące od różnych producentów były zepsute w ten sam nietypowy sposób.

A rozwiązanie okazało się proste.

Kluczowe okazało się tu Pro Mini. Ponieważ nie ma ono własnego konwertera, wymaga podłączenia zewnętrznego konwertera UART-USB. Mimo niepodłączania linii zasilania (urządzenie ma własne zasilanie), po podłączeniu konwertera na pinie Vcc występuje napięcie ok. 2.3V (nie mam pojęcia skąd się bierze, sprawdziłem na Arduino wyjętym z urządzenia, na wszelki wypadek na dwóch egzemplarzach). Prawdopodobnie to napięcie było wystarczające aby elektronika serwa zadziałała, ale za małe aby zadziałała prawidłowo... i po włączeniu pełnego zasilania dalej nie reagowała na impulsy na wejściu. Wyłączenie urządzenia w tej sytuacji nic nie dało - po wyłączeniu dalej istniało to szczątkowe napięcie. Wyjęcie wtyczki serwa w czasie pracy urządzenia (to ważne) powodowało pełny reset elektroniki serwa i po włączeniu podanie od razu pełnego zasilania (dlatego serwo działało). Ta sama operacja przy wyłączonym urządzeniu nic nie dała - serwo po włożeniu wtyczki dostawało znów te 2.3V i znów wariowało...

Pozostaje pytanie, dlaczego drugie serwo zachowywało się prawidłowo. Nie chce mi się teraz rozbierać urządzenia ale wydaje mi się, że to właśnie serwo jest nietypowo odporne na takie hece z zasilaniem 🙂

A teraz tak trochę złośliwie na temat kodów i schematów (nie jest to złośliwość wymierzona w konkretną osobę, sam też zawsze drę mordę o kody).

W przyszłym tygodniu postaram się wrzucić tu opis tego urządzenia wraz ze schematem i kodem. Stawiam piwo pierwszemu który wskaże, jak na podstawie owego kodu i schematu można było określić powód błędnego działania serwa 🙂

 

  • Lubię! 2
Link do komentarza
Share on other sites

Dnia 11.01.2020 o 09:22, ethanak napisał:

Pozostaje pytanie, dlaczego drugie serwo zachowywało się prawidłowo. Nie chce mi się teraz rozbierać urządzenia ale wydaje mi się, że to właśnie serwo jest nietypowo odporne na takie hece z zasilaniem

Zapewne w jednym z tych serw wejście sygnału jest filtrowane lub zerowane rezystorem do masy a w drugim nie, nic nie szkodzi zrobić to samemu bez względu na to czy w urządzeniu docelowym już pulldown jest czy nie ma, będzie najwyżej mocniejszy.

Dnia 11.01.2020 o 09:22, ethanak napisał:

W przyszłym tygodniu postaram się wrzucić tu opis tego urządzenia wraz ze schematem i kodem. Stawiam piwo pierwszemu który wskaże, jak na podstawie owego kodu i schematu można było określić powód błędnego działania serwa

Ja nie twierdziłem, że zawsze można określić ale zdecydowanie łatwiej jest wykluczyć część ewentualnych przyczyn widząc schemat/kod. Trzymamy Cię więc za słowo co do tego piwa 😄 Niech zwycięzca wypije za moje zdrowie. Pozdro

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.