Go Down

Topic: Micro servo 9 grams (Read 4472 times) previous topic - next topic

Pierre7

Hello all

How to we calculate the wattage requirement for servos please?

Zapro

By using Ohms law.

Volts * Current = Watts.

// Per.

raschemmel

The penalty for forgetting OHM'S LAW is a PIE in the EIR.
P=I*E => I=P/E=> E= P/I
E= I*R => I= E/R=> R=E/I
Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,<br />DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Pierre7

#3
Apr 08, 2014, 02:57 am Last Edit: Apr 08, 2014, 02:58 am by Pierre7 Reason: 1
http://www.ebay.ca/itm/321233936721?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Ok now the RC servo has 3 pins and rated 5v  How do I measure the resistance please on what pins?
Bcc and gnd?

raschemmel

You can't measure the motor resisitance because it is connected to the driver but you can measure the servo current while it's running.
Google "how to measure current ".
Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,<br />DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Pierre7


You can't measure the motor resisitance because it is connected to the driver but you can measure the servo current while it's running.
Google "how to measure current ".



Sure. One can measure current however what if  the motor amperage exceed the arduino limitation of 40Ma per pin?  I guess  using a powerful power supply connected directly to the RC servo would then allow me to measure the current before connecting the RC servo to arduino. I am also guessing that to be safe, any type of motor controlled by arduino should be supplied with DC externally and not via arduino. I am new at this however need to research a bit more.

raschemmel

#6
Apr 08, 2014, 04:56 am Last Edit: Apr 08, 2014, 06:02 am by raschemmel Reason: 1
Maybe you should Google "arduino, using servos " before posting on the forum. You will find so many hits that show circuits with the servos running off the arduino. What you are failing to realize is that your comment here :

Quote
One can measure current however what if  the motor amperage exceed the arduino limitation of 40Ma per pin?  


is completely irrelevant because the servo is not powered by the I/O Pins, which, by the way, happen to be TTL signals
 http://en.wikipedia.org/wiki/Transistor%E2%80%93transistor_logic  
