В прошлых уроках мы занимались в основном простыми схемами без применения крутых датчиков.Сегодня мы наверстаем это.Сделаем ультразвуковой дальномер с дистанцией до 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 градусов.Выходя из диапазона вы становитесь невидимкой.

@Элемик