witam.
Dorwalem dzis pierwsze w moim zyciu serwo HS-322HD (Hitec) z AVT.
pozdrawiam Janusz U.
witam.
Dorwalem dzis pierwsze w moim zyciu serwo HS-322HD (Hitec) z AVT.
pozdrawiam Janusz U.
Zauwazylem tez na oscyloskopie, przy odlaczonym serwie, dosc znaczny szum od ukladu na linii sterujacej serwem (szczegolnie w stanie wysokim). Czy serwo jest na to czule? Wydaje mi sie, ze w modelach nie ma podwojnego zasilania... :)
pozdrawiam Janusz U.
a) masz blad w programie i posylasz na przemian dlugie i krotkie impulsy, albo krotkie i za czesto
b) posylasz impulsy poza zakresem regulacji serwa i ono usiluje sie obrocic poza mechaniczny ogranicznik
Polecam kompendium nt. sygna³ów steruj±cych serwami:
Najwieksze moje moje do¶wiadczenie z tej zabawy jest takie, ¿e nale¿y zadbaæ o idealnie równe szeroko¶ci stanów wysokich. Niedok³adno¶ci rzêdu kilkunastu taktów zegara powoduj±, ¿e serwo zacznie drgaæ. Tak wiêc albo tylko jedno przerwanie, albo wogóle obs³ugê serwa zrobiæ w "g³ównym w±tku". A najlepjej na wydzielonym procesorze. Mia³em do¶æ powa¿ne problemy, ¿eby np. przerwanie RS nie zak³óca³o mi pracy serw.
Użytkownik Janusz U. napisał:
Co Kolega rozumie pod pojęciem milczy ale reaguje zawsze ? Każde serwo ma pewną stefę nieczułości i niewielkie zmiany czasu impulsu sterującego będą przez serwo "ignorowane". Te "uprzywilejowania" to najczęściej trzeszczący potencjometr w układzie sprzężenia zwrotnego serwa. Suwak ustawia się w takiej pozycji, że kontakt jest kiepski i silnik serwa próbuje cały czas korygować pozycję wydając przy tym różne odgłosy. W takiej sytuacji podskakuje średni pobór prądu, bo silnik bez przerwy kręci to w prawo to w lewo nie mogąc ustalić pozycji.
Impuls stanu wysokiego od 0.9ms do 2.1ms i przerwa stanu niskiego ok.
20ms. Czas przerwy nie jest krytyczny i ma wpływ tylko na czas reakcji serwa. Przy zmniejszeniu czasu przerwy serwo szybciej osiąga zadaną pozycję (ale to oczywiście w rozsądnych granicach).Pozdrawiam Grzegorz
Użytkownik Janusz U. napisał:
Nie bardzo widzę związek z podwójnym zasilaniem. A z czego "wyłazi" ten szum ? Bezpośrednio z nogi Atmela ?
Pozdrawiam Grzegorz
Marek Lewandowski napisał(a):
10/10 :)
tak, bezposrednio, zasilanie serwo i uC jest wspolne
pozdrawiam Janusz U.
chodzilo mi ze nie buczy, ale przyjmuje prawidlowa pozycje (tak bedzie jasniej:)
Janusz U.
Janusz U. napisał(a):
Buczy nie tylko gówniane trafo sieciowe ale też serwo sterowane jednoukładowcem z marnym softem ;)
Dzieki. Poczytam. Zdaje sie, ze przyczyna bedzie przerwanie od drugiego timera...
pozdrawiam Janusz
Dziekuje za potwierdzenie moich hipotez - nie bylem pewien czy dobrze zrozumialem dosc watla dokumentacje serwa.
pozdrawiam Janusz U.
Janusz U. pisze:
Chyba wiem, w czym może tkwić przyczyna... w jaki sposób włączałeś i wyłączałeś PWMa?? Pewnie programowo, na przerwaniu ;)... popatrz, PWM działa sprzętowo, bez przerwania... licznik się przepełnia, noga PWMa zostaje przełączona, zgłoszone zostaje przerwanie, ale obsłużone - po chwili... przez chwilę na wyjściu jest impuls... króciutki, ale jest... zakładam, że zanika po wyłączeniu PWMa... jeśli nie - to tym gorzej, bo mamy baaaardzo długi impuls (rzędu 20ms ;)). Aby to wyeliminować: a) przestawić PWMa tak, aby impulsy pojawiały się co ok. 20ms, ale długość impulsu zmieniać tylko w wąskim zakresie - ale wówczas mamy kiepską rozdzielczość, bo wykorzystujemy jakies 6% całego zakresu (od
0,9 do 2,1ms, a cały zakres jest do 20).... daje to jakieś 16 możliwych ustawień serwa ;)... no chyba, żeby przejść na licznik 16-bitowy ;>... b) zrobienie programowego PWMa, który jednocześnie wyłączy impuls wyjściowy i przejdzie w tryb odliczania 20ms :)... rozumiesz, sterowanie serwomechanizmem z poziomu programu, a nie za pomocą hardware'owego PWMa...Pozdrawiam Konop
dokladnie, na dodatek poprzez sterowanie kierunku linii, ktora nie miala zadnego rezystora typu pull-down...
w skrocie: init_____------__________________________-----____ on-------------|off-------------------------------------|on--- a wiec jak widac po impulsie, mniej nie jestem pewien stanu po off (brak rezystora...)
od razu po zobaczeniu 20ms pomyslalem o nim :) obecnie tez mam niewielki przedzial bo na 8bit jest od 38 do 91 (odstep miedzy impulsami < 6ms), a wiec jakies 22% zakresu, przy rozdzielczosci czasowej lepszej o 256 razy jak te 6% (chyba nawet < 1%) na 16bit :). Tylko czy ja przypadkiem nie uzyskam zamiast tych 20ms wartosci 11059200Hz / 65536 = 168.75Hz czyli ponownie
5.9ms? Dajac zas preskaler 8 to juz bedzie za duzo :/ Pozostaje zatem soft on/off, ktory wydluzy odstep? Brakuje posredniej wartosci preskalera lub innej fclk :)tez myslalem i o tym, np. na timerze i programowo, ale tutaj bedzie jakis jitter, bo on i off wypadna w innym miejscu w kodzie...
Dzieki wielkie za sugestie (zwlaszcza pkt. a) i utwierdzenie mnie, ktora droga dalej. Ponadto chyba zrezygnuje z programu demo, zawierajacego wszystko (UART, LCD, ADC, 1Wire, I2C, 4x 7-seg.LED), a skupie sie na samym PWM-ie. Pierwsze testy to wycieciu jednego przerwania (drugiego timera) daja nadzieje na dalsza poprawe.
pozdrawiam Janusz U.
Zasililem serwo z oddzielnego zrodla, znaaaacznie lepiej :) Popatrzylem juz teraz na oscyloskopie cyfrowym a nie na analogu, no i wyszlo, ze pobor pradu (serwo+LEDy) jest na tyle istotny, ze spada napiecie zasilania. W efekcie zmienia sie efektywny czas trwania impulsow.
pozdrawiam Janusz U.
Idac za ciosem zredukowalem pobor energii wylaczajac demonstracyjne 4 panele
7-LED, a przy okazji odciazajac przerwanie timera wykorzystywanego tez przez PWMa. Wynik dzialania serwa jest juz zadowalajacy. Niemniej sprobuje wyidealizowac przebiegi (odcinajac przerwania), bo jak zauwazylem na oscyloskopie zmierzona szerokosc impulsow wacha sie skokowo np. 0.900ms i na chwilke 0.920ms. Wydawalo mi sie, ze sprzetowe PWM nie powinno dawac takich efektow. Czy okres impulsow rzedu 5.9ms w odniesieniu do katalogowych 20ms moze cos pogarszac poza poprawa czasem reakcji serwa?pozdrawiam Janusz U.
zdecydowanie nie powinno. Cos jest nie tak.
Raczej nic.
J.
obiecuje poprawic swoj polski: powinno byc waha i czasu reakcji :) przerazaja mnie moje bledy :/
Janusz U.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required