В этой статье я покажу, как собрать несложную сигнализацию на Arduino .

К будущему устройству на этапе создания сразу были предъявлены следующие требования:

  • Изделие должно быть полностью работоспособным.

  • Должно отвечать требованиям техники безопасности.

  • Иметь презентабельный внешний вид.

  • Использование максимально доступных компонентов.

  • Максимальное снижение траты электрической энергии (работает от 1 пальчиковой солевой батарейки).

Для работы нам понадобиться: компьютер с установленным ПО Arduino IDE, RGB светодиод, ультразвуковой дальномер HC‑ SR04, микроконтроллер Arduino UNO, соединительные провода <<папа — папа>> и <<мама‑ папа>>, зуммер, 3 резистора 220 Ом, макетная плата.

Электронный конструктор
Электронный конструктор

Изначальной моей целью работы была — собрать сигнализацию на базе датчика движеният(HC‑ SR501), но так как данный модуль работал некорректно, я решил заменить этот компонент на ультразвуковой дальномерт(HC‑ SR04).

Ультразвуковой дальномер HC-SR04
Ультразвуковой дальномер HC-SR04

Пока мое устройство не было полностью готово, я не смотрел какие‑ либо авторские разработки похожих изделий да и в информационных источниках я не нашел ничего похожего на мою модель, следовательно, её можно считать моей авторской разработкой.

Далее были соединены детали сигнализации проводами для проверки работоспособности. Для проверки был написан короткий скетч, тестирующий работу каждого элемента.. Здесь я начал объединять компоненты: сначала я соединил ультразвуковой дальномер с зуммером и подобрал частоты пьезодинамика для полной схожести с мигалкой пожарной части.

Начало сборки
Начало сборки

Затем добавляем большой RGB‑светодиод:

Добавление светодиода
Добавление светодиода

Далее собранную модель сигнализации помещаем в корпус из конструктора LEGO:

Сборка сигнализации
Сборка сигнализации
Сборка сигнализации
Сборка сигнализации

И, наконец, была разработана электрическая схема соединения компонентов:

Схема соединения компонентов
Схема соединения компонентов

После проверки работоспособности компонентов в различных режимах, я начал разработку скетча управления моделью и его реализацию в Arduino IDE:

const int Trig = 7;//Вывод, к которому подключен контакт дальномера TRIG.

const int Echo = 6;//Вывод, к которому подключен контакт дальномера ECHO.

const int BUZ = 10;

const int LED = 12;//Вывод, к которому подключен контакт пьезодинамик(зуммер).

unsigned int time_us1 = 0;//Переменная для хранения времени получения отклика.

unsigned int distance_cm1 = 0;//Переменная для хранения расстояния.

void setup() {

pinMode(Trig, OUTPUT);//Установка вывода TRIG в режим выхода.

pinMode(Echo, INPUT);//Установка вывода ECHO в режим входа.

Serial.begin(9600);//Установка скорости соединения.

pinMode(BUZ, OUTPUT);//Установка вывода зуммера в режим выхода..

pinMode(LED, OUTPUT);

}

 void loop() {

 noTone(BUZ);//Выключить зуммер.

 digitalWrite(Trig, HIGH);//Подача ультразвукового сигнала с датчика.

 delayMicroseconds(10);//Подача сигнала длится 10 микросекунд.

 digitalWrite(Trig, LOW);//Прекратить подачу сигнала.

 time_us1 = pulseIn(Echo, HIGH);// Определение длительности импульса.

 distance_cm1 = time_us1/58;//Пересчёт в сантиметры. Коэффициент пересчёта 58.

 

 Serial.println(distance_cm1);//Вывод на монитор порта расстояния.

 

 delay(50);//Небольшая задержка.

//Если произошло зависание, попытаться переназначить режим вывода , к которому

//подключен контакт ECHO.

 if(distance_cm1 == 0){

   pinMode(Echo, OUTPUT);

   digitalWrite(Echo, LOW);

   pinMode(Echo, INPUT);

   return;

 }

  if ((distance_cm1)<195){//Если расстояние меньше 195 см...

     {

       tone(BUZ, 500);//Подать звук частотой 500 Гц.

       delay(100);//Задержка 250 микросекунд.

       tone(BUZ,1000);//Подать звук частотой 1000 Гц.

       delay(100);//Задержка 250 микросекунд.

       digitalWrite(LED, HIGH);//Включить RGB-диод.

       delay(200);}//Задержка 200 микросекунд.

 }

else(digitalWrite(LED, LOW));//Иначе Не включать светодиод.

 }

Окончательная модель выглядит так:

     Собранная сигнализация
Собранная сигнализация

Принцип работы изделия прост: оно размещается напротив входной двери на расстоянии 2 метра. Когда кто‑то заходит, это сразу замечает ультразвуковой дальномер, запускает мигалку и

включает звук. Данная сигнализация реагирует даже на очень небольшие объекты и напоминает РЛС.

При выполнении данной работы были выполнены следующие задачи:

  • Была изучена история создания Arduino.

  • Была изучена структура электронного конструктора Arduino.

  • Были изучены особенности программирования аппаратной платформы Arduino.

  • Была сконструирована сигнализация на базе Arduino совместимой аппаратной платформе.

Таким образом, поставленные цели и задачи выполнены. В качестве дальнейшего направления подойдет любое улучшение данной модели, а также множество разнообразных проектов разного уровня сложностей.

Литература
Литература