Лабораторные работы Технологии+Бизнес
Датчик движения
Цель работы: изучить датчик звука
Задачи:
1. Собрать установку
2. Написать программу, управляющую датчиком движения
3. Выполнить все задания
Датчик движения - это устройство, определяющее наличие перемещения в видимой ему зоне.
В данной лабораторной работе при срабатывании датчика будет загораться светодиод, при отсутствии движения - светодиод будет гаснуть. Перед началом работы необходимо произвести калибровку датчика.
Задание: какие виды датчиков движения бывают? Опишите принципы их работы, достоинства и недостатки каждого из них.
Сборка лабораторной установки
Схема лабораторной установки:
Подготовим все необходимые нам детали.
Компоненты лабораторной установки:
1. Контроллер
2. Макетная плата
3. Датчик движения
4. Резистор 220 Ом
5. Провода
6. Светодиод
Алгоритм выполения работы:
1. Подключаем светодиод:
а) анод соединяем с выводом №12
б) катод светодиода подключаем к земле через резистор 220 Ом;
2. Подключаем датчик:
а) соединим выход с пином №8
б) соединим "+" с 5v
б) соединим "-" с GND
Работа в среде программирования Arduino IDE
Напишем код программы.
Зададим время для калибровки датчика.
Зададим время принятия сигнала "нет движения" (LOW).
Зададим задержку, после которой флаг отсутствия движения снимается.
Зададим флаг оповещения о движении.
Зададим флаг о запоминаниии времени.
Определим пины для датчика движения и светодиода. В нашем случае это 8 и 12 соответственно.
В функции setup() пин датчика движения устанавливаем на вход, а пин светодиода - на выход, а также установим подачу на пин датчика движения 0В.
Откалибруем датчик. Во время калибровки светодиод мигает.
После окончания калибровки светодиод гаснет. Ждем 50 мс.
Переходим к функции loop().
Если движение обнаружено и до этого его не было, подаем сигнал о движении, меняем флаг оповещения о движении noShow, ждем 50 мс и присваиваем флагу takeTime значение true.
Если движение не обнаружено, но оно было ранее, сохраняем время окончания движения и присваиваем флагу takeTime значение false. Если время отсутствия дижения превысило паузу, то светодиод гаснет, присваиваем флагу noShow значение true и ждем 50 мс.
В результате получаем следующий код:
Задание: исправить код программы так, чтобы светодиод моргал при каждом втором обнаружении движения.
Лабораторные работы Технологии+Бизнес