Skocz do zawartości

Sterowanie serwem BEZ biblioteki


MarJanPol

Pomocna odpowiedź

- ale ja napisałem - chciałbym uzyskać jedynkę przez 15us przy okresie 20ms

Na to masz już rozwiązanie z delay. Pytanie brzmi, co więcej chcesz uzyskać. Do testera serwomechanizmów powyższe rozwiązanie wystarczy. Do robota machającego kilkoma serwami równolegle z silnikami, czujnikami i jeszcze co tam wymyślisz już nie. I wtedy trzeba sięgnąć do innych rozwiązań. Dlatego pytam, co chcesz zrobić.

Sęk w tym, że w tej chwili nie mam żadnego konkretnego celu projektowego do osiągnięcia za pomocą timerów. Chciałbym po prostu wstępnie zrozumieć ten wycinek wiedzy związanej z mikroprocesorami i zastosować tę wiedzę do czegokolwiek jako ćwiczenie - pomyślałem, że uda się właśnie potrenować na serwo

Z oryginalnym PWM-em Arduino jest ten problem, że wypełnienie określa się liczbą 8 bitową. Gdybyś nawet uzyskał okres równy 20ms, to rozdzielczość wyniosłaby 20ms/256 czyli skok co około 78us. A to, jeśli dobrze liczę, dałoby Ci dokładność ustawienia serwa około 14 stopni. Myślę, że to Cię nie satysfakcjonuje.

Bardzo słuszna uwaga, nie zdawałem sobie z tego sprawy

Na początek poczytaj w nocie katalogowej o tym jakie timery masz do dyspozycji. Poczytaj też o przerwaniach wewnętrznych. Jak to będziesz wiedział, to spróbujemy zrobić kolejny krok.

W UNO jeśli dobrze zrozumiałem są 3 timery, które kontrolują 6 pinów. Jednak blokuje mnie brak zrozumienia zasad i języka do komunikacji z tymi timerami. Jakby ktoś znał jakieś dobre źródło do nauki tego typu podstaw (dla naprawdę mocno początkujących) to z góry dziękuję za wskazanie.

Link do komentarza
Share on other sites

Arduino UNO nie ma timerów. Timery ma posadzona na jego pokładzie Atmega 328. Ma ona dwa ośmio i jeden 16 bitowy licznik. Biblioteka servo.h zabiera właśnie ten 16 bitowy licznik na potrzeby sterowania serwomechanizmami. Dlatego UNO po użyciu tej biblioteki traci dwa PWM-y.

Zauważ, że serwomechanizmy mozna podpinać do dowolnych pinów Arduino. To dlatego, że timery nie są powiązane z pinami. To dopiero program je z nimi wiąże.

Poczytaj notę katalogową Atmegi, a nie informacje o Arduino, bo zabierając się za bezpośrednią obsługę timerów wykraczasz poza środowisko Arduino.

Link do komentarza
Share on other sites

Arduino UNO nie ma timerów. Timery ma posadzona na jego pokładzie Atmega 328. Ma ona dwa ośmio i jeden 16 bitowy licznik. Biblioteka servo.h zabiera właśnie ten 16 bitowy licznik na potrzeby sterowania serwomechanizmami. Dlatego UNO po użyciu tej biblioteki traci dwa PWM-y.

OK. Czyli dzięki tym 16-bitom "rozdzielczość" układu jest większa?

Zauważ, że serwomechanizmy mozna podpinać do dowolnych pinów Arduino. To dlatego, że timery nie są powiązane z pinami. To dopiero program je z nimi wiąże.

Poczytaj notę katalogową Atmegi, a nie informacje o Arduino, bo zabierając się za bezpośrednią obsługę timerów wykraczasz poza środowisko Arduino.

Dobra poczytam, tylko już czuję, że bez lepszego przygotowania niewiele zrozumiem, bo takie specyfikacje nie są pisane dla początkujących 🙂

Czy uważacie, że ta ksiażka byłaby dobrym wprowadzeniem do tematu - ? LINK - czy może warto poszukać czegoś innego?

Link do komentarza
Share on other sites

Licznik 16-to bitowy liczy do 65535, 8-bitowy tylko do 255. Jeśli chcesz mieć odpowiednią dokładność sygnału do serwa, to musisz użyć 16-bitowego. Bez problemu uzyskasz wtedy dokładność sygnału poniżej 1 stopnia. Wtedy dokładność ruchu będzie zależeć od serwomechanizmu.

Książki o którą pytasz nie widziałem na oczy, więc się nie wypowiem. Natomiast poza dokumentacją Atmegi, w której znajdziesz nawet przykłady fragmentów programów, warto byś zapoznał się z tym:

http://diycenter.acid19.linuxpl.com/readarticle.php?article_id=3

Moim zdaniem jest tu przystępnie opisana metoda obsługi timerów od ich uruchomienia, przez skalowanie preskalerami, aż do zaprzęgnięcia przerwania sprzętowego, by zwiększyć dokładność i odciążyć procesor z mozolnego sprawdzania timera.

  • Lubię! 1
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

MarJanPol, najlepsza dokumentacja do datasheet mikrokontrolera. Inna sprawa, że może na początek wydawać się niezbyt przyjazną lekturą. Natomiast co do książek i tutoriali firmy Atnel, to proponowałbym daleko idącą ostrożność i rozwagę w wyborze. Nie tylko są dość drogie, ale i często marnej jakości - tzn. pięknie wydane i handlowo bez zarzutu, ale pod względem merytorycznym dużo gorzej. Tak to jest jak wiedzę sprzedaje ktoś, kto sam nie rozumie o czym pisze - chociaż to tylko moja opinia.

[ Dodano: 24-02-2018, 16:40 ]

Może zamiast przepłacać za słabą książkę lepiej zainwestować w analizator logiczny? To bardzo przydatne narzędzie, wręcz niezbędne do zrozumienia działania układów licznikowych (i PWM). Przykładowe, chociaż drogie urządzenie: https://kamami.pl/analizatory-logiczne-saleae/234117-saleae-logic-4-black-analizator-logiczny-usb.html?search_query=analizator+logiczny&results=44

Na znanym dalekowschodnim portalu znajdziesz dużo tańsze "klony" - więc niewiele dokładając możesz kupić tańszą książkę oraz przydatne narzędzie.

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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.