Wednesday, August 6, 2014

CODE: Digital Servo Control

#include <Servo.h>

Servo rightleft;

int right = 7;
int left = 8;
int right_state;
int left_state;
int servo_val;

void setup()
{
  Serial.begin(9600);
  pinMode(right, INPUT);
  pinMode(left, INPUT);
  rightleft.attach(6);
  servo_val = rightleft.read();
}

void loop()
{
  right_state = digitalRead(right);
  left_state = digitalRead(left);
 
  if(right_state == HIGH)
  {
    rightleft.write(servo_val - 1);
    delay(14);
    servo_val = rightleft.read();
    Serial.println("Right HIGH");
  }
 
  if(left_state == HIGH)
  {
  rightleft.write(servo_val + 1);
  delay(14);
  servo_val = rightleft.read();
  Serial.println("Left HIGH");
  }
}

1 comment:

  1. Hi

    I was wondering if anyone can help me. I am looking for code that will allow me to operate two servos.



    I would like to have it operated by a reed switch.

    Basic it would go like this.

    reed switch activated, servo 1 would turn 90 degrees & stop, then after the first servo has finished, servo 2 would then turn 90 degrees & stop. When the reed switch is activated again. Servo 2 would rotate back 90 degrees & stop, then servo 1 would rotate back 90 degrees & stop. I would also need the servos to rotate at say 150ms per position

    any help welcomed :)

    ps I have an UNO

    ReplyDelete