|
Sterownie serwami |
| Autor |
Wiadomość |
_cyna_PL


Pomógł: 1 raz Posty: 47 Otrzymał 1 piw(a) Skąd: Z nikąd
|
Wysłany: 23 Sie 08 04:28 Sterownie serwami
|
|
|
Witam
Mam mały problem z sterowaniem serwem. Czytałem w help bascoma o instrukcji "CONFIG SERVOS" . Nie wiem czemu serwo po podaniu :
| Kod: |
Servo(1) = 100 'włącz na 1000 mikrosekund
Servo(2) = 200 'włącz na 2000 mikrosekund
|
ustawia się w ta sama pozycje [ max w lewo]
Oto program :
| Kod: | $regfile = "m8def.dat"
$crystal = 8000000
Config Servos = 1 , Servo1 = Portc.0 , Reload = 10
Config Portc.0 = Output
Enable Interrupts
Do
Servo(1) = 100
Loop |
|
|
|
|
|
 |
marek91


Pomógł: 7 razy Posty: 94 Otrzymał 12 piw(a) Skąd: Mikołów
|
Wysłany: 23 Sie 08 05:05
|
|
|
| Propozycja: skopiuj cały program z pliku pomocy i pozamieniaj tylko niektóre dane (porty) |
|
_________________ Gość klikając przycisk "piwo" stawiasz browara biednemu dziecku z afryki |
|
|
|
 |
_cyna_PL


Pomógł: 1 raz Posty: 47 Otrzymał 1 piw(a) Skąd: Z nikąd
|
Wysłany: 23 Sie 08 06:42
|
|
|
| Jak skopiuje z help bascoma to wcale się nie obraca;/ |
|
|
|
|
 |
Kshaq

Pomógł: 1 raz Posty: 87 Otrzymał 29 piw(a) Skąd: Sosnowiec
II miejsce w konkursie na najlepszy artykuł.
|
Wysłany: 23 Sie 08 08:30
|
|
|
Hm... a procek na pewno jest taktowany 8MHz? To też może być przyczyna, program myśli, że coś trwa 1 sekunde, a w rzeczywistości jest dwa razy wolniej lub dwa razy szybciej
//daniel93
Usunąłem żeby nie wprowadzać w błąd.
|
|
_________________ Pozdrawiam,
Rafał. |
|
|
|
 |
_cyna_PL


Pomógł: 1 raz Posty: 47 Otrzymał 1 piw(a) Skąd: Z nikąd
|
Wysłany: 24 Sie 08 10:24
|
|
|
| Cytat: | | Hm... a procek na pewno jest taktowany 8MHz? |
tak jest taktowany 8 mhz |
|
|
|
|
 |
daniel93


Pomógł: 11 razy Posty: 390 Otrzymał 19 piw(a) Skąd: Wujskie
|
Wysłany: 24 Sie 08 11:06
|
|
|
Przetestuj to:
| Kod: | $regfile = "m8def.dat"
$crystal = 8000000
Config Servos = 1 , Servo1 = Portc.0 , Reload = 10
Config Portc.0 = Output
Enable Interrupts
Do
Servo(1) = 100
wait 5
Servo(1) = 200
wait 5
Loop |
Pownien zmieniać pozycje co 5s. |
|
|
|
|
 |
_cyna_PL


Pomógł: 1 raz Posty: 47 Otrzymał 1 piw(a) Skąd: Z nikąd
|
Wysłany: 24 Sie 08 04:23
|
|
|
| Cytat: | Przetestuj to: | Kod: | $regfile = "m8def.dat"
$crystal = 8000000
Config Servos = 1 , Servo1 = Portc.0 , Reload = 10
Config Portc.0 = Output
Enable Interrupts
Do
Servo(1) = 100
wait 5
Servo(1) = 200
wait 5
Loop |
Pownien zmieniać pozycje co 5s. |
Żadnej reakcji sprawdzałem na innych serwach, i innym Procku i tez to samo
Po chwili namyslu pdalem taki program :
| Kod: | $regfile = "m8def.dat"
$crystal = 8000000
Config Servos = 1 , Servo1 = Portc.0 , Reload = 10
Config Portc.0 = Output
Enable Interrupts
Do
Servo(1) = 100
Loop |
Po odpaleniu serwo ustawie się w pozycji prawie na środku.
ale po dodaniu kolejnej pozycji na jakiej ma się ustawić bez czasu oczekiwania serwo nie reaguje na polecenia. |
|
| Ostatnio zmieniony przez _cyna_PL 24 Sie 08 04:59, w całości zmieniany 1 raz |
|
|
|
 |
urbi

Posty: 15 Otrzymał 1 piw(a) Skąd: Września
|
Wysłany: 24 Sie 08 05:46
|
|
|
| Na początek sprawdż to co radził Kshaq. Napisz prosty programik, który zapala/gasi diodę LED co określony czas, np. 1 sekunde (polecenie Wait 1) i zobacz czy rzeczywiście trwa to sekundę. Możesz mieć włączony podzielnik i wszystko działa nie tak. |
|
|
|
|
 |
