Ультразвуковой датчик HC - SR04 - это очень доступный датчик близости / дистанции, который в основном используется для избегания препятствий в различных робототехнических проектах. Он фактически дает вашему Arduino глаза / пространственное осознание и может предотвратить столкновение или падение вашего робота с таблицы. Также он использовался в приложениях для башен, измерении уровня воды и даже как датчик парковки. Этот простой проект будет использовать датчик HC - SR04 с Arduino и скетчом Processing для более интерактивного отображения на экране вашего компьютера.
Необходимое Оборудование
Плата Arduino UNO * 1
Ультразвуковой Датчик * 1
Перемычки * 4
USB - кабель * 1
Спецификация
• Рабочее напряжение DC 5V
• Рабочий ток 15mA
• Рабочая частота 40KHz
• Максимальное расстояние 4м
• Минимальное расстояние 2см
• Угол измерения 15 градусов
• Триггерный входной сигнал 10мкс TTL импульс
• Эхо выходной сигнал вход TTL уровень сигнала и диапазон пропорционален
Подключение Схемы
Пример Кода
//////////////////////////////////////////////////////////
//Ультразвуковой
#define echoPin 7 // Эхо пин
#define trigPin 8 // Триггер пин
#define LEDPin 13 // Светодиод на плате
int maximumRange = 200; // Максимально необходимое расстояние
int minimumRange = 0; // Минимально необходимое расстояние
long duration, distance; // Продолжительность используется для расчета расстояния
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Использовать индикатор светодиода (если требуется)
}
void loop() {
/ Следующий цикл trigPin/echoPin используется для определения
расстояния до ближайшего объекта, отражая звуковые волны от него. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// Расчет расстояния (в см) на основе скорости звука.
distance = duration / 58.2;
if (distance >= maximumRange || distance <= minimumRange) {
/* Отправить компьютеру отрицательное число и включить светодиод
для указания "вне диапазона" /
Serial.println("-1");
digitalWrite(LEDPin, HIGH);
}
else {
/*Отправить расстояние на компьютер через Серийный протокол и
выключить светодиод для указания успешного считывания. */
Serial.println(distance);
digitalWrite(LEDPin, LOW);
}
// Задержка 50 мс перед следующим считыванием.
delay(50);
}
//////////////////////////////////////////////////////////
Результат Теста
После загрузки кода на плату откройте серийный монитор. Когда вы разместите объект перед ультразвуковым датчиком (на близком и дальнем расстоянии), он будет обнаруживать расстояние до объекта. Значение будет отображаться на мониторе.