In this one, servo is programmed to be controlled by two buttons, one turns servo to the left and the other one turns it to the right. When the servo is turning, corresponding LED will be switched on to indicate the operation.
Because Arduino has built-in library for controlling servo, which makes servo a really easy kit to use. In this project, I will be using a servo to turn the IR sensor around constantly.
This is the circuit Diagram:
This is the code:
// Oscar's Project // // There are 2 input buttons (turn left and right), when button is pressed, the servo turns and corresponding LED is lit up. #include <Servo.h> Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created int pos = 90; // variable to store the servo position const int maxDeg = 160; const int minDeg = 5; const int leftPin = 3; const int rightPin = 2; const int led1Pin = 6; // indicator const int led2Pin = 5; // indicator const int outputPin = 9; // pwm function will be disabled on pin 9 and 10 if using servo int leftPressed = 0; int rightPressed = 0; void setup() { myservo.attach(outputPin); // attaches the servo on pin 9 to the servo object pinMode(leftPin, INPUT); pinMode(rightPin, INPUT); pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); } void loop() { leftPressed = digitalRead(leftPin); rightPressed = digitalRead(rightPin); if(leftPressed){ if(pos < maxDeg) pos += 3; myservo.write(pos); // tell servo to go to position in variable 'pos' digitalWrite(led1Pin,HIGH); } else digitalWrite(led1Pin,LOW); if(rightPressed){ if(pos > minDeg) pos -= 3; myservo.write(pos); // tell servo to go to position in variable 'pos' digitalWrite(led2Pin,HIGH); } else digitalWrite(led2Pin,LOW); delay(15); // waits 15ms for the servo to reach the position } |