Простой ультразвуковой измеритель расстояния на Ардуино
Это очень простая конструкция, однако вы можете с успехом ее использовать на практике например для контроля уровня воды в водяном резервуаре, для других хозяйственных целей или просто в качестве занимательного эксперимента.

Принципиальная схема цифрового дальномера показана на рисунке ниже. за основу взята плата Arduino Uno, также потребуется ультразвуковой датчик HC-SR04, ЖК-дисплей от Nokia 5110 и источник питания на 9 В (можно использовать батарею или аккумулятор формата «Крона».

Принципиальная схема цифрового дальномера
Сборка и тестирование
- Подключите ЖК-дисплей, ультразвуковой датчик и аккумулятор к плате Arduino согласно электрической схеме.
- Загрузите и установите Arduino IDE с веб-сайта.
- Библиотеку для ультразвукового датчика скачайте по этой ссылке, а библиотеку для дисплея от Nokia 5110 LCD — по этой ссылке.
- Распакуйте библиотеки, скопируйте и вставьте их в папку Libraries Arduino IDE. Подключите Arduino к ПК / ноутбуку с помощью USB-кабеля.
- Запустите Arduino IDE. Создайте пустой скетч и скопируйте в него текст программы из этой статьи. Сохраните скетч. Выберите правильную плату и COM-порт в меню Tools. Скомпилируйте и загрузите код в Arduino.
- Правильно закрепите датчик на макете и направьте его на стену или какой-то крупный объект, расстояние которого вы хотите измерить. Когда датчик HC-SR04 обнаружит ультразвуковые сигналы, отражающиеся от объекта, вы увидите расстояние между датчиком и объектом на ЖК-дисплее. Кроме того вы увидите информацию о расстоянии в окне Serial Monitor в Arduino IDE. Расстояние отображается в сантиметрах.
Текст прошивки Arduino (Скетч):
#include <HCSR04.h>
UltraSonicDistanceSensor distanceSensor(6, 5);
// echo pin 5
// Trigger pin 6
#include <LCD5110_Graph.h>
LCD5110 myGLCD(8,9,10,11,12);
extern uint8_t SmallFont[];
extern uint8_t BigNumbers[];
long distance; //To get some accuracy in time and distance
void setup() {
Serial.begin (9600);
myGLCD.InitLCD();
}
void loop() {
// Now to get the distance
distance=distanceSensor.measureDistanceCm();
Serial.println(distance);
myGLCD.update();
myGLCD.setFont(SmallFont);
myGLCD.print("distance ",CENTER,10);
myGLCD.print("cm",RIGHT,40);
myGLCD.setFont(BigNumbers);
myGLCD.printNumF(distance,2,5,20);
delay(2000);
myGLCD.update();
}
Если использовать аккумулятор напряжением 9V как это показано на принципиальной схеме, устройство может работать автономно.