Styra ett RC-servo, hjälp med kod.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
mickeliten
Inlägg: 311
Blev medlem: 12 november 2003, 14:41:48

Styra ett RC-servo, hjälp med kod.

Inlägg 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.
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg 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.
Användarvisningsbild
mickeliten
Inlägg: 311
Blev medlem: 12 november 2003, 14:41:48

Inlägg 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 :humm:

Vore tacksam för hjälp om någon skulle vilja :)
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg 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
Användarvisningsbild
mickeliten
Inlägg: 311
Blev medlem: 12 november 2003, 14:41:48

Inlägg 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.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg 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...
Senast redigerad av $tiff 24 oktober 2004, 16:49:43, redigerad totalt 1 gång.
Användarvisningsbild
Hedis
Inlägg: 2488
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg 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.
Användarvisningsbild
mickeliten
Inlägg: 311
Blev medlem: 12 november 2003, 14:41:48

Inlägg av mickeliten »

Tack $tiff! :)

Du är alltid en hjälte som offrar dig att skriva kod och hjälpa till!
Tack ni andra också! :D

MVH Micke.
danei
EF Sponsor
Inlägg: 26424
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

$tiff skrev:Funkar positionsfeedbacken då man modifierat servot för 360° rotation?
Nej
Skriv svar