No positional control with a high torque servo

Hello all,
I'm trying to use this high torque servo;

I've gotten it to work with the sweep and knob demo, but whenever I try to use a program that calls for specific angles, like the code below, it barely responds and and moves slowly in the appropriate direction.

#include <Servo.h> 
 
Servo myservo; 

 
int pos = 0;
 
void setup() 
{ 
  myservo.attach(9); 
} 
 
void loop() 
{ 
  myservo.write(90);
  delay(500);
  myservo.write(1800);
  delay(500);
  myservo.write(90);
  delay(500);
  myservo.write(0);
  delay(500);
  
}

I have used this code with 9g servos just fine.
Does anyone have experience using similar high torque servos or any ideas about why it's not working with this servo?

Then something is wrong. Common grounds? Adequate power supply (by far the most common mistake
people make with servos is failing to provide for the peak current demand, and high torque ones take a
lot more current).

MarkT:
Adequate power supply

That might be the case. Right now I'm using a 12V 1A wall adapter run through a 6V Voltage regulator rated for 1.5A. I did notice that the datasheet for this servo needs 1A minimum. I have a lot of other parts in this project so I think i'm going to use a power supply for a laptop rated at 18.5V and 3.5A and then step down the voltage on various components using voltage regulators. Do you think that would work?

1A will not power one high torque servo, though might well be enough for one standard servo. Its not
clear what current your servo needs though as the data is contradictory (speed rating is for 360
degrees or for 60 degrees depending which bit of the "data" you look at!)

I'd try some of cheap adjustable LM2596 buck converters from eBay, they are cheap, and they allegedly
handle a couple of amps each - you can have one per servo if so, and they buck convert from pretty
much any voltage upto 40V, so will be fine from a laptop supply. They have a multi-turn pot to set
the output voltage which means you can set and forget.

Hi,

  myservo.write(1800);

Try 180..

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?

What 6V regulator did you use?

Do you have a DMM to measure your circuit parameters?

Thanks.. Tom.. :slight_smile:

1800 is valid - it will behave as if writeMicroseconds() was called for arguments in the range 544 and up,
but I agree 180 is probably meant.