Throwing the code into a bag of runes, a quick shake, compress and dumping it back here ...
#include <Servo.h>
// --- USEFULL ENUM'S (USES NO RUNTIME MEMORY)
enum
{
pinServoOne = 7
, pinServoTwo = 8
, pinWHAT = 3
};
// --- MACROS
#define SERVO_ONE_STEP (2) // 2 degrees
#define SERVO_TWO_STEP (5) // 5 degrees
// --- GLOBALS
Servo servoOne;
Servo servoTwo;
int angleServoOne;
int angleServoTwo;
// --- REQUIRED CODE
void loop()
{
if ( Serial.available() )
{
switch ( toupper(Serial.read()) )
{
case 'D':
angleServoOne = ((angleServoOne > SERVO_ONE_STEP) ? (angleServoOne - SERVO_ONE_STEP) : 0);
Serial.println("LEFT");
Serial.println(angleServoOne);
servoOne.write(angleServoOne);
break;
case 'A':
angleServoOne = ((angleServoOne < 180 - SERVO_ONE_STEP) ? (angleServoOne + SERVO_ONE_STEP) : 180);
Serial.println("RIGHT");
Serial.println(angleServoOne);
servoOne.write(angleServoOne);
break;
case 'W':
angleServoTwo = ((angleServoTwo > SERVO_TWO_STEP) ? (angleServoTwo - SERVO_TWO_STEP) : 0);
Serial.println("UP");
Serial.println(angleServoTwo);
servoTwo.write(angleServoTwo);
break;
case 'S':
angleServoTwo = ((angleServoTwo < 150 - SERVO_TWO_STEP) ? (angleServoTwo + SERVO_TWO_STEP) : 150);
Serial.println("DOWN");
Serial.println(angleServoTwo);
servoTwo.write(angleServoTwo);
break;
case 'F':
digitalWrite(pinWHAT, HIGH);
delay(150);
digitalWrite(pinWHAT, LOW);
break;
default:
digitalWrite(pinWHAT, LOW);
}
}
}
void setup()
{
Serial.begin(9600);
pinMode(pinWHAT, OUTPUT);
// center the servo
angleServoOne = 90;
servoOne.attach(pinServoOne);
servoOne.write(angleServoOne);
angleServoTwo = 75;
servoTwo.attach(pinServoTwo);
servoTwo.write(angleServoTwo);
}
I don't know why I did it either!