ATmega8 a modelářské servo

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
petrsvetr

ATmega8 a modelářské servo

#1 Příspěvek 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
svetrpetr

#2 Příspěvek 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?
Uživatelský avatar
Mendor
Příspěvky: 223
Registrován: 16 dub 2008, 00:00
Bydliště: Kladno

#3 Příspěvek od Mendor »

Popiš ten program, co má vlastně dělat.
petrsvetr

#4 Příspěvek 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
Uživatelský avatar
Mendor
Příspěvky: 223
Registrován: 16 dub 2008, 00:00
Bydliště: Kladno

#5 Příspěvek od Mendor »

Jasně, chceš hýbat servem, ale já neumím BASCOM proto jsem chtěl popis programu alespoň stručně.
petrsvetr

#6 Příspěvek 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
Uživatelský avatar
Mendor
Příspěvky: 223
Registrován: 16 dub 2008, 00:00
Bydliště: Kladno

#7 Příspěvek od Mendor »

Takže v tom servu je akorát motorek s převodovkou, ano ?
svetrpetr

#8 Příspěvek 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...
Uživatelský avatar
Mendor
Příspěvky: 223
Registrován: 16 dub 2008, 00:00
Bydliště: Kladno

#9 Příspěvek 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.
petrsvetr

#10 Příspěvek 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í?
Uživatelský avatar
cyberyc
Příspěvky: 12
Registrován: 02 úno 2007, 00:00
Bydliště: Slovensko
Kontaktovat uživatele:

#11 Příspěvek od cyberyc »

Snad trochu pomozem, Bascom tiez neviem, ale skus pozriet sem :

Kód: Vybrat vše

http://robotika.cz/guide/servo/cs
NPN, sipka ven!
petrsvetr

#12 Příspěvek od petrsvetr »

Cyberyc děkuji...vím o tom, nepomohlo....
Uživatelský avatar
Mendor
Příspěvky: 223
Registrován: 16 dub 2008, 00:00
Bydliště: Kladno

#13 Příspěvek 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.
Naposledy upravil(a) Mendor dne 15 pro 2008, 23:57, celkem upraveno 1 x.
petrsvetr

#14 Příspěvek od petrsvetr »

Ano, teorii, to jsem si přečetl na robotika cz i jinde, teď hledám praktickou radu, jak to rozjet...
Uživatelský avatar
honza_jan
Příspěvky: 425
Registrován: 22 lis 2007, 00:00
Bydliště: Doma

#15 Příspěvek 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.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“