В этом эксперименте мы рассмотрим ультразвуковой датчик для измерения расстояния и создадим проект вывода показаний датчика на экран ЖКИ WH1602.
Необходимые компоненты:
• контроллер Arduino UNO R3;
• плата для прототипирования;
• ультразвуковой датчик расстояния HC-SR04;
• пьезоизлучатель;
• резистор 100 Ом;
• сервопривод;
• провода папа-папа.
• внешний блок питания +5 В.
Ультразвуковой дальномер HC-SR04 (рис. 23.1) – это помещенные на одну плату приемник и передатчик ультразвукового сигнала. Излучатель генерирует сигнал, который, отразившись от препятствия, попадает на приемник. Измерив время, за которое сигнал проходит до объекта и обратно, можно оценить расстояние. Кроме самих приемника и передатчика, на плате находится еще и необходимая обвязка, чтобы сделать работу с этим датчиком простой и удобной.

Характеристики ультразвукового дальномера HC-SR04:
• измеряемый диапазон – от 2 до 500 см;
• точность – 0,3 см;
• угол обзора – < 15°;
• напряжение питания – 5 В.
Датчик имеет 4 вывода стандарта 2,54 мм:
• VCC – питание +5 В;
• Trig (T) – вывод входного сигнала;
• Echo (R) – вывод выходного сигнала;
• GND – земля.
Последовательность действий для получения данных такова:
• подаем импульс продолжительностью 10 мкс на вывод Trig;
• внутри дальномера входной импульс преобразуется в 8 импульсов частотой 40 кГц и посылается вперед через излучатель T;
• дойдя до препятствия, посланные импульсы отражаются и принимаются приемником R, в результате получаем выходной сигнал на выводе Echo;
• непосредственно на стороне контроллера переводим полученный сигнал в расстояние по формуле:
–– ширина импульса (мкс) / 58 = дистанция (см);
–– ширина импульса (мкс) / 148 = дистанция (дюйм).
В нашем эксперименте мы создадим звуковую сигнализацию, которая будет включаться при приближении к плате Arduino на расстояние меньше 1 м. Датчик размещен на кронштейне вращающейся сервы и контролирует пространство с углом обзора 180°. Если датчик обнаруживает объект в радиусе 1 м, подается звуковой сигнал на пьзоизлучатель, вращение сервы прекращается. Схема соединения элементов представлена на рис. 23.2.

Необходимые компоненты:
• контроллер Arduino UNO R3;
• плата для прототипирования;
• ультразвуковой датчик расстояния HC-SR04;
• пьезоизлучатель;
• резистор 100 Ом;
• сервопривод;
• провода папа-папа.
• внешний блок питания +5 В.
Ультразвуковой дальномер HC-SR04 (рис. 23.1) – это помещенные на одну плату приемник и передатчик ультразвукового сигнала. Излучатель генерирует сигнал, который, отразившись от препятствия, попадает на приемник. Измерив время, за которое сигнал проходит до объекта и обратно, можно оценить расстояние. Кроме самих приемника и передатчика, на плате находится еще и необходимая обвязка, чтобы сделать работу с этим датчиком простой и удобной.

Характеристики ультразвукового дальномера HC-SR04:
• измеряемый диапазон – от 2 до 500 см;
• точность – 0,3 см;
• угол обзора – < 15°;
• напряжение питания – 5 В.
Датчик имеет 4 вывода стандарта 2,54 мм:
• VCC – питание +5 В;
• Trig (T) – вывод входного сигнала;
• Echo (R) – вывод выходного сигнала;
• GND – земля.
Последовательность действий для получения данных такова:
• подаем импульс продолжительностью 10 мкс на вывод Trig;
• внутри дальномера входной импульс преобразуется в 8 импульсов частотой 40 кГц и посылается вперед через излучатель T;
• дойдя до препятствия, посланные импульсы отражаются и принимаются приемником R, в результате получаем выходной сигнал на выводе Echo;
• непосредственно на стороне контроллера переводим полученный сигнал в расстояние по формуле:
–– ширина импульса (мкс) / 58 = дистанция (см);
–– ширина импульса (мкс) / 148 = дистанция (дюйм).
В нашем эксперименте мы создадим звуковую сигнализацию, которая будет включаться при приближении к плате Arduino на расстояние меньше 1 м. Датчик размещен на кронштейне вращающейся сервы и контролирует пространство с углом обзора 180°. Если датчик обнаруживает объект в радиусе 1 м, подается звуковой сигнал на пьзоизлучатель, вращение сервы прекращается. Схема соединения элементов представлена на рис. 23.2.

Рис. 23.2. Схема соединения элементов для звуковой сигнализации
При написании скетча будем использовать библиотеку Servo для работы с сервоприводом и библиотеку Ultrasonic.
Для работы Arduino с датчиком HC-SR04 имеется готовая библиотека – Ultrasonic.
Конструктор Ultrasonic принимает два параметра: номера пинов, к которым подключены выводы Trig и Echo, соответственно:
Ultrasonic ultrasonic(12,13);
Содержимое скетча показано в листинге 23.1.
#include <Servo.h> // подключение библиотеки Servo
Servo servo1;
const int pinServo=8; // пин для подключения сервопривода
int pos = 0; // переменная для хранения позиции сервопривода
int dir =1; // направление перемещения сервопривода
// Выводы для подключения HC-SR04 Trig - 12, Echo - 13
Ultrasonic ultrasonic(12, 13);
float dist_cm; // переменная для дистанции, см
// подключить динамик к pin 9
int speakerPin = 9;
void setup()
{
// подключить переменную servo1 к выводу pinServo1
servo1.attach(pinServo1);
pinMode(speakerPin, OUTPUT);
}
void loop()
{
servo1.write(pos); // поворот сервоприводов на полученный угол
delay(15); // пауза для ожидания поворота сервоприводов
float dist_cm = ultrasonic.Ranging(CM);
if(dist_cm<100 && dist_cm>20)
tone(speakerPin,); // включить пьезозуммер
else
{
tone(speakerPin,0); // отключить пьезозуммер
pos=pos+dir; // изменение переменной положения сервопривода
if(pos==0 || pos==180)
dir=dir*(-1); // изменение направления движения
}
}
Порядок подключения:
1. Закрепляем датчик расстояния HC-SR04 на сервоприводе.
2. Подключаем датчик HC-SR04, пьезозуммер и сервопривод к плате Arduino по схеме на рис. 23.2.
3. Загружаем в плату Arduino скетч из листинга 23.1.
4. Наблюдаем за циклическим перемещением сервопривода, при попадании объекта в поле зрения датчика HC-SR04 пьезозуммер издает сигнал, сервопривод останавливается, при исчезновении объекта из поля зрения датчика сервопривод возобновляет движение.
Листинги программ скачать