initial commit
This commit is contained in:
85
servo/servo.ino
Normal file
85
servo/servo.ino
Normal file
@@ -0,0 +1,85 @@
|
||||
#include <Servo.h>
|
||||
|
||||
/*
|
||||
Into Robotics
|
||||
*/
|
||||
|
||||
int servoPin = 9;
|
||||
int ldrPin = A0;
|
||||
Servo servo;
|
||||
|
||||
int servoAngle = 0; // servo position in degrees
|
||||
int currentAngle = 0;
|
||||
int targetAngle = 0;
|
||||
int ldrValue = 0;
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(9600);
|
||||
servo.attach(servoPin);
|
||||
pinMode(ldrPin, INPUT);
|
||||
}
|
||||
|
||||
|
||||
void loop()
|
||||
{
|
||||
//control the servo's direction and the position of the motor
|
||||
|
||||
/* servo.write(45); // Turn SG90 servo Left to 45 degrees
|
||||
delay(1000); // Wait 1 second
|
||||
servo.write(90); // Turn SG90 servo back to 90 degrees (center position)
|
||||
delay(1000); // Wait 1 second
|
||||
servo.write(135); // Turn SG90 servo Right to 135 degrees
|
||||
delay(1000); // Wait 1 second
|
||||
servo.write(90); // Turn SG90 servo back to 90 degrees (center position)
|
||||
delay(1000);*/
|
||||
|
||||
//end control the servo's direction and the position of the motor
|
||||
ldrValue = analogRead(ldrPin);
|
||||
Serial.println(ldrValue);
|
||||
delay(1000);
|
||||
if (ldrValue < 450){
|
||||
targetAngle = 0;
|
||||
if (currentAngle >= targetAngle){
|
||||
for(servoAngle = currentAngle; servoAngle >= targetAngle; servoAngle--) {
|
||||
servo.write(servoAngle);
|
||||
delay(20);
|
||||
}
|
||||
} else {
|
||||
for(servoAngle = currentAngle; servoAngle <= targetAngle; servoAngle++) {
|
||||
servo.write(servoAngle);
|
||||
delay(20);
|
||||
}
|
||||
}
|
||||
currentAngle = targetAngle;
|
||||
|
||||
} else if (ldrValue < 900 ) {
|
||||
targetAngle = 50;
|
||||
if (currentAngle >= targetAngle){
|
||||
for(servoAngle = currentAngle; servoAngle >= targetAngle; servoAngle--) {
|
||||
servo.write(servoAngle);
|
||||
delay(20);
|
||||
}
|
||||
} else {
|
||||
for(servoAngle = currentAngle; servoAngle <= targetAngle; servoAngle++) {
|
||||
servo.write(servoAngle);
|
||||
delay(20);
|
||||
}
|
||||
}
|
||||
currentAngle = targetAngle;
|
||||
} else {
|
||||
targetAngle = 140;
|
||||
if (currentAngle >= targetAngle){
|
||||
for(servoAngle = currentAngle; servoAngle >= targetAngle; servoAngle--) {
|
||||
servo.write(servoAngle);
|
||||
delay(20);
|
||||
}
|
||||
} else {
|
||||
for(servoAngle = currentAngle; servoAngle <= targetAngle; servoAngle++) {
|
||||
servo.write(servoAngle);
|
||||
delay(20);
|
||||
}
|
||||
}
|
||||
currentAngle = targetAngle;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user