#include <Servo.h>
const int trigger=3;
const int echo=2;
const int nAngles = 5;
Servo xServo;
const int angles [nAngles] = {0, 45, 90, 135, 180};
float ranges [nAngles];
void setup()
{
Serial.begin(9600);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
xServo.attach(10);
}
void loop()
{
for (int i = 0; i < nAngles; ++i) {
xServo.write (angles [i]);
delay (500);
ranges [i] = getRange ();
delay(50);
}
for (int i = 0; i < nAngles; ++i) {
Serial.println(ranges [i]);
}
//initial value
int closestRange = ranges[0];
int closestRangeIndex = 0;
for (int i = 0; i < nAngles; i++) {
if (closestRange > ranges[i]) {
closestRange = ranges[i];
closestRangeIndex = i;
}
}
xServo.write (angles [closestRangeIndex ]);
delay (500);
}
float getRange ()
{
digitalWrite(trigger,LOW);
delayMicroseconds(5);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
return pulseIn(echo,HIGH) * 0.0001657;
}
no error in compiling, but i don't know why. there's an error in uploading.
What are you getting printed from this?
~the ranges of the distance sensor..