RC-servo roterar bara medsols!
RC-servo roterar bara medsols!
Hej, här kommer en alldeles färsk medlem med en liten fråga:
Jag har precis börjat pyssla med PIC-programmering och kämpat med lysdioder i ett par veckor nu, men tröttnade lite och tänkte ge mig an ett gammalt servo som ligger o skräpar.
Problemet är nu att det bara roterar medsols och vad jag sett så verkar inte pulslängder mellan 0.9 ms och 1.9 ms ha någon som helst effekt på servots rotationsriktning.
Lite intressant är det att en snabbare uppdateringsfrekvens verkar göra så att det snurrar fortare... Vet inte om det har något med problemet att göra dock.
Testar jag dessutom att köra en pulslängd på 9 mikrosekunder så verkar servot snurra på som vanligt, det borde väl inte ens fungera?
Datablad till servot:
http://www.hitecrcd.com/files/Discontinued_303.pdf
En del av den kod jag anväder till min pic (pic16F690):
while (1){
PORTC = 1; // Signal hög;
_delay(9); // _delay(x)===> x mikrosekunders fördröjning
PORTC = 0; // Låg
_delay(2500);
Tack på förhand
/Jonney
Jag har precis börjat pyssla med PIC-programmering och kämpat med lysdioder i ett par veckor nu, men tröttnade lite och tänkte ge mig an ett gammalt servo som ligger o skräpar.
Problemet är nu att det bara roterar medsols och vad jag sett så verkar inte pulslängder mellan 0.9 ms och 1.9 ms ha någon som helst effekt på servots rotationsriktning.
Lite intressant är det att en snabbare uppdateringsfrekvens verkar göra så att det snurrar fortare... Vet inte om det har något med problemet att göra dock.
Testar jag dessutom att köra en pulslängd på 9 mikrosekunder så verkar servot snurra på som vanligt, det borde väl inte ens fungera?
Datablad till servot:
http://www.hitecrcd.com/files/Discontinued_303.pdf
En del av den kod jag anväder till min pic (pic16F690):
while (1){
PORTC = 1; // Signal hög;
_delay(9); // _delay(x)===> x mikrosekunders fördröjning
PORTC = 0; // Låg
_delay(2500);
Tack på förhand
/Jonney
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: RC-servo roterar bara medsols!
Det där servot kan inte uppföra sig så. Har du moddat det?
Re: RC-servo roterar bara medsols!
Normalt kan ett rc servo inte rotera ett helt varv. Funkar det i bilen?
Re: RC-servo roterar bara medsols!
Har potten i servot lossnat från utgående axel?
Vissa servon kan rotera hela varv, men de ska ju få feedback från potten som gör att de stannar.
Annars krävs det bara att potten går sönder och att man bryter av en liten pigg på ett vanligt servo för att de ska rotera...
Vissa servon kan rotera hela varv, men de ska ju få feedback från potten som gör att de stannar.
Annars krävs det bara att potten går sönder och att man bryter av en liten pigg på ett vanligt servo för att de ska rotera...
Re: RC-servo roterar bara medsols!
Hoppsan, uttryckte mig kanske lite otydligt.
Menar att servot vrider sig till +90 grader och stannar där surrandes, i och med att den inte rent mekaniskt kan vrida sig längre.
Mitt problem ligger delvis i att få den att stanna på en bestämd position och dessutom kunna vrida den till exempelvis -90 grader. Just nu vrider den sig bara till max-läget och "bränner".
I bilen så fungerade den som den skulle med rörelser från -90 till 90 grader.
Menar att servot vrider sig till +90 grader och stannar där surrandes, i och med att den inte rent mekaniskt kan vrida sig längre.
Mitt problem ligger delvis i att få den att stanna på en bestämd position och dessutom kunna vrida den till exempelvis -90 grader. Just nu vrider den sig bara till max-läget och "bränner".
I bilen så fungerade den som den skulle med rörelser från -90 till 90 grader.
Re: RC-servo roterar bara medsols!
Antingen har det gått sönder eller också är styrsignalen fel.
Det är väldigt enkelt att bygga en servotester för att konstatera att
det fungerar som det ska.
Det är väldigt enkelt att bygga en servotester för att konstatera att
det fungerar som det ska.
Re: RC-servo roterar bara medsols!
Ok, får ta o kolla upp det där med servo tester, har en potentiometer monterad på kortet som borde gå att använda.
Annars då, något som är fel med den här koden?
while (1){
PORTC = 1; // Signal hög;
_delay(1500); // _delay(x)===> x mikrosekunders fördröjning
PORTC = 0; // Låg
_delay(18500);
Annars då, något som är fel med den här koden?
while (1){
PORTC = 1; // Signal hög;
_delay(1500); // _delay(x)===> x mikrosekunders fördröjning
PORTC = 0; // Låg
_delay(18500);
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: RC-servo roterar bara medsols!
YEEES! Nu fungerar det!
Felet låg i att jag använt en extern källa till att mata servot med, då med en aning högre spänning än den PIC:en kunde ge som signal.
När jag bytte till att driva servot från PIC:en så fungerar det utmärkt
Tack för hjälpen allihopa!
Felet låg i att jag använt en extern källa till att mata servot med, då med en aning högre spänning än den PIC:en kunde ge som signal.
När jag bytte till att driva servot från PIC:en så fungerar det utmärkt

Tack för hjälpen allihopa!
Re: RC-servo roterar bara medsols!
Observera att det är lite farligt att driva en ett servo från samma källa som driver mikrodator. Servot precis som alla andra motorer ger våldsamma störningar.