Sida 1 av 3

Styra servo via parallellporten

Postat: 2 februari 2008, 03:35:24
av Skruven
Hej!

Jag har lite problem med en Futaba S3114 servo och detta kopplingsschema:
http://www.andrew.cmu.edu/user/suppe/mobot/mobot2.html

Det jag är ute efter är att kunna styra servon via parallellporten fram och tillbaka, via t.ex. Visual Basic. Koden där kan jag nog ordna, det är värre med den fysiska kopplingen, har glömt massor sedan gymnasiets elektroniklinje märker jag... :roll:

Någon?

Postat: 2 februari 2008, 07:23:13
av grym
välkommen till forumet
det funkar bra, bara att följa ritningen
du kan till och med koppla direkt från utgången till servot , men då får du kolla programmet så du har rätt puls ut(iverterat eller inte( + att du kanske måste ha en pull upp, bara till att prova

Postat: 2 februari 2008, 09:37:18
av H.O
Glöm inte att datorns jord (pin18-25) måste vara ihopkopplad med (-) på batteriet, eller vad det nu är som matar servot.

Postat: 2 februari 2008, 13:09:17
av Skruven
Tack för era svar!
Måste man ha en 10k resistor på basen till transistorn? Jag har bara 1k resistorer tillgängliga just nu.

Postat: 2 februari 2008, 13:16:03
av H.O
Ska vi vara petiga så beror det på vilken transistor du har men det funkar säkert med 1k. Du kan ju alltid seriekoppla ett gäng 1k resisitorer annars.

Postat: 2 februari 2008, 14:18:26
av Icecap
Ta du en 1k, det är okritisk!

Postat: 2 februari 2008, 14:24:29
av Skruven
Om jag kopplar servon direkt till parallellporten, hur kan jag skicka ut en inverterad puls? Jag har lyckats få servon att backa/rotera åt vänster genom att sätta en tid som pulssignalen skickas ut (t.ex. 1-2 ms), men då går den sakta tillbaka och inte lika snabbt som den gör när den går framåt.

Vad jag förstår så har jag kopplat enligt ritningen jag skickade, men ingenting händer när jag skickar en puls. Har kopplat om flera gånger.

Komponenter:
1 st transistor - C547B / PH 9n
2 st resistorer - 1k ohm (har ingen 10k)
1 st servo - Futaba S3114

Postat: 2 februari 2008, 14:46:13
av squiz3r
Det borde fungera då.. Du är säker på att du har gjort rätt i mjukvaran? Har du möjlighet till ett oscilloscop så du kan kolla om utsignalen från datorn är rätt?

Postat: 2 februari 2008, 15:08:07
av Skruven
Tyvärr har jag inte tillgång till något oscilloskop - vilket skulle underlätta det hela.
Men menar du att om nu servon är direktkopplad till parallellporten och man skickar ut en viss pulstid från pinne 2 (dataregister 0) så blir signalen inverterad?

Hur kommer det sig att servon rör sig så sakta tillbaka? Det borde ju bero på felaktig signal.
Flyttar jag t.ex. matningsspänningen (+5v) till pulsingången på servon så backar den istället, och gör det lika bra då som när den går framåt.

Vad innebär en "pull upp" som grym skrev om?

Postat: 2 februari 2008, 15:43:45
av MadModder
Hmm... servot ska inte reagera nånting om man bara matar in en statisk spänning på ingången. Kör du ut 1,5ms-pulser ska det ställa sig i mitten, och kör du ut 1ms eller 2ms ska servot braka iväg till ändpositionerna i den maxhastighet servot är specat för. Gör det inte det kanske din +5V-matning inte är tillräckligt stark...

Pullup är ett motstånd kopplat mellan matningsspänningen och signalen. På schemat du länkat till är det R1 som är pullup. När transistorn inte leder, fixar R1 så signalen är +5V. :)

Postat: 2 februari 2008, 15:57:06
av squiz3r
"Men menar du att om nu servon är direktkopplad till parallellporten och man skickar ut en viss pulstid från pinne 2 (dataregister 0) så blir signalen inverterad?"
Nej, tvärt om. Om du kopplar den direkt blir signalen rätt, men om du kopplar den som i detta schemat så blir den inverterad. Dvs. när parallelportens utgång är hög så får servot en låg signal.

Mvh

Postat: 2 februari 2008, 19:54:02
av Skruven
Tack alla för all hjälp jag fått! :D :D

En skum grej, jag bytte servo och kör precis samma program som jag gjort tidigare och samma direktkoppling till parallellporten - plötsligt fungerar allt precis som jag vill! Den går inte tillbaka långsammare (motsols) än när den går medsols.

Är det ovanligt att servos man köper kan ha fel? Antingen har jag sabbat den ena, eller så var den dålig från början. Jag har däremot aldrig jobbat med över 6v, utan snarare 5v endast. Matningsspänningen ska enligt tillverkaren vara 4.8v - 6v.

Postat: 2 februari 2008, 20:53:05
av squiz3r
Roligt att det fungerar nu!

Är det ett likadant servo du har nu, eller är det en annan modell? Jag tror inte att det var trasigt från början, tror mer på att du skulle lyckats ta i sönder det på nått sätt i så fall.. :)

Mvh

Postat: 2 februari 2008, 21:19:01
av Skruven
Jo, antagligen har jag förstört det på nåt sätt.. Jo, det är ett exakt likadant servo. Jaja... man måste ju offra lite för att vinna. :)
200 spänn åt skogen dock.. hehe.. Men nu funkar det andra iaf, det är det viktigaste.

Postat: 3 februari 2008, 23:34:40
av Skruven
Nu funkar det inte igen - inte ens med den nya servon! :cry:
Det är exakt samma Visual Basic-program jag kör som tidigare som fungerar/fungerade och samma sorts koppling.

Hur kan servon plötsligt inte gå tillbaka (motsols) snabbt, men fortfarande lika bra och snabbt som vanligt när jag låter den gå medsols?
Om jag kopplar +5v till puls (utan att koppla +5v som matningsspänning) så backar servon (motsols) precis som den ska. Alltså kan det inte vara fel i mekaniken på servon. :(

Edit: Nu fick jag den att fungera igen utan att jag gjorde nåt.. Fattar ingenting!