Stránka 1 z 4

ATmega8 a modeláøské servo

Napsal: 15 pro 2008, 20:00
od petrsvetr
Prosím Vás moc o pomoc..

Mám modeláøské servo zapojené žlutým drátkem na nožièku 17 = B.3
u ATmega8. Èerný drát serva na - èervený na +

Servo je normálnì funkèní.
Nemám zapojený krystal, nic....

Vložím do èipu tento program:
A ono nic, prosím Vás o pomoc, èím to je, co mám napravit?



Config Servos = 1 , Servo1 = Portb.3 , Reload = 10
Config Portb = Output

Enable Interrupts

Servo(1) = 10

Waitms 1000
Dim I As Byte

Do
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

End

Napsal: 15 pro 2008, 21:44
od svetrpetr
Poradíte prosím nìkdo pøípadnì, kde se o tomto mohu doèíst pro BASCOM? Nìjaký pøíklad zapojení a naprogramování jednoduchého otáèení serva vpøed a vzad?

Napsal: 15 pro 2008, 22:45
od Mendor
Popiš ten program, co má vlastně dělat.

Napsal: 15 pro 2008, 22:52
od petrsvetr
Mendore...dìkuji

má rozjet modeláøské servo plynule na jednu stranu....prostì základ.....
Mám servo upravené, aby se mohlo otáèet...

dìkuji

Napsal: 15 pro 2008, 23:06
od Mendor
Jasně, chceš hýbat servem, ale já neumím BASCOM proto jsem chtěl popis programu alespoň stručně.

Napsal: 15 pro 2008, 23:08
od petrsvetr
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

Napsal: 15 pro 2008, 23:26
od Mendor
Takže v tom servu je akorát motorek s převodovkou, ano ?

Napsal: 15 pro 2008, 23:29
od svetrpetr
Motorek s pøevodovkou i øídícím obvodem patøící k tomuto servu..mám generovat pulzy pomocí ATmega8, ale nevím jak...ucvikl jse mechanické zarážky, aby se mohl otáèet bez omezení a teï jak ho roztoèit?..používám ho jako pohonnou jednotku....prosím pomoc...

Napsal: 15 pro 2008, 23:35
od Mendor
V tom servu je ještě snímací potenciometr polohy, ten se určitě dokola točit nebude. Jestli to chceš jako pohon, vyndej ještě elektroniku s potenciometrem a ovládej dvěma dráty přímo motorek.

Napsal: 15 pro 2008, 23:37
od petrsvetr
potenciometr jsem odsunul mimo servo, jinak by se to opravdu netoèilo..jak mùžu ovládat servo jen dvìma drátky....? Bez použití další elektroniky pøipojením k ATmega? to ne...chci ho ovládat dvìmi smìry...to tady opravdu nikdo neví?

Napsal: 15 pro 2008, 23:46
od cyberyc
Snad trochu pomozem, Bascom tiez neviem, ale skus pozriet sem :

Kód: Vybrat vše

http://robotika.cz/guide/servo/cs

Napsal: 15 pro 2008, 23:49
od petrsvetr
Cyberyc dìkuji...vím o tom, nepomohlo....

Napsal: 15 pro 2008, 23:53
od Mendor
Tak jinak, servo se řídí šířkou impulzu 1ms (levý okraj) až 2ms (pravý okraj), přitom výchylka páky je asi 120°.
Takže 1.5ms je střed serva. Impulzy se mají opakovat každých 20ms.

Napsal: 15 pro 2008, 23:56
od petrsvetr
Ano, teorii, to jsem si pøeèetl na robotika cz i jinde, teï hledám praktickou radu, jak to rozjet...

Napsal: 16 pro 2008, 01:28
od honza_jan
Musíš vypotit program, který ti bude generovat trvale na nějakém pinu každých 20 ms kladný impuls délky 1,5 ms a číst 2 piny s tlačítkama. Potenciometr na elektronice serva nastavíš do polohy, kdy se ti servo zastaví. Po stisknutí jednoho tlačítka se musí na tom pinu generovat každých 20 ms delší impulsy než je 1, 5 ms, maximálně 2 ms a motor se ti bude točit na jednu stranu. Po zmáčknutí 2 tlačítka se musí generovat každých 20 ms kratší impulsy než 1,5 ms, ale ne kratší, než 1 ms a motor pojede opačně. Uvedené časování musíš dodržet, protože elektronika serva je takto nastavená. Čeká každých 20 ms na impuls a podle délky příchozího impulsu rozhoduje, na kterou stranu se má servo točit. Po puštění tlačítka se opět generují každých 20 ms impulsy 1,5 ms a motor se zastaví, protože snímací potenciometr je v nezměněné poloze. Program musíš ošetřit i na situaci, kdy jsou zmáčknutá obě tlačítka a generovat v tomto případě impulsy délky 1,5 ms a motor nebude dělat nic.