ATmega8 a modelářské servo
Moderátor: Moderátoři
-
petrsvetr
petrsvetr píše:Popis programu:
ve smyčce
do
čekám na stisknutí tlačítka a pokud je stisknuto tlačítko, volám subrutinu toč se, která mi točí servem po dobu stisknutí tlačítka
loop
toč se:
toč servem doleva
return
1. Chybí ti definiční soubor pro tu ATmegu8
2. Můžeš mít špatně nastavené fuse bity
3. nikde ve smyčce nevidím, že bys čekal na stisknutí tlačítka
-
petrsvetr
For I = 0 To 100
Servo(1) = I
Waitms 1000
Next
For I = 100 To 0 Step -1
Servo(1) = I
Waitms 1000
Next
Loop
Skutečně na výstupu není žádný signál ?
Waitms - ta smyčka bude trvat 1 minutu a 40 sekund není to příliš ?
Příkaz Servo() používá Timer0 nepoužíváš ho někde kolem těch tlačítek ?
Nějak se mi nezdá to točení servem, servo převádí signál na polohu, proto je tam ten potenciometr, který jsi odpojil.
-
K.Pavel
Takze zaklad je odstranit dorazy. Vykuchat potenciometr, nahradit ho dvojici presnych odporu (stejnych). A pak to snad pujde. Vysledek bude takovy, ze hodnota impulsu 0,5-1,5ms bude servem tosit naplno na jednu stranu a 1,5-2,5ms bude tocit servem naplno na druhou stranu.
Rychlost se da regulovat pouze pokud budes velice jemne menit puls v okoli 1,5ms, treba v rozmezi 1450us - 1550us, pak se da rychlost trosicku regulovat.
Ovsem varovani, nektera serva takovou upravu snasi velice spatne. Vetsinou je dobre servu zvetsit mrtve pasmo (standardne je jen ~ 20us).