it is powered by the onboard regulator which can support up to 500mA off the USB connection and up to almost an amp off the external dc power jack.  (probably more like 800mA).  back to the I/O pins; The I/O pin sends a 5V TTL (0 to +5V) logic signal which is PWM (pulse width modulation) which is decoded (converted from PWM) to a position command) and the servo driver then drives the motor to a position. If you take your servo apart you will find a little tiny potentiometer in there. The servo is reading the voltage of wiper (basically an "val= analogRead(wiper);" and comparing the command that was received with the current postion. If they match, it won't move. If they differ, it will move in the direction necessary to make the difference= 0.

Long story short,  Here's too opinions
On the LOW side:
Quote
Hitec supreme 8 rx, about 15 ma was what I measured
CS21 microservo 5ma no load, 120 with rapid movement of servo

On the HIGH side:
Quote
Servo current draw varies based on load, model of servo, etc. A typical analog servo draws anywhere from 250-700mA.

As a rule of thumb, I use 700mA as a guide for the 9g parkflyer type (HXT900) servo's I use. So a 2A BEC is good for 3 servo's, and a 3A BEC will handle 4 servo's.  


Reference Info:
http://www.sengpielaudio.com/calculator-ohm.htm  
Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,<br />DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

zoomkat

Long story short, below is the basic way to externally wire a servo power supply (powering even a small 9g servo from the arduino 5v pin can cause issues). Also, if possible power the servo with 6v for better performance (although 5v might prevent the possible gear stripping). You can measure maximum current by using a multimeter in the servo power wire, and carefully have the servo slowly move until it encounters the internal stop and starts to stall. Below is some servo test code that can be used to carefully move the servo up against the internal stop.



Code: [Select]

// zoomkat 3-28-14 serial servo incremental test code
// using serial monitor type a character (s to increase or a
// to decrease) and enter to change servo position
// use strings like 90x or 1500x for new servo position
// for IDE 1.0.5 and later
// Powering a servo from the arduino usually *DOES NOT WORK*.

#include<Servo.h>
String readString;
Servo myservo;
int pos=1500; //~neutral value for continous rotation servo
//int pos=90;

void setup()
{
  myservo.attach(7, 400, 2600); //servo control pin, and range if desired
  Serial.begin(9600);
  Serial.println("serial servo incremental test code");
  Serial.println("type a character (s to increase or a to decrease)");
  Serial.println("and enter to change servo position");
  Serial.println("use strings like 90x or 1500x for new servo position");
  Serial.println();
}

void loop()
{
  while (Serial.available()) {
    char c = Serial.read();  //gets one byte from serial buffer
    readString += c; //makes the string readString
    delay(2);  //slow looping to allow buffer to fill with next character
  }
  if (readString.length() >0) {
    if(readString.indexOf('x') >0) {
      pos = readString.toInt();
    }

    if(readString =="a"){
      (pos=pos-1); //use larger numbers for larger increments
      if(pos<0) (pos=0); //prevent negative number
    }
    if (readString =="s"){
      (pos=pos+1);
    }

    if(pos >= 400) //determine servo write method
    {
      Serial.println(pos);
      myservo.writeMicroseconds(pos);
    }
    else
    {   
      Serial.println(pos);
      myservo.write(pos);
    }
  }
  readString=""; //empty for next input
}



Google forum search: Use Google Search box in upper right side of this page.
Why I like my 2005 Rio Yellow Honda S2000  https://www.youtube.com/watch?v=pWjMvrkUqX0

raschemmel

Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,<br />DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Pierre7

Yes. Thank you such much for all your help. I find this website helpful in getting  some guidance to get started on a topic. This is why I first need to ask the question to get started in the right direction. Then I can rely on Google for the finer details. Much appreciated.
XD

MarkT

#10
Apr 08, 2014, 02:13 pm Last Edit: Apr 08, 2014, 02:16 pm by MarkT Reason: 1


You can't measure the motor resisitance because it is connected to the driver but you can measure the servo current while it's running.
Google "how to measure current ".



Sure. One can measure current however what if  the motor amperage exceed the arduino limitation of 40Ma per pin?


That's 40 mA, I don't know what an 'a' is, but 40,000,000 of them can't be right!
The unit is "ampere" or "amp", symbol "A", case matters in both.  "Ampere" is the
name of the man the unit "ampere" was named from (apologies for lack of
accents!)
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

Pierre7




You can't measure the motor resisitance because it is connected to the driver but you can measure the servo current while it's running.
Google "how to measure current ".



Sure. One can measure current however what if  the motor amperage exceed the arduino limitation of 40Ma per pin?


That's 40 mA, I don't know what an 'a' is, but 40,000,000 of them can't be right!
The unit is "ampere" or "amp", symbol "A", case matters in both.  "Ampere" is the
name of the man the unit "ampere" was named from (apologies for lack of
accents!)


Thanks for the clarification  :smiley-fat:

retrolefty

Also keep in mind that the actual current drawn by a servo is variable and depends on several things:

Model/size of the servo
Mechanical load attached to the servo
travel distance commanded to move.

The separate power supply or batteries used to power the servo(s) should be sized for the worst case condition that the servo(s) will be subjected to. A current 'budget' of 1 amp current capacity per servo is a good starting point.


Pierre7


Also keep in mind that the actual current drawn by a servo is variable and depends on several things:

Model/size of the servo
Mechanical load attached to the servo
travel distance commanded to move.

The separate power supply or batteries used to power the servo(s) should be sized for the worst case condition that the servo(s) will be subjected to. A current 'budget' of 1 amp current capacity per servo is a good starting point.




For sure, I got my eyes on a 12V power supply for my starter project. They are available at 2A, 5A and 10A

raschemmel

Look at the specs for the servo. I think anything more than 6V will fry the servo

Quote

Weight (Gram)Operating Voltage SpeedTorque (Oz. In.)Torque (Kg. CM)Dimension (mm)   GearsBearings
                   9                 4.8V - 6V                  0.12s/60°   ?21               ?1.5                       23X12X21.5    Plastic      No


Also, metal gear servos can draw more current in lockup/stall
Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,<br />DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Go Up