#include <Servo.h>
#define TRIG_PIN 8
#define ECHO_PIN 7
#define SERVO_PIN 9
Servo myServo;
void setup() {
Serial.begin(9600);
myServo.attach(SERVO_PIN);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.println("Angle,Distance(cm)");
}
long measureDistance() {
// посылаем ультразвуковой импульс
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// измеряем длительность импульса на ECHO
long duration = pulseIn(ECHO_PIN, HIGH);
// расстояние в см
long distance = duration * 0.034 / 2;
return distance;
}
void loop() {
// вращаем сервопривод от 0 до 180 градусов
for (int angle = 0; angle <= 180; angle++) {
myServo.write(angle);
delay(15); // ждём, пока сервопривод повернётся
long distance = measureDistance();
Serial.print(angle);
Serial.print(",");
Serial.println(distance);
}
// вращаем обратно от 180 до 0 градусов
for (int angle = 180; angle >= 0; angle--) {
myServo.write(angle);
delay(15);
long distance = measureDistance();
Serial.print(angle);
Serial.print(",");
Serial.println(distance);
}
}