Учимся работать с датчиком движения HC-SR05

Давайте научимся фиксировать  движение в комнате с помощью датчика движения. Мы соберем схему, используя макет, и напишем простой код Arduino для управления светодиодом в зависимости от срабатывания датчика. Мы будем использовать Tinkercad Circuits для имитации схемы, чтобы вы могли без каких-либо компонентов построить схему и изучить работу датчика.

Вы, вероятно, уже научились использовать кнопку с цифровым вводом Arduino, поэтому мы будем использовать эти навыки на этом уроке. Датчик движения отправляет сигнал HIGH и LOW, аналогично кнопке..

PIR расшифровывается как  Passive Infra Red, технология,которая пассивно обнаруживает уровни инфракрасного света . Белый купол — это линза, расширяющая поле зрения ИК-детектора. Датчик сообщает сигнал LOW по умолчанию, считывает количество входящего инфракрасного света, а затем выдает сигнал HIGH в течение определенного периода времени.

Компоненты плата Arduino Uno, USB-кабель, паяльник, светодиод, резистор (любое значение от 100 до 1000), датчик движения PIR и соединительные провода.

Если у вас нету какого либо из компонентов, можно эмулировать схему в tinkercad circuits.

 

Cобираем схему

Перетащите Arduino Uno и макетную плату с панели компонентов на  рабочую плоскость.

Подключите провода(+) и (-) к Arduino 5V и заземлению (GND) соответственно, щелкнув, чтобы создать провода. Подключите светодиод к двум разным строкам, чтобы катод (отрицательная, более короткая нога) соединялся с одной стойкой резистора (от 100 до 150 Ом). Теперь подключим  другую резисторную ногу к земле. Светодиодный анод (положительный, длинный) к контакту 13 Arduino.

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

Для тех, у кого есть из чего, собираем физическую схему.

Для программирования вашего физического Arduino Uno вам необходимо установить Arduino IDE  (или плагин для веб-редактора), а затем открыть его. Подключите цепь Arduino Uno, подключив компоненты и провода в соответствии с соединениями, показанными здесь в схемах Tinkercad.

Прошивку вы можете найти ниже в статье или в папке с примерами Arduino, перейдя к File -> Examples -> 02.Digital -> Button (с другим именем переменной, но в остальном это одно и то же).

Подключите USB-кабель и выберите плату и порт в меню «Инструменты».Загрузите код и посмотрите, как ваш светодиод загорается, когда вы двигаетесь перед датчиком!

 

Регулировка датчика движения

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

 

Программирование датчика движения в Arduino IDE

Когда редактор кода открыт, вы можете щелкнуть выпадающее меню слева и выбрать «Текст», чтобы открыть код Arduino.

int sensorState = 0;
Перед setup () мы создаем переменную для хранения текущего состояния датчика. Он называется int, потому что это целое число или любое целое число (хотя мы будем использовать только значения 0 и 1, LOW и HIGH).

void setup()
{
 pinMode(2, INPUT);
 pinMode(13, OUTPUT);
 Serial.begin(9600);
}

Внутри настройки контакты сконфигурированы с помощью функции pinMode (). Контакт 2 сконфигурирован как вход, поэтому мы можем «слушать» электрическое состояние датчика. Контакт 13 сконфигурирован как выход для управления светодиодом. Чтобы отправлять сообщения, Arduino открывает новый канал последовательной связи с Serial.begin (), который принимает аргумент скорости передачи (какая скорость для связи), в данном случае 9600 бод в секунду.

void loop()
{
 // прочитайте состояние датчика / цифрового входа

 sensorState = digitalRead (2);   

 

Все, что после набора косых черт // является комментарием, просто для нас, людей, читающих и не включенных в программу, когда Arduino запускает ее.

В основном цикле функция, называемая digitalRead (); проверяет состояние штыря 2 (который будет либо HIGH, либо LOW) и сохраняет это состояние в переменной sensorState, которую мы создали в верхней части.

// проверяем, есть ли 5 вольт на выходе датчика. если это так, подаем 5 вольт на светодиод                                                                                                                                                                   

if (sensorState == HIGH) {
   digitalWrite(13, HIGH);
   Serial.println(«Sensor activated!»);
 } else {
   digitalWrite(13, LOW);
 }
 delay(10); //задержка, чтобы ничего не перегрузить

}

Ниже двух строк комментариев является оператором if, который проверяет, является ли sensorState HIGH (== является оператором сравнения,  не путать с =, который является оператором присваивания). Если условие выполнено, встроенный светодиод установлен HIGH (включен). Если нет, вместо этого выполняется код, содержащийся внутри else {: встроенный светодиод установлен LOW (выключен). Если утверждения могут существовать в одиночку или с одним или несколькими инструкциями else.

 

Далее попробуйте

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

Пишите в комментарии если что-то пропустил. Интересных вам проектов!

Перевод — https://www.instructables.com/id/PIR-Motion-Sensor-With-Arduino-in-Tinkercad/

 

Загрузка ...
The Robot
Adblock
detector