I purchased several Chinese clones of Hitec HS-55 micro servos on eBay for $2.50 each, including postage. They are called "Micro 9g servo". I tested them using a simple sketch (see below) that uses a potentiometer to set the servo position. I posted a video on YouTube of its operation. My conclusion - pretty good for the money!
Watch YouTube at:
http://youtu.be/FPe0SpAm15A#include <Servo.h>
/*
Demonstration of a Micro 9g RC servo
Edward Comer
This code serves no useful purpose other then to demo a servo.
*/
// Global variables
char buffer [50];
Servo myservo; // create servo object to control a servo
int potValue; //variables to hold A2 input
int iOldPos, iNewPos = 0; // servo position
int potPin = 2; //potentiometer connected to A2
void setup()
{
// Establish Arduino pin usages
pinMode(13,OUTPUT); // Use the built-in LED
//Initialize serial port
Serial.begin(9600);
Serial.println("Servo Demo");
// Initialize servo
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
potValue = analogRead(potPin); // read the value of the potentiometer
iNewPos = potValue/5; // convert to quasi-degrees (alter per your potentiometer)
if(iOldPos != iNewPos) { // Issue command only if desired position changes
digitalWrite(13, HIGH); // set the LED on
iOldPos = iNewPos;
Serial.print("Pot = "); // Human readable verification on serial port
Serial.print(potValue); // View full range from 0 - 1024 in Serial Monitor
Serial.print(", ~degrees = ");
Serial.println(iNewPos);
// Set shaft angle in degrees from approximately 0 to 180 (limited by integer math)
myservo.write(iNewPos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
//delay(1000); // slow to human speeds
digitalWrite(13, LOW); // set the LED off
}
}