Skocz do zawartości

Przykładowy program do obsługi regulatora


eiliat

Rekomendowane odpowiedzi

Witam,

Mam regulator HobbyKing oraz płytkę z przygotowaną Atmegą8 podpiętą pod kwarc 16 MHz. Fusebity mam już ustawione, wszystko działa prawidłowo.

 

Do dyspozycji mam przykładowy silnik 3 fazowy bezszczotkowy i regulator hobbyking 12A. W jaki sposób (w jakiej kolejności) podłączyć przewody? Czy ma ktoś jakiś przykładowy kod w C, który konfiguruje ten regulator? Chodzi, mi żeby rozpędzić silnik np. na 50%.

 

Bardzo proszę o pomoc bo nie chcę niczego uszkodzić. Jeśli ktoś nie chce udostępniać kodu, to proszę o HEX-a przystosowanego do A8 i 16 MHz.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie jestem pewien, ale wydaje mi się że regulator sterujesz sygnałem PWM. W Atmedze masz jusz taki układ w standardzie (nie wiem czy w 8ce bo jestem z tym do tyłu). Jeśli nie masz to możesz sam wygenerować taki sygnał na którejś końcówce portu. Czyli przyjmując jakąś częstotliwość (pewnie znajdziesz w sieci jak jest sterowany regulator) regulujesz czas trwania jedynki i zera nie zmieniając częstotliwości sygnału. O ile pamiętam częstotliwość przyjmujesz 50 Hz a czas trwania impulsu - 1- do prawie 1.5 ms - obroty w jedną stronę, 1.5 ms - zatrzymanie silnika, 1.5 - 2 ms obroty w drugą stronę. Mam nadzieję, że nic nie pomieszałem, pewnie ktoś w razie czego sprostuje. Taki programik dużo szybciej zrobisz i dużo szybciej będzie działał w assemblerze.

 

Pozdrawiam !

Odnośnik do komentarza
Udostępnij na innych stronach

Łączysz silnik z regulatorem trzema przewodami , kolejność jest dowolna. Gdyby silnik kręcił się w odwrotną stronę niż potrzebujesz - zamieniasz miejscami dwa dowolne przewody.

Co do sterowania:

Regulator jest sterowany dokładnie tak jak standardowe serwo , przez impulsy o zmiennym współczynniku wypełnienia w zakresie od 1 do 2 milisekund.

Jest jednak jedno "ale" związane z zabezpieczeniem przed przypadkowym uruchomieniem silnika zaraz po włączeniu zasilania.

Mianowicie aby regulator się aktywował, w aparaturze modelarskiej drążek gazu musi zostać cofnięty na zero, czyli na wejściu sterującym regulatora , przez pewien czas muszą być impulsy o wypełnieniu 1ms, potem można już sterować obrotami silnika.

Inną kwestią jest sprawa kalibracji regulatora - tu odsyłam do jego instrukcji.

Generalnie poszukaj przykładów sterowania serwem modelarskim jest tego multum w sieci.

Do ćwiczeń, osobiście proponuję podpiąć pod atmegę serwo modelarskie, a dopiero po dopracowaniu programu - finalnie regulator.

 

Wysyłane z mojego Desire Z za pomocą Tapatalk 2

Odnośnik do komentarza
Udostępnij na innych stronach

Pewnie na długości wypełnienia impulsu, kurcze żałuję że jestem aż tak do tyłu z atmelkami bo z chęcią bym się znów pobawił. Niestety z wiekiem przybyło obowiązków i pewne rzeczy poszły w kąt :( Jeśli masz oscyloskop to kup najtańszy tester serwomechanizmów - regulator jest sterowany takimi samymi sygnałami, więc analogicznie wychylenie steru = zmiana prędkości. Myślę, że przy długości 1 ms i długości 1.3 ms jedynki prędkość będzie rosła analogicznie.

 

Tak na szybko znalazłem, tu masz wszystko co potrzebujesz, tylko kwestia wyłapania esencji ;)

 

http://www.elektroda...opic871257.html

 

i jeszcze to:

 

http://www.elektroda.pl/rtvforum/topic2268725.html

 

Pozdrawiam !

Odnośnik do komentarza
Udostępnij na innych stronach

Sterowanie prędkością odbywa się poprzez zmianę szerokości impulsu, czyli jego wypełnienia.

Na wejście regulatora podajesz sygnał o stałej częstotliwości a tylko zmieniasz współczynnik wypełnienia, czyli inaczej mówiąc regulator dostaje na wejście cykl impulsów o zmiennej długości, i to od długości impulsu zależy prędkość silnika.

Np. dla impulsu o dł. 1ms silnik nie obraca się(analogicznie serwo dajmy na to lewym skrajnym położeniu), dla dł. impulsu 1,5ms silnik ma obroty 50% (serwo w środkowym położeniu), dla dł. impulsu 2ms - silnik ma obroty 100% (serwo w skrajnym, prawym położeniu).

Czyli zmieniając dł. impulsu sterującego zmieniasz obroty.

Aby silnik kręcił się z prędkością 50% na wejście regulatora musisz ciągle podawać impulsy o stałej dł. 1,5ms ,

dla prędkości 100% impulsy muszą mieć dł. 2ms - jak tych impulsów zabraknie - regulator nie będzie sterował silnika.

Nie wiem jak mogę to prościej wytłumaczyć.

Szukaj i czytaj o sterowaniu serwomechanizmów, a wszystko stanie się jasne!

Np tu: http://www.forbot.pl...dium-vt3902.htm

Odnośnik do komentarza
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.