Servo not reaching full travel


Closed Thread
Results 1 to 40 of 40

Hybrid View

  1. #1
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by ruijc View Post
    Hi all,
    i'm not really sure if the servo moves equally to both sides because it will depend on where the center is.
    In my program the center is at pos = 700
    Put a mark on the servo horn and eyeball it.

    The servo never came to the point of hitting it's internal stops and "keeping the motor running" ( if you know what i mean )
    Stalling perhaps?

    I can increase the pos value but the servo stops when reaching pos +- 1300.
    I think that the minimum value could be the key here...i mean...the min value is 25...can i go lower than this ( minus ) ???
    Somehow, I think you're Oscillator and you're DEFINE's don't match up. Grab an LED, and try a simple one second per flash LED flasher type thing and see what happens.
    I still get the feeling that you're a magnitude or two off the mark here.
    The servo stopping at 1300, tells me that if your oscillator was off by a factor of 2, that the 1300 might actually be 2600. A pulse width of 2.6ms on a servo is 'off the scale' at one end by quite a bit, I don't think it's completely unreasonable that you'd be hitting a stop there rather than around 2-2.1 ms like it should be.

    And another thing...You also said that your center is 700.
    Well, 700 (.7ms) x 2 = 1400 (1.4ms) ....pretty close to 1500 (1.5ms) dontcha think!

    Double check your oscillator settings, frequency, code, etc.etc.etc. I'm sticking with that theory for now....in the absense of better information of course...

  2. #2


    Did you find this post helpful? Yes | No

    Default

    skimask ,


    just a note:
    When i say the center is pos = 700 means that it's 1700 (pauseus 1000+pos ) which is equal to say 1.7ms, right ? ( pretty close to those 1.5ms ).

    About the osc you are right because i already did some work there. I started with a define for a 4mhz speed and ended at a 3 mhz define ( with a define osc 3 i got closer to the real thing )

    this is because i noticed that using define osc 3 i could get more travel with the lower limit ( pos = 25 ) rather than with define osc 4

    .

  3. #3
    Join Date
    Mar 2006
    Location
    China
    Posts
    266


    Did you find this post helpful? Yes | No

    Default Caps

    Hi

    DEFINE OSC 4

    you must use capital letters in the define line.

    /me

  4. #4


    Did you find this post helpful? Yes | No

    Default

    Opps...i did not knew that

    Does that mean that if i use like :

    DEFINE osc 3

    it will not work ?

    shouldnt pbp recognize it anyway ?

    .

  5. #5
    Join Date
    Mar 2006
    Location
    China
    Posts
    266


    Did you find this post helpful? Yes | No

    Default PBP manual section 4.16

    All definitions must be in UPPER CASE .... or the compiler MAY not recognize them.

    This goes for the entire DEFINE STATEMENT. It has to be exactly as stated in the PBP manual or ....... but I guess the warning in the manual about this has to be for a reason.

    I have not spent any time to figure out what if this and what if that. I just stick to the manual and spend my time with writing the code instead.


    shouldnt pbp recognize it anyway ? - May or may not...

    I really don't know but I am sure DEFINE OSC 3 will do the job.

    /me

  6. #6
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by ruijc View Post
    When i say the center is pos = 700 means that it's 1700 (pauseus 1000+pos ) which is equal to say 1.7ms, right ? ( pretty close to those 1.5ms ).
    Ok, that makes a bit more sense now...

    About the osc you are right because i already did some work there. I started with a define for a 4mhz speed and ended at a 3 mhz define ( with a define osc 3 i got closer to the real thing )
    You do realize that DEFINE OSC 3 doesn't really define 3Mhz, it's actually 3.58Mhz, (14.31818 / 4, for use with colorburst crystals, which used to be dirt cheap and easy to find and accurate).

  7. #7


    Did you find this post helpful? Yes | No

    Default

    Thanks for the warning Jumper,

    i have to be more carefull with that from now on

    skimask,

    i've checked my pbp manual and you are right. Osc 3 is really 3.58 Mhz.

    I will try with lower speeds...maybe using the internal oscilators and see what happens

    .

  8. #8
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by ruijc View Post
    skimask,
    i've checked my pbp manual and you are right. Osc 3 is really 3.58 Mhz.
    I will try with lower speeds...maybe using the internal oscilators and see what happens
    .
    That's the thing...you shouldn't have to do that.
    I can run servo's just as happily running 48mhz on the 18F4550 as I can at 4mhz on the same PIC, same program, same everything, just a different DEFINE OSC at the beginning.
    You've got something else going on that's preventing you from doing so.
    Port not set right, interrupt's bugging something, register not set up right or something...

    And if I remember right, I don't think I've seen your FULL code yet...just fragments.
    That doesn't work so good.
    Time and time again, somebody says, 'well, the problem can't be over there, 'cause that's got nothing to do with anything over here'.
    Well, guess what.....the problem was over there because it had everything to do with all of it over here in one way or the other...

    If you run the servo to an endpoint (at least an endpoint that you've found using the PIC and it's software), how much farther (if any) can you make it move after removing power by manually turning it?

  9. #9


    Did you find this post helpful? Yes | No

    Default

    skimask ,

    the full code with settings is in my 2nd post.

    I ran the program again and moved the servo to the far right and then i moved it with my fingers and yes...it moved a bit more !

    this means that it can move a bit more to the right but it's limited with the low 25 ( 1025 ms ).

    To the left it goes all the way !

    This also means that center is not where i though it was .

    .

  10. #10
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by ruijc View Post
    This also means that center is not where i though it was .
    How are you quantifying 'CENTER' on the servo right now? I mean how are you determining 'center'?
    Are you trying to let the program do it for you?
    Are you moving it manually from end to end and splitting the difference and making a mark at that 'center'?
    If you're looking at center and saying that's 'CENTER' because you want it to be center, well, that ain't gonna work.
    Take that manual method described above of moving the servo and write a program to send the servo a 1.5ms pulse and see how far off the two marks are. Let the servo tell YOU where center is.

    If you are still running that code in your second post, I think you should abandon that code until you figure out how to get full left and right out of your servo's first, before you start adding in buttons and stuff...
    Go back to that code in Post #9 and play with that.
    Using those values, the servo should move equally left and right (not just a little left and a lot right, 'cause that would mean that your idea of center and the servo's idea of center are two different things, which I think is wrong) and it should do that without binding at either end.
    Last edited by skimask; - 27th December 2007 at 22:23.

Similar Threads

  1. More Servo Woes
    By chrisshortys in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 13th May 2009, 08:40
  2. Problem with 12F629, servo and EEPROM
    By Atom058 in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 1st March 2008, 09:53
  3. Servo does not move
    By ruijc in forum General
    Replies: 12
    Last Post: - 12th November 2007, 19:14
  4. Beginner + Servo
    By james in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 31st July 2007, 21:31
  5. Help with Servo Control Please!
    By wireman22 in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 7th June 2007, 18:15

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts