I’m trying to control a servo with a baby orangutan B in the arduino enviroment, using the servo library, but it doen’t work propertly.
When I set the position (e.g. myservo.write(90); ) the servo doesn’t stay in the position but starts moving describing an angle of around 90º first in one direction and then in the opposite.
Can you please suggest me any solution.
Carlos from Spain
I am sorry you are having trouble controlling your servo. Can you tell me more about your setup? What servo are you controlling? How are you supplying power? Can you post the simplest version of your code that your think should work but doesn’t? Can you also post a video of your servo’s behavior?
Thanks for answering.
The code I´m trying is very simple, and it works perfectly in an Arduino uno.
The servo is an analog servo “Tiger Wing 9g”
I am supplying the board using a dc power supply adjusted at 9 V, and the supply of the servo is the 5V output of the baby orangutan board.
This is the code:
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 90; // variable to store the servo position
myservo.attach(0); // attaches the servo on pin 0 to the servo object
myservo.write(pos); // tell servo to go to ‘pos’
This is a link to a video of the behavior:
Well, thinking about the problem, I realized that the power consumption might be bigger than the 100 mA that the 5 V regulator of the board is able to provide.
So, tomorrow I’ll try with an external 5V power supply to check it, and tell you whether the problem is solved.
The behavior you are seeing does sound like it might be due to a power issue.
By the way, attempting to pull too much current from Vcc could permanently damage the Baby Orangutan’s voltage regulator. It sounds like your Baby-Orangutan is fine, but you might be more careful in the future.
I’ve just tried with an external supply and it worked perfectly.
Thank you for helping, Jon.