Sida 1 av 1
PIC18 + Parallax Servo - riktningsproblem
Postat: 25 januari 2011, 15:01:22
av Daani4all
Jag behöver lite hjälp, har två servon kopplade till min pic18f8722 problemet är att jag inte kan få den att rotera åt motsatt riktning.
Jag har läst på parallax hemsida och hittat lite information angående pulsbredden på pulserna och approx. 1.3 ms för ena hålet och 1.6 ms för andra hålet med 20 ms delay/intervall mellan pulserna. Hur jag än ändrar pulserna roterar den åt samma håll.
Jag har mätt på delayfunktionern och dem generar exakta värden. OUT2 är porten servo2 är kopplat till
kod exempel för en servo:
Kod: Markera allt
OUT2 = 1;
//1.6 ms pulsbredd
delay_ms(1); //1 ms delay
delay_us(166); //600 uS delay
OUT2 = 0;
delay_ms(20);
OUT2 = 1;
//1.6 ms pulsbredd
delay_ms(1); //1 ms delay
delay_us(166); //600 uS delay
OUT2 = 0;
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 25 januari 2011, 15:24:09
av sodjan
Länkar till alla prylar underlättar.
Är det "moddade" servon med kontinuerlig rotation ?
> delay_us(166); //600 uS delay
???
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 25 januari 2011, 15:29:39
av Daani4all
mitt fel,
servon
http://www.parallax.com/dl/docs/prod/motors/crservo.pdf
jag kunde inte få till en bra delay med förklarande parametrar men delayen ger det jag skrivit som kommentar 600 us.
jag har även testat ändlägena på servon dvs skickat 1 ms pulsbredd med 20 ms delay samt testat 2 ms pulsbredd men den går likadant vad jag än väljer, samma hastighet och samma riktning.
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 25 januari 2011, 15:36:28
av sodjan
> men delayen ger det jag skrivit som kommentar 600 us.
Hur vet du det ?
Hur är det uppmätt/verifierat ?
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 25 januari 2011, 15:44:56
av Daani4all
Det är problemet, jag har enbart mätt det mha mplabs stopwatch. Ingen fysisk mätning är gjord. kan man lita på stopwatchen när man simulerar i debug mode?
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 25 januari 2011, 16:00:16
av sodjan
Ingen aning, jag har bara simulerat (och mätt) med assembler kod,
och då har det alltid fungerat. Det är ju lite märkligt att du anger
ett så konstigt värde i delay(us). Är det enligt dokumentationen ?
Men, för att summera, så har du alltså igentligen inte en aning om
vilken pulslängd du faktiskt skickar ut till servot ?
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 25 januari 2011, 16:56:30
av Daani4all
delay_us är en egengjord delay jag skapat, dock tar den lite udda inparametrar för att få önskat intervall på delayen.
Genom simulering har jag mätt att pulsbredden är exakt det jag sökt, sen om jag kan lita på simuleringen eller inte är något annat men mjukvarumässigt är delayerna korrekta. delay_ms ger exakt 1 ms om du skickar det i parametern. ändlägena för servon är ju 1ms och 2 ms så jag har testat dem också och får samma hastighet samt samma riktning :/
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 25 januari 2011, 18:56:02
av sodjan
OK.
Skriv ett litet test-case i assembler (där det är enklare att
teoretiskt beräkna tider) och se om servot uppträder annorlunda.
Eller kolla puslerna med ett oscilloskop...
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 28 januari 2011, 11:11:21
av Flashmem
Har du justerat in servot?
Nu bläddrade jag snabbt igenom dokumentet som du länkade till, finns ett stycke angående justering av servot.
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 31 januari 2011, 11:45:34
av bearing
Har du ställt in rätt klockhastighet i simulatorn?
Jag gissar att man behöver ange klockhastigheten i koden (t.ex #define FOSC 4000000) för att makrona ska ge rätt intervall.
Jag skulle nog använt timer-interrupt för det här.
Re: PIC18 + Parallax Servo - riktningsproblem
Postat: 31 januari 2011, 12:47:37
av v-g
Man ställer mycket riktigt frekvensen i simulatorn för projektet. Tycker det är lite dumt ja men så är det.
Det är extremt drygt när man klockar mellan olika hastigheter kan jag intyga
