Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 gru 2024, o 10:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 16 lip 2014, o 20:02 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

Mam problem serwami TowerPro MG995. Mianowicie przy sprawdzaniu kątu obrotu wału w zależności od wypełnienia sygnału natrafiłem na dziwne zjawisko: zmieniając wartości przy górnej granicy (przeskok o parę lub paręnaście stopni) serwo nie potrafi dojść do zadanego położenia bez oscylacji np. pokręci się chwilę wokół starego położenia i przejdzie do nowego albo zacznie się poruszać w stronę celu i wykona kilka oscylacji zanim się zatrzyma. Jest to o tyle dziwne, że przy ruchu od minimalnego do maksymalnego wychylenia takie zjawisko występuje bardzo rzadko, a przy małym wypełnieniu się nie zdarza. Proszę o pomoc w rozwiązaniu problemu :D
Korzystam z timera2 atmegi32 generując przerwanie co 0,02ms:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wartość pwm ustalam z konsoli.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lip 2014, o 22:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Może coś pomoże gdy "podłubiesz" przy OCR2 ? +/- 3 - miałem takie serwo co nie chciało mnie słuchać gdy podawałem mu wyliczone wartości.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 07:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

Ogólnie wygląda to tak, że serwo nie porusza się (nominalnie) od ogranicznika do ogranicznika. W środku serwa znajduje się potencjometr który informuje o położeniu wału i to on determinuje nam kąt. Często bywa tak, że w skrajnych położeniach serwo drga i to właśnie za sprawą odczytu położenia a nie kwestii programowej. Ja zawsze stosuje serwa które mają max kąt wychyłu trochę większy niż mi potrzeba. I problem naturalnie znika. Czasem jak potrzeba zwiększyć kąt wychyłu można rozebrać takie serwo i dolutować do potencjometru jeszcze rezystor szeregowo i ew. spiłować ogranicznik . Niestety spada nam wtedy efektywna rozdzielczość, ale coś za coś.

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 09:26 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

mokrowski napisał(a):
Już kilkukrotnie o to pytano na forum. Za każdym razem odpowiedź była podobna.
Dobierz wypełnienie dla swojego serva w sposób doświadczalny. W przypadku niektórych
tanich producentów, parametry mogą się różnić pomiędzy partiami produkcyjnymi.

kicajek napisał(a):
Witam
Może coś pomoże gdy "podłubiesz" przy OCR2 ? +/- 3 - miałem takie serwo co nie chciało mnie słuchać gdy podawałem mu wyliczone wartości.
Pozdr.

Wartość OCR2 wpisuję w konsoli i przesyłam przez rs232, więc dowolnie i dokładnie zmieniam wypełnienie, ale ciągle jest to samo. Spróbuję jeszcze zmienić okres sygnału, może to coś pomoże :)
pietszyk napisał(a):
Ogólnie wygląda to tak, że serwo nie porusza się (nominalnie) od ogranicznika do ogranicznika. W środku serwa znajduje się potencjometr który informuje o położeniu wału i to on determinuje nam kąt. Często bywa tak, że w skrajnych położeniach serwo drga i to właśnie za sprawą odczytu położenia a nie kwestii programowej. Ja zawsze stosuje serwa które mają max kąt wychyłu trochę większy niż mi potrzeba. I problem naturalnie znika. Czasem jak potrzeba zwiększyć kąt wychyłu można rozebrać takie serwo i dolutować do potencjometru jeszcze rezystor szeregowo i ew. spiłować ogranicznik . Niestety spada nam wtedy efektywna rozdzielczość, ale coś za coś.

To wszystko wiem, ale gdyby to był ten problem to przy małych kątach byłoby chyba to samo prawda?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 09:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

Co to znaczy "małe" kąty?

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 09:49 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

źle się wyraziłem - przy małym współczynniku wypełnienia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 09:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

Rozpisując to na kąty to opisany przeze mnie przypadek wygląda tak. Zakładamy że mamy serwo +/-90st. Od 0st do -85st działa ok oraz od 0st do +85st działa ok a w tych skrajnych 5 stopniach na obie strony (a czasem na jedną) drży. Czyli gdy jestem blisko wypełnienia długości 1ms i długości 2ms

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 09:59 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

Jak tylko wrócę do domu to sprawdzę zakres przedziału, gdzie nie działa jak trzeba. Wtedy się okaże czy to rzeczywiście wina serwa czy coś w programie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 10:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

Napisz mi jeszcze o swoich czasach abym Cie zrozumiał bo odkryłem w pierwszym poście , że przerwanie wykonujesz co 0,02ms czegoś chyba nie kumam do końca. Zakładam, że wiesz ale też napiszę. Serwo powinno dostawać taki przebieg: w każdych 20ms podajesz impuls zależny od oczekiwanego kąta czyli od 1ms do 2ms.

__|"""""|_____|"""|______|"""|______

-> ___ 20ms __ <--- ----->1-2ms<---

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 11:57 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Przerwanie co 0,02ms * 1000 = 20ms. Z czasami wiąże się inna ciekawe rzecz, ponieważ "najmniejszy kąt" jest dla wartości pwm = 65, a największy dla ok. 240.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 12:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

Ok wygląda to dobrze bynajmniej w teorii najlepiej sprawdzić to na oscyloskopie wtedy jest pewność, że sygnał jest ok.

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 12:16 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

no tak, ale nie mam oscyloskopu, a dostęp do niego mógłbym mieć pewnie dopiero we wrześniu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 14:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Pisząc
filip napisał(a):
Wartość OCR2 wpisuję w konsoli i przesyłam przez rs232
chyba się "przejęzyczyłeś" ( :?: ) - OCR2 odpowiada za długość przebiegu ( okres ) nie wypełnienie.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 16:27 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

przejęzyczenie :) zmieniam wartość pwm, a nie OCR2.
Niestabilne dochodzenie do pozycji zaczyna się od wartości pwm = 180 do 240 -> prawie 30% całego zakresu ruchu, więc to raczej nie wina serwa



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 18:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

filip napisał(a):
zmieniam wartość pwm, a nie OCR2

...więc ponawiam: zmień troszkę OCR2
A jak z zasilaniem - wydala? ( troszkę brzydko :) ).

Pozdr.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 18:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

P.S ... a co ten temat ma wspólnego z DIY ??

do lochu ...

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2014, o 21:12 
Offline
Użytkownik

Dołączył(a): 26 lip 2013
Posty: 29
Pomógł: 3

dołożyłem kondensator przed serwo, zmniejszyłem OCR o 1 i błędy takie jak wcześniej są sporadyczne. dziękuję za pomoc :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO