Лабораторные работы    Технологии+Бизнес

Датчик движения
Цель работы: изучить датчик звука

Задачи:
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 мс.


В результате получаем следующий код:




Задание: исправить код программы так, чтобы светодиод моргал при каждом втором обнаружении движения. 

 

 Лабораторные работы    Технологии+Бизнес