Go Down

Topic: Slow the speed of a continuous rotation micro servo  (Read 3861 times) previous topic - next topic

vinceherman

I am not sure what you mean by beyond digital.

The purpose of a servo is to move to a position and hold it.  There are many servos that do this.  There are some servos that have specific designs (like digital) that do it better.  If you need that better performance of moving to a position and holding it, maybe the extra expense of a digital servo is worth it.

None of that relates directly to a modified, continuous rotation, 360 degree servo.
A continuous rotation servo is using a device designed specifically for one job (moving to a position and holding it) and hacking it to do another job.
And a continuous rotation does that job.  But possibly not very well.  Good thing there ARE devices that let you control the speed of motors fairly well. (see my links above)

The video shows that you have some level of speed control with the servo in use.

TomGeorge

#16
Nov 30, 2017, 09:51 pm Last Edit: Nov 30, 2017, 09:52 pm by TomGeorge
Hi,
I fail to see from the video what your problem is?
It seems to perform as continuous servo should.

The difference between an analog and digital servo is the internal control system, they are basically interchangeable.
A continuous servo is used as motor/wheel drives, RC yacht winches.

Position servos run at one speed if asked to go from 0 to 45 or make large excursions as the internal control system is made that way.

If a servo gets a 90 signal and it is at 0 and its your favorite and most expensive RC toy and its heading for the ground, then you would appreciate as fast as possible reaction.

You can make a positional servo move slow by sending incrementing signals,
eg   0 to 45, send 0 then 1 then 2 etc to 45.
or if a little faster 0 then 5 then 10 etc to 45.

You need to google     how a RC servo works

Tom.. :)
Everything runs on smoke, let the smoke out, it stops running....

Johan_Ha

____________________
- One day my stepper motor driver works like a charm. No task is too big for it and I can do anything with it. Next day it refuses to work and even the tiniest motor blows its fuse. What's wrong with it?
- It's bipolar.

usenetfan

Tom,

That video is my analog servo in operation. If I plug in my digital TowerPro MG90D 360 degree servo, it runs full CCW first, then spasmodically until it starts full speed clockwise. I can post a video of it on Monday.

My only question has been all along: why are off-the-shelf 360 degree analog and digital servos so different in operation?

Johan_Ha

Then focus on the sector where it behaves spasmodically. Don't write angles. Write microseconds. Like 1499, 1500, 1501. What happens?
____________________
- One day my stepper motor driver works like a charm. No task is too big for it and I can do anything with it. Next day it refuses to work and even the tiniest motor blows its fuse. What's wrong with it?
- It's bipolar.

usenetfan

I am writing microseconds, not angles.

void rollit (int rollspeed){
   myTransportServo.writeMicroseconds(rollspeed);
   delay (500);


This is a definitely 360 degree analog servo: https://youtu.be/skZPusMcXkA

This is a definitely 360 degree digital servo: https://www.youtube.com/watch?v=pyGhbPLZA04

Same code is being sent, same potentiometer. But while the analog behaves, the digital misbehaves.

TomGeorge

Hi,
It sounds and looks like that servo needs more current to start.

Have you got a DMM?
Can you measure the power supply voltage to the servo when you try and control it?

Tom... :)
Everything runs on smoke, let the smoke out, it stops running....

usenetfan

Yep, I can measure it. I am powering the Arduino from a 9V battery in the experiment, the servo is connected to the sensor shield, and the servo needs 4.8V~ 6.6V as per its specs. I could give it +6.6V off a buckdown regulator and see if that helps.

TomGeorge

Hi,
What sort of 9V battery?

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

Thanks.. Tom... :)
Everything runs on smoke, let the smoke out, it stops running....

usenetfan

It's very simple.

Arduino with sensor shield.

Servo connected to pin 9 on the shield.

Regular 9V two pin battery https://en.wikipedia.org/wiki/Nine-volt_battery

The code is this and it alternates between full speed both ways on the analog servo:

#include <Servo.h>                           // Include servo library
Servo myTransportServo;
int speed = 1600;
int step = 25;

void setup() {
  myTransportServo.attach(2);               // Attach transport servo signal to pin2
    Serial.begin(9600);
}

void loop() {
    rollit(speed);
    delay(10);
    if (speed > 2000){
      step = -25;
    }
    if (speed < 1000){
      step = +25;
    }
   
    Serial.print("Speed: ");
    Serial.println(speed);
    speed = speed + step;
}

void rollit (int rollspeed){
   myTransportServo.writeMicroseconds(rollspeed);
   delay (500);
   
}

In the videos you have a sliding 10Kohm potentiometer which is connected to GND, +5V and Analog pin 0. 

TomGeorge

Hi,


Please read the first post in any forum entitled how to use this forum.
http://forum.arduino.cc/index.php/topic,148850.0.html then look down to item #7 about how to post your code.
It will be formatted in a scrolling window that makes it easier to read.


This battery is for very small devices such as smokedetectors and DMMs.
It will not be able to provide the current needed to move your servo.

Tom... :o
Everything runs on smoke, let the smoke out, it stops running....

usenetfan

Sorry about the formatting.

I have tried a 12V / 2A power supply too, to no avail.

TomGeorge

#27
Dec 01, 2017, 12:24 pm Last Edit: Dec 01, 2017, 12:28 pm by TomGeorge
Sorry about the formatting.

I have tried a 12V / 2A power supply too, to no avail.
Is your servo rated for 12V?
Are you using the 5V pin on the Arduino to power the servo?
If so, then this is a definite NO NO, the 5V pin cannot supply the current needed by the servo.

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

Thanks.. Tom... :)
Everything runs on smoke, let the smoke out, it stops running....

Johan_Ha

Read the voltage over your servo while it is turning.
____________________
- One day my stepper motor driver works like a charm. No task is too big for it and I can do anything with it. Next day it refuses to work and even the tiniest motor blows its fuse. What's wrong with it?
- It's bipolar.

usenetfan

I can read the voltages on Monday, but these pictures show you the circuit I use in the attempt to just cycle between speeds as in the code I posted before. In the potentiometer circuit, I just read the value 0-1023 from the pot, and map that to the 1000-2000 microseconds that I send to the servos, so it does not play a part in this problem.

Go Up