В прошлых уроках мы занимались в основном простыми схемами без применения крутых датчиков.Сегодня мы наверстаем это.Сделаем ультразвуковой дальномер с дистанцией до 3 метров.Для эксперимента мы взяли ультразвуковой датчик HC-SR04
Соберем простую схему:
Запрограммируем следующим кодом:
int echoPin = 12; // Эхо живет на 12 пине
int trigPin = 13; // Сигнал живет на 13 пине
void setup() {
Serial.begin (9600); // Настраиваем порт.Необходимо всегда писать данную строку если хотите что либо выводить в консоль или монитор порта
pinMode(trigPin, OUTPUT); // настраиваем на выход
pinMode(echoPin, INPUT); // настраиваем на выход
}
void loop() {
int duration, cm; // обзываем
digitalWrite(trigPin, LOW); // Подаем низкий сигнал
delayMicroseconds(2); // Ждем
digitalWrite(trigPin, HIGH); // Подаем высокий сигнал.Тем самым имитируя подачу импульса на встречу с объектом.
delayMicroseconds(10); // Ждем
digitalWrite(trigPin, LOW); // Снова низкий сигнал.
duration = pulseIn(echoPin, HIGH); // Измеряем дистанцию по отбежавшим от объекта волнам.
cm = duration / 58;// Делим на 58.Необходимо для преобразования сигнала в сантиметры
Serial.print(cm); // Выводим на экран cm
Serial.println(" cm"); // Выводим на экран cm
delay(100);// Ждем 100 мили секунд
}
Если вы хотите подробнее рассмотреть принцип работы ультразвукового дальномера, то советую почитать http://robotosha.ru/electronics/how-works-ultrasound-..
Внимание.Радиус действия дальномера 15 градусов.Выходя из диапазона вы становитесь невидимкой.