Sida 1 av 1
Styra ett RC-servo, hjälp med kod.
Postat: 23 oktober 2004, 21:22:51
av mickeliten
Hejsan.
Jag är inte så haj på programmering, så jag tänkte fråga om någon
här kan hjälpa mig.
Jag ska förklara vad jag ska göra. Jag tänker ha ett RC-servo som motor
för att rotera en riktantenn.
Men för att riktantennen inte ska snurra runt runt och "dra i kabeln"
så ska man kunna rotera servot 360 grader åt båda hållen,
men alltså inte mer.
Det ska kunna rotera 360 grader och sedan stoppa.
Jag hade tänkt styra det hela med en Basic Stamp.
Måste jag förklara mer för att ni ska kunna hjälpa mig eller räcker denna
lilla förklaring?
MVH Mikael.
Postat: 23 oktober 2004, 22:03:41
av chille
Skicka först en puls som är 1.5mS lång, vänta 20mS, skicka en till puls... osv... Då kommer servot vara i mittläge. Vill du sedan vrida det får du ändra pulslängden på den första pulsen till något annat.
Vill du rotera ett "vanligt" servo 360 grader måste du modifiera det, sök lite i forumet så får du mycket info.
Postat: 24 oktober 2004, 00:07:51
av mickeliten
Jo modifierat det har jag gjort.
Det är själva kodningen jag inte är nå duktig på.
Så jag vet varken hur koden ska skrivas eller vad det ska vara för värden
Vore tacksam för hjälp om någon skulle vilja

Postat: 24 oktober 2004, 00:18:02
av strombom
basic stamp har ett kommando som heter pulseout eller liknande, se manual. sen skickar du bara 1,5 ms som chille sa. varier pulslängden mellan 1ms och 2ms för att styra den.
/Johan
Postat: 24 oktober 2004, 14:51:16
av mickeliten
Hum okej.
Vilket tal motsvarar 1,5mS då?
PULSOUT 0, [vad?]
Vrider jag sedan på potten tills den stannar då eller?
MVH Micke.
Postat: 24 oktober 2004, 16:46:39
av $tiff
Funkar positionsfeedbacken då man modifierat servot för 360° rotation?
Du kan skriva programmet enligt:
Kod: Markera allt
servo1 var word 'På-tid för servopulsen
servo_pin var portb.0
output servo_pin 'Deklarera som utgång
loop:
servo_pin = 1 ' Hög servopuls
puseus servo1 ' Låt vara hög så här länge (10000-20000µs)
servo_pin = 0 ' Låg servopuls igen
'
' Här lägger du all övrig kod som
' måste ta ca 15-20ms att exekvera.
'
goto loop
end
Beroende för vad du slänger in för övrig kod så får du balansera med ett "pause" efter för att tajma rätt...
Postat: 24 oktober 2004, 16:47:09
av Hedis
Exact, kör pulserna och vrid tills det stannar. Där har du din 0-punkt. Om du sedan förlänger eller minskar 1,5mS pulsen så kommer servot att röra sig endeså åt höger eller åt vänster. Potentiometern skall alltid stå stilla efter det att du justerat den.
Postat: 24 oktober 2004, 19:20:20
av mickeliten
Tack $tiff!
Du är alltid en hjälte som offrar dig att skriva kod och hjälpa till!
Tack ni andra också!
MVH Micke.
Postat: 24 oktober 2004, 20:25:17
av danei
$tiff skrev:Funkar positionsfeedbacken då man modifierat servot för 360° rotation?
Nej