Styra servo via parallellporten

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Styra servo via parallellporten

Inlägg 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?
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17539
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg 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
H.O
Inlägg: 5894
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Inlägg 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.
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg 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.
H.O
Inlägg: 5894
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Inlägg 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.
Användarvisningsbild
Icecap
Inlägg: 26628
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Ta du en 1k, det är okritisk!
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg 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
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg 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?
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg 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?
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31381
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg 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. :)
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg 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
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg 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.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg 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
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg 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.
Användarvisningsbild
Skruven
Inlägg: 18
Blev medlem: 2 februari 2008, 02:41:11
Ort: Stockholm

Inlägg 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!
Skriv svar