Sunday, October 7, 2018

day 12 10/4/18

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