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...
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
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
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?
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.
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.
"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.
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.
Ä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..
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.
Nu funkar det inte igen - inte ens med den nya servon!
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!