Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
fredy Novinec
Pridružen/-a: Ned Dec 2005 20:44 Prispevkov: 5
|
Objavljeno: Pon Dec 19, 2005 12:04 pm Naslov sporočila: Krmiljenje servo motorja |
|
|
Pozdravljeni!
Ali bi mi lahko kdo posredoval BASCOM kodo za krmiljenje servo motorja za AT89C2051? Recimo, če je P1.0 = 1 zasuk levo, P1.1 = 1 zasuk desno, P1.2 = 1 na sredino. Servota mam na P3.0. |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Pon Dec 19, 2005 12:15 pm Naslov sporočila: |
|
|
Ce je "servo" z vgrajenim kontrolerjem (kot npr. modelarski servo), potem je pomik motorja odvisen od dolzine impulza. Srednja vrednost (pomik v pozicijo 0) je 1500 mikrosekund, od posameznega servota je pa odvisno kako dalec se lahko premakne oz. kako dolg impulz je se veljaven (torej da ga ne zavrze kot napacen signal). 1000-2000 mikrosekund (od ene do druge skrajne lege) je povsem razumen interval, mogoce tvoj servo "zmore" se kaj sirse intervale.
Ce gre le za koracni motorcek, je pa krmiljenje bolj zapleteno; tukaj je nekaj zelo zanimivega branja na to temo. |
|
Nazaj na vrh |
|
|
fredy Novinec
Pridružen/-a: Ned Dec 2005 20:44 Prispevkov: 5
|
Objavljeno: Pon Dec 19, 2005 12:29 pm Naslov sporočila: |
|
|
Motorček je servo z kontrolerjem. Mogoč bi lahk omenil da nisem čist popolni začetnik v programiranju, vendar mi BASCOM dela določene preglavice, ker sem ga nazadnje uporabljal pred 6 leti program ki sem ga pa napisal sem pa izgubil in bi rabil samo en primer, toliko da se spomnem kako se zadevi streže. |
|
Nazaj na vrh |
|
|
Gustav Profesionalec
Pridružen/-a: Pon Jun 2005 17:19 Prispevkov: 768
|
Objavljeno: Pon Dec 19, 2005 1:41 pm Naslov sporočila: |
|
|
Tukaj ti jaz ne morem pomagati, ker se na bascom ne spoznam. Sam tudi ne bi stvari, ki zahteva relativno nizko locljivost (ce zelis razumno majhne korake), nikoli sel delat z visokonivojskim jezikom. |
|
Nazaj na vrh |
|
|
bray Profesionalec
Pridružen/-a: Čet Jun 2004 15:42 Prispevkov: 63
|
Objavljeno: Pon Dec 19, 2005 2:13 pm Naslov sporočila: |
|
|
Gustav je napisal/a: | Tukaj ti jaz ne morem pomagati, ker se na bascom ne spoznam. Sam tudi ne bi stvari, ki zahteva relativno nizko locljivost (ce zelis razumno majhne korake), nikoli sel delat z visokonivojskim jezikom. |
Tudi jaz ne poznam bascoma. Naceloma pa to nebi smel biti problem. Mogoce samo ideja/algoritem za programiranje....kako in s cim bos pa to realiziral je pa v bistvu vseeno. Torej...
- nastavis timer tako, da do izteka/interrupta ostane 1000-2000us
- postavis izhod na "1"
- startas timer in ko se timer iztece sprozi interrupt
- v interruptni rutini postavis izhod na "0"
...celo proceduro pa potem ponavljas recimo vsakih 10ms
Kako in na koliko nastavis timer je pa odvisno od uCja in clocka.
lp _________________ "I didn't know it was impossible when I did it."
http://bray.velenje.cx/avr/terminal
Nazadnje urejal/a bray Pon Dec 19, 2005 3:48 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
fredy Novinec
Pridružen/-a: Ned Dec 2005 20:44 Prispevkov: 5
|
Objavljeno: Pon Dec 19, 2005 2:53 pm Naslov sporočila: |
|
|
bray je napisal/a: |
- nastavis timer tako, da do izteka/interrupta ostane 1000-2000ms
- postavis izhod na "1"
- startas timer in ko se timer iztece sprozi interrupt
- v interruptni rutini postavis izhod na "0"
|
No, sej to mene matra, tiste osnovne nastavitve, kiri pini so IN/OUT, nastavitve timerja pa to. Pač rabu bi en konkreten primerček vrtenje servo motorja, naprej se bom pa že znajdu.
Mim grede, katero okolje bi bilo bolj primerno za programiranje? Uporabljam pa PG302 pa AT89C2051 |
|
Nazaj na vrh |
|
|
SimonS Profesionalec
Pridružen/-a: Pon Jan 2004 17:52 Prispevkov: 181 Kraj: Kobarid
|
Objavljeno: Pon Dec 19, 2005 4:03 pm Naslov sporočila: |
|
|
Kaj nima bascom ze sam nekega ukaza, ki je namenjen prav krmiljenju servo motorckov? Poglej malo pod help! _________________ Skupaj smo mocnejsi
LP Simon |
|
Nazaj na vrh |
|
|
fredy Novinec
Pridružen/-a: Ned Dec 2005 20:44 Prispevkov: 5
|
Objavljeno: Pon Dec 19, 2005 5:51 pm Naslov sporočila: |
|
|
Imam pa tudi tole vprašanje, kako lahko program napišem v C++, C# in nato sprogramiram z PG302? |
|
Nazaj na vrh |
|
|
SimonS Profesionalec
Pridružen/-a: Pon Jan 2004 17:52 Prispevkov: 181 Kraj: Kobarid
|
Objavljeno: Pon Dec 19, 2005 6:22 pm Naslov sporočila: |
|
|
C# ?? C++ ??? Uh, nisem se slisal, da bi obstajal prevajalnik za ta dva jezika Seveda pa obstaja prevajalnik za C. PG302 pa seveda lahko uporabis za katirikoli prevajalnik, ce ti le ta kreira HEX datoteko _________________ Skupaj smo mocnejsi
LP Simon |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Pon Dec 19, 2005 8:52 pm Naslov sporočila: servo |
|
|
Mislim da bi lahko pogledal v samples, skoraj prepričan sem da se bo našel kak primer.
Vlado |
|
Nazaj na vrh |
|
|
markc Mojster
Pridružen/-a: Ned Okt 2004 18:49 Prispevkov: 38
|
Objavljeno: Pet Dec 23, 2005 8:23 pm Naslov sporočila: |
|
|
zdravo! tukaj sem ti prilepil bascom program....sicer sem ga zelo nahitro napisal...pa tudi stestiral ga nisem tako da mi prosim povej če ti dela!!!
če nimaš možnosti pa sporoči pa bom jaz stestiral....čeprav mislim da bi zadeva morala delovati na 12000000MHz kristal čisto normalno.
poglej si v helpu ukaz config servos!
no poročaj mi kaj ti je uspelo.
LP
Config Servos = 1 , Servo1 = P3.0 , Reload = 100
Servo1 = 12
P1.0 = 0
P1.1 = 0
P1.2 = 0
Do
If P1.0 = 1 Then
Servo1 = 8
End If
If P1.1 = 1 Then
Servo1 = 16
End If
If P1.2 = 1 Then
Servo1 = 12
End If
Loop
End |
|
Nazaj na vrh |
|
|
|