_cyna_PL


Pomógł: 1 raz Posty: 47 Otrzymał 1 piw(a) Skąd: Z nikąd
|
Wysłany: 24 Sie 08 06:24
|
|
|
| Cytat: | | Napisz prosty programik, który zapala/gasi diodę LED co określony czas, np. 1 sekunde (polecenie Wait 1) i zobacz czy rzeczywiście trwa to sekundę. |
sprawdzałem i jest tak jak ma być |
|
|
|
|
 |
urbi

Posty: 15 Otrzymał 1 piw(a) Skąd: Września
|
Wysłany: 25 Sie 08 01:27
|
|
|
Dobrze, że oscylator jest ustawiony prawidłowo, ale jednak nie w tym rzecz.
Znalazłem właśnie fragment w książce Marcina Wiązani: "[...] Aby serwa były prawidłowo obsługiwane, należy stosować dla mikrokontrolera rezonatory kwarcowe o częstotliwości powyżej 8 MHz..." Autor w swoim przykładzie stosuje kwarc 10 MHz, może spróbuj zrobić tak samo. |
|
|
|
|
 |
_cyna_PL


Pomógł: 1 raz Posty: 47 Otrzymał 1 piw(a) Skąd: Z nikąd
|
Wysłany: 25 Sie 08 01:34
|
|
|
| nie mam 10 MHz ;p muszę skoczyć do sklepu |
|
|
|
|
 |
daniel93


Pomógł: 11 razy Posty: 390 Otrzymał 19 piw(a) Skąd: Wujskie
|
Wysłany: 25 Sie 08 01:58
|
|
|
| Nie wiem czy to polecenie korzysta z timera - jeśli tak to musisz dodać enable timerX |
|
|
|
|
 |
urbi

Posty: 15 Otrzymał 1 piw(a) Skąd: Września
|
Wysłany: 25 Sie 08 07:51
|
|
|
| Polecenie korzysta z licznika Timer0, ale wygląda na to, że przerwanie jest odblokowywane automatycznie. Należy jedynie odblokować globalny system przerwań (Enable Interrupts). |
|
|
|
|
 |
Maxo


Pomógł: 2 razy Posty: 185 Otrzymał 6 piw(a) Skąd: Krynica-Zdrój
|
Wysłany: 03 Wrz 08 03:48
|
|
|
| A na pewno dobrze podłączone serwo ?;] tzn Czy kabelki się nie pomyliły i sygał jest podawany na odpowiedni... |
|
|
|
|
 |
misiek1994


Pomógł: 2 razy Posty: 190 Otrzymał 13 piw(a) Skąd: z Sędziszowa
|
Wysłany: 03 Wrz 08 05:57
|
|
|
| Wygląda to tak, jakbyś miał jakieś zwarcie. Serwo, jeśli podasz tylko sygnał sterujący obraqca się na środek. Może masz zwarce między zasilaniem, a sterowaniem??? |
|
|
|
|
 |
_cyna_PL


Pomógł: 1 raz Posty: 47 Otrzymał 1 piw(a) Skąd: Z nikąd
|
Wysłany: 04 Wrz 08 06:23
|
|
|
| Cytat: | | A na pewno dobrze podłączone serwo ?;] tzn Czy kabelki się nie pomyliły i sygał jest podawany na odpowiedni... |
Tak serwo jest dobre podłączone.
| Cytat: | | Może masz zwarce między zasilaniem, a sterowaniem??? |
nie na zwarcia , wszystko dokładnie sprawdziłem . |
|
|
|
|
 |
daniel93


Pomógł: 11 razy Posty: 390 Otrzymał 19 piw(a) Skąd: Wujskie
|
Wysłany: 04 Wrz 08 04:06
|
|
|
| _cyna_PL napisał/a: | | Kod: | Servo(1) = 100 'włącz na 1000 mikrosekund
Servo(2) = 200 'włącz na 2000 mikrosekund | |
Znalazłem błąd, masz o zero za dużo, zamaist:
powinno być:
|
|
|
|
|
 |
JStan

Posty: 26 Otrzymał 7 piw(a) Skąd: Sanok
|
Wysłany: 03 Paź 08 07:44
|
|
|
Z tym kwarcem to nie jest tak, jeśli zastosuje się 10MHz to jest równy przelicznik poprostu na ms potem. Jeśli jest inny to nic się nie dzieje, natomiast przy większej liczbie serw warto zastosować kwarc 16MHz. Ja na płytce testowej mam 8MHz i na nim sprawdzałem serwa i działają.
Pozdrawiam!! |
|
_________________ Moje konstrukcje:
Manipulator - http://www.dioda.com.pl/f...lator-vt920.htm |
|
|
|
 |
|
|