Sida 1 av 2

Testprog. RC-Servo

Postat: 13 januari 2013, 00:16:54
av SeniorLemuren
Fick ett par små RC-servon av en kompis. Jag ville testa om dom funkade så jag slängde ihop en liten programsnutt i C till en PIC16F887.

Har sökt info om servona (Aristo-Craft HS-300CW) på Google men inte hittat någon användbar info.

Kablarna är tre till antal. En svart, en röd, och en gul. De flesta små RC-servon verkar för det mesta ha röd till plus och svart till minus (3-6 V) samt puls in på gul och så har jag kopplat. (5V till röd och svart, gul direkt till PORT RC1).

Pulslängd verkar vara någonstans i häradet 0,6 till 2.4 mS därefter paustid 20 mS. Paustiden säjs inte vara så kritisk. Har provat med lite olika värden på tiderna men servona rör sig inte ur fläcken. Däremot blev dom lite småvarma efter en stund.

Vad gör jag för fel?

Kod: Markera allt

// Glcd module connections
char GLCD_DataPort at PORTD;

sbit GLCD_CS2 at RB0_bit;
sbit GLCD_CS1 at RB1_bit;
sbit GLCD_RS  at RB2_bit;
sbit GLCD_RW  at RB3_bit;
sbit GLCD_EN  at RB4_bit;
sbit GLCD_RST at RB5_bit;

sbit GLCD_CS2_Direction at TRISB0_bit;
sbit GLCD_CS1_Direction at TRISB1_bit;
sbit GLCD_RS_Direction  at TRISB2_bit;
sbit GLCD_RW_Direction  at TRISB3_bit;
sbit GLCD_EN_Direction  at TRISB4_bit;
sbit GLCD_RST_Direction at TRISB5_bit;
// End Glcd module connections

void main() {
  ANSEL  = 0;
  ANSELH = 0;
  C1ON_bit = 0;
  C2ON_bit = 0;
  TRISA = 0;
  PORTA = 0;
  TRISB = 0;
  PORTB = 0;
  TRISC = 0;
  PORTC = 0;
  //************* Graphic LCD  ********************
  Glcd_Init();                                   // Initialize GLCD
  Glcd_Fill(0x00);                               // Clear GLCD
  Glcd_Set_Font(Font_Glcd_Character8x7, 8, 7, 32);    //font
  Glcd_Write_Text("Test RC_Servo", 0, 0, 2);         // Write string  
  //**************** PWM **************************
  do {
     RC1_bit = 1;
     Delay_uS(600) ;
     RC1_bit = 0;
     Delay_mS(20);
   }while (1) ;
  }

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 00:31:20
av papabear
Jag har inte riktigt koll på historian, men jag tror det är så att Aristo-Craft bytte namn till HiTech, HS-300 är ett sk standardservo.
Pulslängden ska vara 1,5 ms (mittläge) +/- 0,5ms (höger/vänster ändläge), plus 20ms paus som du säger.

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 01:15:35
av SeniorLemuren
Får nog plocka fram oscilloskopet i morgon. :humm:

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 01:29:01
av Glenn
olika servon är olika känsliga mot fel pauslängd dock.

Men färgerna på kabeln är ofta olika, kolla hur stiften sitter i kontakten istället.

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 09:53:09
av SeniorLemuren
Dom sitter som på bilden, men det säger mig ingenting?

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 10:00:50
av PeterH
Tips: Icecap har en färdig kod på sin "freebies" sida för att styra upp till 8 servon från en PIC.

Edit: var visst styrning från serieporten på en dator via en PIC...

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 10:30:41
av papabear
SeniorLemuren skrev:Dom sitter som på bilden, men det säger mig ingenting?
minus
plus
signal


Jag tror det är mina GWS-servon som har brun istället för svart, sen har jag även sett vit istället för gul.
Nu för tiden brukar väl alltid plus sitta i mitten så att inget brinner om man skulle vända på kontakten, men jag vet att det iaf fanns (kanske finns) mottagare som hade plus på ena sidan.

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 13:10:39
av SeniorLemuren
Har kollat signalen ut till servot. Jag tycker den ser Ok ut. Kan det vara så att den skall vara 0 till -5V i stället för 0 till +5V?

Annars får man nog konstatera att dom är kass. Dom har legat en herrans massa år i ett garage, så tidens tand kanske har gjort sitt jobb.

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 13:34:25
av Icecap
Signalen är en gammal "standard". Och den kör mellan 0 (vilo) och VDD (puls).

Men jag tycker att dina pulser verkar ganska långa, mittpunkt ska ju vara 1,5ms och ytterställningarna ska vara 1,0ms och 2,0ms. Om jag inte ser fel på skop-bilden har du 2ms eller mer.

Om det är fler servon kan jag acceptera att ett är trasigt men fler i samma "gäng" låter osannolikt.

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 14:22:22
av SeniorLemuren
På den bild som visar signalen hade jag inställningen 2.4 mS, men jag har testat allt mellan 0,9 och uppåt. Jag har även testat olika värden på Pulse Cycle.

Spänningsmatningen (2 st 7905) är separat till µC resp servomodul, med gemensam jord. Signalen är tagen från RC-servots kontakt, svart och gul kabel.

Dom är helt stendöda båda två.

Spec. för HS-300 - Standard Servo:
Pulse Cycle: 20 ms
Pulse Width: 900-2100 µs

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 14:27:58
av Gimbal
Kan du vrida dom för hand? Utan spänning på alltså.

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 14:44:19
av SeniorLemuren
Inte direkt på utgående axel, men den är ju utväxlad ganska kraftigt. Jag har däremot pillat isär den och kan lätt snurra på axeln direkt på motorn.

Jag kollade just med den jag fick servona av och han upplyste mig om att de legat i ett kallgarage i mer än 30 år. De fungerade då. :)

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 15:17:18
av Icecap
Sp. reg 7905??? Kör du med negativ spänningsmatning?

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 17:14:08
av SeniorLemuren
Felskrivning. Kör med 7805, men 8 och 9 ligger nära varandra när man har korvfingrar. :D

Re: Testprog. RC-Servo

Postat: 13 januari 2013, 18:33:39
av Icecap
OK, jag var lite fundersam...

Men du skrev ju att de blev varma när du kör hög PRF, alltså måste de reagerar på något vis. Alltså måste du testa olika pulsbreddar.