Sunday 29 May 2016

Arduino Servo Endurance Tester

How long do RC servos last ?

The RC servo manufacturers don't seem to publish any information about the operational life span of their servos. The life span of a servo will be influenced by the amount of loading, both static and dynamic. But there'is a fundamental limit which is the number of cycles with no load.
It seems that the quality of feedback potentiometer, rather than the drive train or motor is the limiting factor for the maximum number of cycles an RC servo can perform.

This is a design for a very simple RC Servo exerciser to cycle a servo 20 degrees either side of neutral about once per second. It includes an I2C LCD 2 line by 16 character display to display a count of cycles.
Servo Test Rig showing Arduino Nano, I2C LCD and Test Servo

The code for the Arduino is provided below:


#include "LiquidCrystal_I2C.h"
#include <Wire.h>
#include <Servo.h>

Servo myservo; // create servo object to control a servo
int pos = 0; // variable to store the servo position

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

long CycleCounter = 0;
int BasePosition = 90;

void setup()
{
 
// attach the servo on pin 9 to the servo object
  myservo.attach(9);

  // initialize the LCD
  lcd.begin();

  // Turn on the blacklight
  lcd.backlight();
  lcd.clear();
}

 void loop()
{
 
myservo.write(BasePosition); // tell servo to go to Base Position
  delay(400);
 

  myservo.write(BasePosition+20); // move + 20 degrees
  delay(300);

  myservo.write(BasePosition-20); // move - 20 degrees
  delay(300);

  CycleCounter++;
  lcd.setCursor(0, 0);
  lcd.print(CycleCounter);
}
 



The YouTube clip below shows the test rig in operation with an initial test using a low cost servo. It lasted for about 40,000 cycles before failure. I'll discuss the results of servo tests in another post.

No comments:

Post a Comment