kampo Napisano Styczeń 28, 2015 Udostępnij Napisano Styczeń 28, 2015 Witam. Posiadam serwa: 1201MG, 1501MG, 6001HB i 1711MG (wszystkie Power HD). Problem wygląda tak, że serwo 6001HB działa mi poprawnie z poniższym kodem, ale 1201 i 1501 w ogóle się nie ruszają (w dłoni czuję, że coś tam drga, ale mogę tymi serwami kręcić, więc nawet nie są zablokowane). Natomiast 1711 zachowuje się conajmniej dziwnie - nieważne, jakie wartości będzie mieć OCR1A, ono cały czas kręci się poza zakresem, tj. najpierw idzie do samego końca, z chęcią szło by dalej, potem wraca, zatrzymuje się po przebyciu około 45 stopni. I tak w kółko. Kombinuję z tym PWM już od kilku dni i nie mam pojęcia, co może być nie tak, tym bardziej, że jedno serwo działa, a są sterowane niby na tej samej zasadzie. #define F_CPU 8000000UL int main(void) { TCCR1A |= (1<<WGM11) | (1<<COM1A1) | (1<<COM1A0); TCCR1B |= (1<<WGM13) | (1<<WGM12) | (1<<CS11); ICR1 = 19999; DDRB |= (1<<5); while(1) { OCR1A = ICR1 - 1800; _delay_ms(1000); OCR1A = ICR1 - 1000; _delay_ms(1000); } } Kontroler to AtMega128, działa na wew. oscylatorze na 8MHz. Pozdrawiam. Cytuj Link do komentarza Share on other sites More sharing options...
spartakus Styczeń 28, 2015 Udostępnij Styczeń 28, 2015 Czym zasilasz serwa? Cytuj Link do komentarza Share on other sites More sharing options...
torcek Styczeń 29, 2015 Udostępnij Styczeń 29, 2015 spojrzałem do noty ATmegi128 i porównałem Twoje ustawienia z tabelkami. Zgodnie z tym co widzę: -taktowanie procesora 8MHz,-masz prescaler 8,-używasz trybu FAST PWM z wartością TOP równą ICR1,-wartość TOP to 1999. Czyli z równania Fclk / ( N * (1+TOP) ) gdzie Fclk -taktowanie procesora,N - prescaler,TOP = ICR1 wychodzi częstotliwość sprzętowego generowania sygnału pwm równa 500 Hz. W przypadku serwomechanizmów modelarskich stosuje się częstotliwości około 50 Hz. Mogę się oczywiście mylić i to nie tu leży błąd. Cytuj Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 29, 2015 Udostępnij Styczeń 29, 2015 Timer wygląda dobrze, przecież okres wynosi 20000 więc częstotliwość to jednak 50Hz. Ja też bym szukał w zasilaniu, w przypadkowych resetach procesora podczas startu lub ruchu mocnego serwa itp. Trzeba zobaczyć schemat połączeń albo chociaż opis - w szczególności systemu zasilania. Z czego płytka procesora, z czego serwo itp. Jeżeli okaże się, że np. wszystko jedzie z kabelka USB, to mamy problem rozwiązany. Warto jeszcze sprawdzić fusebity odpowiadające za 8MHz albo dla pewności pomrugać diodą z programowymi opóźnieniami = 1000ms, to jest niezły test rzeczywistego taktowania CPU. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
torcek Styczeń 29, 2015 Udostępnij Styczeń 29, 2015 Faktycznie -jakimś cudem widziałem 1999 zamiast 19999 😖 Cytuj Link do komentarza Share on other sites More sharing options...
kampo Styczeń 29, 2015 Autor tematu Udostępnij Styczeń 29, 2015 Timer wygląda dobrze, przecież okres wynosi 20000 więc częstotliwość to jednak 50Hz. Ja też bym szukał w zasilaniu, w przypadkowych resetach procesora podczas startu lub ruchu mocnego serwa itp. Trzeba zobaczyć schemat połączeń albo chociaż opis - w szczególności systemu zasilania. Z czego płytka procesora, z czego serwo itp. Jeżeli okaże się, że np. wszystko jedzie z kabelka USB, to mamy problem rozwiązany. Warto jeszcze sprawdzić fusebity odpowiadające za 8MHz albo dla pewności pomrugać diodą z programowymi opóźnieniami = 1000ms, to jest niezły test rzeczywistego taktowania CPU. Fusebity są ok (z 5x sprawdzałem 😃 ). Jeśli chodzi o układ, to wszystko jest na płytce stykowej, zasilane z LiPo za pośrednictwem stabilizatora liniowego 5V, 1A. Ten się trochę grzał, ale przyjąłem, że to dlatego, że przepływa przez niego prąd już w okolicach 1A, a nie spalił się, więc serwo nie wyciska > 1A. Może faktycznie to jest wąskim gardłem, dlatego słabsze serwo działa, a mocne nie, ale tu znowu wracamy do serwa 1711 - słabe, a nie działa (przynajmniej poprawnie) 😉 Mam też równolegle podłączoną diodę do sygnału PWM i ona zachowuje się normalnie, tj. świeci jaśniej i mniej jaśniej. Także reset procka bym raczej wykluczył. Pozdrawiam. Cytuj Link do komentarza Share on other sites More sharing options...
spartakus Styczeń 29, 2015 Udostępnij Styczeń 29, 2015 Mamy winowajców: stabilizator 1A i płytka stykowa Przy momencie około 12kg serwo będzie pobierało dużo większy prąd niż 1A. Niestety nie znalazłem nigdzie deklaracji producenta. Najlepiej będzie jak wymienisz stabilizator. Jeśli masz dostęp do zasilacza stabilizowanego na minimum 5A to podepnij swoje serwo i wtedy pomierz prądy jakie tam płyną. Ciekawym doświadczeniem będzie też podpięcie sondy prądowej oscyloskopu i zobaczenie co się dzieje z prądem przy starcie Twojego serwa. Nie wiem jak podajesz zasilanie, ale płytka stykowa nie nadaje się do pracy przy wyższych prądach. 1 Cytuj Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 29, 2015 Udostępnij Styczeń 29, 2015 Stabilizator grzeje się od każdego prądu, nie musi to być 1A. Oczywiście im więcej prądu tym bardziej. Przekraczając 1A nie spalasz go, tylko scalak zmniejsza swoje napięcie wyjściowe. Jeżeli serwo podczas startu lub pracy bierze tyle lub więcej, 5V spada i procesor się resetuje (np. w ciągu 1ms, bo tyle trwa szpilka prądu) po czym podejmuje pracę i PPM jest niby wciąż generowany. Umieść w programie opóźnienie zaraz po starcie np. 1 sekundowe a dopiero po tym czasie zaczynaj generować PPM. Wtedy każdy reset będzie widoczny jak przerwa w impulsach i łatwo to dostrzeżesz. Masz włączony BOD? Na jakim poziomie napięcia? Płytka stykowa jest dobra co najwyżej do zapalania diodek, ale nie zasilania silników. Podłącz masę serwa wprost do minusa akumulatora bez pośrednictwa styków. Czy możesz dać osobne stabilizatory na procesor i na serwa? Wspólne zasilanie silników/serw i logiki cyfrowej to proszenie się o kłopoty. To w połączeniu z płytką stykową daje już mieszankę wybuchową.. EDIT: Pisaliśmy razem 🙂 1 Cytuj Link do komentarza Share on other sites More sharing options...
AE Styczeń 29, 2015 Udostępnij Styczeń 29, 2015 Wtrącę coś jeszcze nt. grzania się stabilizatora napięcia. Będzie się on grzał nawet przy małym prądzie, ale i tak wszystko zależy od mocy jaka na nim jest tracona. P = U * I Zakładając, że zasilasz z akumulatora 12VDC i za stabilizatorem chcesz uzyskać np. 5VDC, to mamy 7V spadku napięcia i jeszcze przepuścisz przez niego 1A to moc wynosi P = 7V * 1A = 7W. Standardowa obudowa TO-220 rozprasza chyba ok. 1,5W. Za długo wtedy nie pożyje taki stabilizator 😋 1 Cytuj Link do komentarza Share on other sites More sharing options...
kampo Styczeń 29, 2015 Autor tematu Udostępnij Styczeń 29, 2015 Czyli byłem w grubym błędzie, myśląc, że złożę wstępnie układ na płytce stykowej, a do tego, że serwo nie pobiera dużo prądu 😥 Na stabilizatorze mam założony radiator, a grzał się tak, że jak zasilanie było włączone kilka minut, to dmuchałem/wyłączałem na chwilę. Zasilane było z akumulatora 11,1V. Co do 1A na stabilizatorze, to byłem pewny, że jeśli ten prąd przekroczę, to stabilizator się uszkodzi nieodwracalnie, a nie że tylko spadnie napięcie wyjściowe. Z założenia zasilanie dla serw i dla logiki będzie osobno (z jednego akumulatora). BOD mam wyłączony. Przyznam, że dopiero teraz się dowiedziałem, że coś takiego istnieje. Generalnie podłączyłem serwo bezpośrednio do akumulatora, PWM i działa 😅 Sam wpadłbym pewnie na to za miesiąc, jeśli w ogóle. Wielkie dzięki panowie 😉 Pozdrawiam. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!