I'm trying to control a single motor.

If I press 'a', then motor 1 should turn to 0, if I press 's', then motor 1 should turn to 180

#include <Servo.h>

char key = 0;
const unsigned int BAUD_RATE = 9600;

Servo Servo_0;

void setup()



 // Serial.println("      Arduino Serial Servo Control");
 // Serial.println("Press < or > to move, spacebar to center");
 // Serial.println();


a - 97
s - 115
d - 100
f - 102

void loop() {

      key = Serial.read();
      Serial.print("I received: ");
      Serial.println(key, DEC);

     if(key == byte(97))

       Serial.print("Turning Motor 1 to 0 deg");

     else if(key==byte(115))
       Serial.print("Turning Motor 1 to 180 deg");



But what is happening is that the motors are barely turning after I enter the key onto the Arduino monitor interface. Can anyone diagnose as to what might be happening?

  • Why not if (key == 'a')? – Ignacio Vazquez-Abrams Sep 7 '14 at 4:16
  • Hi, I've changed my code to that statement but it still doesn't turn as intended – Carlos - the Mongoose - Danger Sep 7 '14 at 4:22
  • You say motors, but do you mean servos? If you put in some servo write commands in setup(), worth a 5 second delay after each do they move? – dan_linder Sep 7 '14 at 4:55
  • Does anyone know if I must use "Processing" in order to activate keyboard control?? – Carlos - the Mongoose - Danger Sep 7 '14 at 5:15

The problem I see is that your servo is attached to pin 0.

Pins 0 and 1 are used by arduino unos and megas for serial communication, so you can't output to a motor and send/receive serial at the same time. Try moving the servo to pin 3 and see what happens.

In response to your comment, any character sent from any terminal (or other piece of hardware) will work; you do not need to use Processing to communicate with an arduino.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.