Sweeping Servo Distance Sensor
#include <Servo.h>
const int SERVO = 9;
const int IR = A0;
Servo myServo;
int dist1 = 0;
int val = 0;
void setup() {
myServo.attach(SERVO);
Serial.begin(9600);
}
void loop() {
for(int i = 0; i <= 180; i++){
dist1 = readDistance(i);
if (dist1 >= 100){
val++;
}
while (val == 1){
dist1 = analogRead(IR);
dist1 = map(dist1, 50, 500, 0, 255);
dist1 = constrain(dist1, 0, 255);
Serial.println(dist1);
//myServo.write(i);
if (dist1 <= 100){
val--;
}
}
}
delay(50);
for(int i = 180; i >= 0; i--){
dist1 = readDistance(i);
if (dist1 >= 100){
val++;
}
while (val == 1){
dist1 = analogRead(IR);
dist1 = map(dist1, 50, 500, 0, 255);
dist1 = constrain(dist1, 0, 255);
Serial.println(dist1);
//myServo.write(i);
if (dist1 <= 100){
val--;
}
}
}
delay(50);
}
int readDistance(int pos){
myServo.write(pos);
delay(25);
int dist = analogRead(IR);
dist = map(dist, 50, 500, 0, 255);
dist = constrain(dist, 0, 255);
Serial.println(dist);
return dist;
}
No comments:
Post a Comment