logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATMega16] Zakłócenia przy sterowaniu 6-7 serwomechanizmów z Conrada i TowerPro

_Robak_ 20 Sty 2007 15:04 4832 35
Najlepsze odpowiedzi LABEL_AI_GENERATED

Dlaczego ATmega16 zaczyna wariować przy sterowaniu 6–7 serwami i jak ustabilizować układ?

Problem najpewniej wynika ze spadków napięcia i zakłóceń zasilania, a nie z samej liczby serw; warto też podciągnąć RESET do VCC przez rezystor, żeby procek nie łapał fałszywych resetów od szumów [#3467958][#3524840] Przy samym mikrokontrolerze trzeba dać kondensatory odsprzęgające bardzo blisko pinów, a zasilanie serw prowadzić możliwie oddzielnie od części cyfrowej, najlepiej z połączeniem masy w jednym punkcie przy wejściu zasilania [#3524840] Dla serw zalecane są kondensatory 100 nF przy każdym złączu serwa oraz kilka większych elektrolitów przy zasilaniu, bo pojedynczy duży kondensator na końcu ścieżki nie tłumi dobrze lokalnych impulsów prądu [#3524840][#3560054] Jeśli to możliwe, zasil serwa z osobnego źródła niż AVR; jeśli nie, to przynajmniej dołóż dużo pojemności i trzymaj ścieżki zasilania serw daleko od mikrokontrolera [#3524840]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
  • #1 3465398
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Witam
    Mam zrobiony kontroler serw(do 24) i pojawil sie pewien problem. Serwa mam z conrada(3kg) i TowerPro, podlaczam conradowe i przy 6 badz 7 podlaczonym wszystko zaczyna szalec, albo serwa skrecaja sie w jedna strone albo drgaja strasznie. Ewidentnie cos z prockiem sie dzieje, poniewaz jak mam podlaczych te 7 serw to wszystko dziala wporzadku jak porty sa ustawione na wejscie a nie na wyjscie. Masy ATmegi i serw sa polaczone przy stablilizatorze. Zmierzylem prad jaki plynie w przewodzie sterujacym serwami i jest to 40uA wiec nie jest to chyba sporo. Ma ktos moze pomysl co moze byc przyczyna takiego zachowania procka? Moze sterowac serwami przez tranzystory?
  • REKLAMA
  • #2 3465508
    wojtkow
    Poziom 14  
    Posty: 80
    Pomógł: 9
    A jak masz rozwiązane zasilanie tych serw ??
    Z własnego modelarskiego doświadczenia wiem że przy czwartym-piątym serwie pojawiają się problemy z zasilaniem przez regulator silnika i musiałem dokładać dodatkowe zasilanie dla serw
  • #3 3465528
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    A zapomnialem napisac;) Zasilanie jest z zasilacza ATX, ma on 30A wydajnosc wiec mysle ze nie w tym tkwi problem. Prad zmierzony podczas jak serwa szalaly to okolo 1A. Sciezki zasilania serw i masy biegna blisko procka
  • #4 3466466
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    A jak podłączone jest wyprowadzenie RESET uC? podłącz przez rezystor 1K do plusa.
  • #5 3467915
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Reset nie jest podlaczony, tylko czy jak podlacze reset do plusa to dalej bede mogl programowac szeregowo?
  • Pomocny post
    #6 3467958
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Właśnie dlatego masz podłączyć przez rezystor
  • #7 3468009
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    To sprawdze, potem napisze czy pomoglo.
  • REKLAMA
  • #8 3470545
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Podpialem 6 serw conrada i jedno Tower Pro i na razie dziala wporzadku:) Niestety cos sie spsulo i nie widze uP z PCta i nie moge sprawdzic dla wiekszej ilosci serw.
  • REKLAMA
  • #9 3470759
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    W takim razie zmień wartość opornika na 10K, widocznie 1K to za dużo dla programatora.
  • #10 3471200
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Bez opornika tez nie dziala:| To jest lutowane na plytce uniwersalnej wiec posprawdzam jeszcze raz polaczenia i programator, bo jest robiony, moze cos sie poluzowalo:)

    Juz dziala:) takie sa uroki lutowania na plytce uniwersalnej;)
  • #11 3519333
    aristot
    Poziom 14  
    Posty: 149
    Pomógł: 10
    Ocena: 4
    Napisz jak sterujesz serwami. Jeżeli robisz to sekwencyjnie tzn najpierw wysyłasz sygnał na pierwsze potem drugie itd. to przy większej liczbie serw może okazac się że odstępy między impulsami sterującymi dla każdego serwa są zbyt długie i serwa głupieją.
  • REKLAMA
  • #12 3519458
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Steruje sekwencyjnie, ale jak nie sa podlaczone wszystkie to dzialaja bez zarzutu, glupieja tylko jak podebne wieksza ilosc. Jeszcze dokladnie nie sprawdzalem czy pomoglo podciagniecie restea, ale przy 7 nie szalaly na dniach sprawdze wszystkie 22 serwa
  • #13 3524710
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    No wiec generlanie dziala ale jeszcze to nie o to chodzi bo czasami szaleja serwa. Teraz bede robic na plytce drukowanej, w zwiazku z tym prosilbym jak by ktos napisal co sie jeszcze stosuje zeby uP dzialal stabilnie?? Problem pojawia sie dopiero przy podlaczeniu 23 i 24 serwa.
  • Pomocny post
    #14 3524840
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    kondensatory odsprzęgające przy procesorze (dosłownie przy - odległość jest ważna) oczywiście zasilanie serw z innego źródła niż uC (o ile to możliwe, jeśli nie, to chociaż kondensator 100n przy każdym) do tego kilka większych pojemności.

    Rezystor do RESETu już jest i niech tam zostanie ;)

    Podejrzewałbym spadki napięcia za odpowiedzialne za te wariactwa, stąd radziłbym dodać elektrolity.

    Ścieżki zasilania serw poprowadź możliwie najdalej od mikrokontrolera, po co mu autostrada pod domem ;) mase części cyfrowej i serw połącz w jednym punkcie, przy wtyczce zasilania, zasilanie serw najlepiej też. Możesz zastosować koraliki ferrytowe jeśli masz pod ręką do tych połączeń.
  • #15 3525019
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Dzieki:) wezme to wszystko pod uwage przy projektowaniu plytki ktora, mam nadzieje, ze spisze sie dobrze:)
  • #17 3539408
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Może być, ja bym dał cokolwiek wylutowanego ze starej płyty...
  • #19 3553868
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    AVCC i AGND muszą być podłączone, odpowiednio do plusa i do masy, nawet jeśli nie wykorzystujesz przetwornika, tak samo pozostałe piny GND i VCC muszą być podłączone. Sygnały na złącze ISP dobrze byłoby wyprowadzenia umieścić według Atmelowskiego standardu (opisane w przyklejonym temacie o stk200)
  • #20 3553926
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    Proponuję dołożyć jeszcze po jednym kondensatorze na zasilaniu 6V, tuż przy samym serwomechaniźmie.
  • #22 3560054
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    ja bym dał 100nF przy każdym złączu do serwa (fajnie pasują w wersji SMD) plus kilka większych elektrolitów przy zasilaczu
  • #23 3560657
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Dac kondensatory pomiedzy GND a 6V przy kazdej wtyczce do serwa? A nie mozna dac jednego wiekszego z boku plytki, sciezki i tak sa polaczone..
  • #24 3561986
    ziomal155
    Poziom 15  
    Posty: 211
    Pomógł: 6
    Ocena: 13
    to co ze są podłączone prąd w nich płynie od źródła do serw i np. jak pzeplywa przez zlącze 20 serwa do 21 i 20 serwo wykona nagłą zmiane kierunku to pojawi się zindukowane napienie nie duże i o małym natężeniu ale będzie dojdzie do 21 serwa i je zakłuci, dlatego te tętnienia trzeba eliminować przy każdym elemecie pobierajacym prąd. no chyba że pujdziesz w ślad za chinczykami którzy oszczedzaja na tym i wychodzi co wychodzi np kupilem karte firewire na PCMCIA i wogule nie dzialala rozebralem a tam nie ma ni jedengo kondensatora na zasilaniu pozakładałem kilka bo były na nim miejsca no i co neico ruszylo ale po 1-2min zgrywania filmu wiesza sie komputer może ktoś wie dlaczego?? DObra ale nie odbiegamy tak od tematu.

    Dodano po 2 [minuty]:

    a jeszcze cos sory ze nei edytuje tamtego ale cos nie moge słyszałeś kiedyś o czymś takim jak kondensator elektrolityczny?? To taki akumulatorek o bardzo małej pojemności :p <lol> Umieść ich kilka na swojej płytce a też wszystko powino zacząć lepiej działać :)
  • #25 3565846
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Dzieki za krotka lekcje elektroniki;) Spojrzalem na kontroler z lynxmotion http://www.lynxmotion.com/images/data/ssc-32.pdf . Sa tam po 2 kondensatory na linie zasilania, ktorych sa dwie. Dodane sa za to oporniki na linii sygnalowej serw, jako ze dosc ciezko by mi bylo dac 24 kondensatory przy kazdym serwie moze starczy dac np. 4, no i wydaje mi sie ze te oporniki tez beda konieczne.
  • #26 3566045
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Jest tam 12 kondensatorów odsprzęgających (100nF), dlaczego chcesz tam umieszczać oporniki?
  • #27 3566295
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Hmm z tego co ja widze to oporniki R1..R32 sa na liniach sterujacych, i po 2 kondesatory przy zasilaniu C8..C11. Jak te serwa mi tak szalaly, i przez przypadek ustawilem porty na wejscie, to wydawalo sie byc ok, stad moj wniosek ze moze wlasnie o brak opornikow tu chodzi, szczegolnie ze, jesli dobrze patrze, to w tym kontrolerze sa oporniki na liniach sterujacych.
  • #28 3566354
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Kondensatory C12-C20 służą tylko i wyłącznie jako odsprzęgające i przy każdym złączu do serwa jest jeden.

    Wsadzić na płytkę rezystory żadna sztuka, pomóc mogą, a jak nie pomogą to zawsze można je zastąpić zworami ;)
  • #29 3567292
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    No wiec wersja 1.20;) prezentuje sie tak:
    http://img104.imageshack.us/img104/2519/clipboardmj3.jpg

    i PCB:
    http://img104.imageshack.us/img104/147/clipboardnl3.jpg

    Dalem przy kazdej osemce serw po dwa 100nF i jeden elektrolit 22uF, przy kazdym serwie nie dalbym rady wcisnac kondensatorow, no i jeszcze dalem dwa elektrolity przy wtyczce. Zamienilem tez SPI na uniwerslany, niestety trzeba bylo sciezki z programatora troche pokrecic . Jak juz sie okaze ze wszystko dziala to zamieszcze tu plik z PCB zeby dla potomnych bylo:)
  • #30 3567491
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    C6 i C5 umieściłbym prostopadle do kwarcu, żeby miały równe długości ścieżek (taki szczegół, ale w profesjonalnych konstrukcjach zawsze tak się robi)

    W złączu ISP 4 piny oznaczone jako GND powinny być połączone ze sobą (na schemacie są, na PCB nie) 10-pinowe złącze stosuje się dlatego żeby co druga żyła była połączona z masą (mnie więcej bo na jednej jest Vcc) wtedy można stosować długą taśmę bez zakłóceń.

    R2 i R3 można przekręcić o 90st wtedy ścieżki będą lepiej poprowadzone (złącze P0 będzie można przekręcić)

    Ja bym tą płytkę troszkę zmniejszył, ale podejrzewam że rozmiar masz narzucony, szkoda że nie wstawiłeś megi w DILu (przewlekanej) lepiej pasowałaby do płytki...

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczy zakłóceń i niestabilnej pracy mikrokontrolera ATMega16 podczas sterowania 6-7 serwomechanizmami z Conrada (3kg) i TowerPro. Przy większej liczbie podłączonych serw pojawiają się drgania i nieprawidłowe ruchy, co może wynikać z problemów z zasilaniem, zakłóceniami sygnałowymi lub niewłaściwym podłączeniem linii RESET mikrokontrolera. Zasilanie serw pochodzi z zasilacza ATX o wydajności 30A, a prąd na linii sterującej wynosi około 40µA. Zalecane jest podłączenie linii RESET przez rezystor (np. 1kΩ lub 10kΩ) do plusa, co poprawia stabilność i umożliwia programowanie szeregowe. Sterowanie serwami odbywa się sekwencyjnie, co przy dużej liczbie serw może powodować zbyt długie odstępy między impulsami i skutkować niestabilnością. Wskazano konieczność stosowania kondensatorów odsprzęgających (100nF SMD przy każdym złączu serwa oraz większych elektrolitów 22µF przy grupach serw i zasilaczu) oraz rezystorów na liniach sygnałowych, co redukuje zakłócenia indukowane przez nagłe zmiany prądu. Zalecane jest również zasilanie serw z osobnego źródła oraz prowadzenie masy i zasilania serw możliwie z dala od mikrokontrolera, z połączeniem masy cyfrowej i analogowej w jednym punkcie. Dodatkowo sugerowano użycie dławików szeregowo przed stabilizatorem oraz ferrytowych koralików na liniach zasilania. Projekt płytki PCB uwzględniał poprawne podłączenie pinów AVCC, AGND, GND, VCC oraz zgodność wyprowadzeń ISP ze standardem Atmel. Problemy z komunikacją programatora po zwarciu GND i VCC wskazują na możliwe uszkodzenia mikrokontrolera. W dyskusji pojawiły się także pytania o modele serw TowerPro (SG995, SG50) oraz kwestie zasilania i filtracji napięcia w układach sterujących serwami zasilanymi z akumulatora żelowego i stabilizatorem low drop.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA