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

[ATMega8] [C] - Spowolnienie pracy serwomechanizmu

piotrek038 03 Sie 2012 11:37 1768 6
  • #1 03 Sie 2012 11:37
    piotrek038
    Poziom 11  

    Witam,

    Siosta poprosiła mnie abym zrobił dla niej taki mały bajer do którego potrzebe jest serwo, mniejsza z tym co to ma być. Udało mi się wyszukać na forum działający kod do obsługi serwa ale niestety serwo obraca się za szybko... Próbując coś na to poradzić zacząłem kombinować i szukać. Doszedłem do tego że aby spowolnienie wykonać muszę pomiędzy punktami docelowymi zadać kilka pośrednich a pomiędzy dać opóźnienie. Próbowałem z różnymi wartościami i najlepsze okazało się:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Problemy są dwa... a nawet trzy... po pierwsze to jest projekt trochę za duży jak na mnie ;p bo jeśli chodzi o C to dopiero zaczynam i staram się przebrnąć przez przerwania, idzie mozolnie. Po drugie napisanie tego w ten sposób zeżre całe zasoby uC na spowolnienie tych serw a po trecie jestem ograniczony czasowo i nie zdążę się nauczyć w trybie normalnym, z książką tego na czas...

    To jest cały kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    jak widać mój sposób sopowolnienia serwa jest strasznie obszerny a drgania/skoki i tak występują, nie wiem jak się ich pozbyć, pewnie jeszcze bardziej to "rozdrobnić".

    Tak więc jeśli byłby ktoś na tyle uprzejmy i pomógł mi się z tym uporać.

    Pozdrawiam

    0 6
  • Pomocny post
    #2 03 Sie 2012 12:01
    excray
    Poziom 39  

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #3 03 Sie 2012 14:44
    piotrek038
    Poziom 11  

    no tak, w sumie nie pomyślałem ;/

    pętla ta działa ale ruch serwa jest skokowy, chyba że znacznie wydłużę albo skrócę pierwsze opóźnienie. Da radę jakoś temu zapobiec?


    w ofercie avt jest kit spowalniacz, gdzie wspomniane jest że do wykonania spowolnienia użyto timera. niestety nie wiem jak te informacje wykorzystać...

    0
  • Pomocny post
    #4 03 Sie 2012 14:53
    excray
    Poziom 39  

    Nie wyeliminujesz drgań. Serwo ma swoją histerezę zadziałania i zawsze będą skoki przy próbie spowolnienia.

    0
  • #5 03 Sie 2012 16:18
    piotrek038
    Poziom 11  

    okey, w takim razie wielkie dzięki za pomoc. ;)
    Pozdrawiam

    0
  • #6 03 Sie 2012 16:34
    piotrva
    Moderator na urlopie...

    Względnie serwo możesz przerobić. Wyjąc oryginalny system sterowania, potencjometr podłączyć między Vcc a GND, wyjście regulowane do wejścia ADC procesora, silnik przez jakiś mostek H do wyjść procesora i za pomocą PWM sterujesz prędkość obrotową silnika, a dzięki potencjometrowi wiesz kiedy zatrzymać silnik i w jakim położeniu się znajduje.
    Na forum http://forbot.pl masz cały poradnik jak to zrobić.

    0
  • #7 17 Sie 2012 20:24
    piotrek038
    Poziom 11  

    okey, problem rozwiązany. Szarpanie da sie przezyc ;)

    0