#define TRIG_PIN 2
#define ECHO_PIN 3
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// Отправляем сообщение при старте, чтобы точно знать, что плата жива
Serial.println("Система измерения расстояния запущена!");
Serial.println("Ожидание данных...");
}
void loop() {
// 1. Посылаем сигнал
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// 2. Читаем эхо с ограничением по времени (защита от зависания)
long duration = pulseIn(ECHO_PIN, HIGH, 30000);
// 3. Считаем и выводим обычным текстом
if (duration > 0) {
float distance = duration / 58.0;
Serial.print("Текущее расстояние: ");
Serial.print(distance);
Serial.println(" см");
} else {
Serial.println("Ошибка: датчик не видит препятствие");
}
// 4. Задержка ровно 3 секунды, как написано в твоем ТЗ
delay(3000);
}
Loading
st-nucleo-l031k6
st-nucleo-l031k6