Подключение инфракрасного датчика движения (PIR) к микроконтроллеру PIC


Пироэлектрический инфракрасный датчик движения (PIR) используется для обнаружения движения человека или других "нагретых" тел. Поскольку сам PIR датчик при этом ничего не излучает (в отличие, к примеру, от датчика RCWL-0516), то его также называют пассивным датчиком движения. При обнаружении движения на выходном контакте PIR датчика формируется импульс с уровнем High.

В данной статье мы рассмотрим подключение инфракрасного датчика движения (PIR) к микроконтроллеру PIC16F877A. При обнаружении датчиком движения мы будем включать зуммер.

Внешний вид подключения инфракрасного датчика движения (PIR) к микроконтроллеру PIC

Ранее на нашем сайте мы рассматривали подключение PIR датчика к другим микроконтроллерам (платам):

Необходимые компоненты

  1. Микроконтроллер PIC16F877A (купить на AliExpress).
  2. PIR датчик движения (купить на AliExpress).
  3. Зуммер (купить на AliExpress).
  4. Держатель микросхем на 40 контактов (купить на AliExpress).
  5. Программатор PICkit 3 (купить на AliExpress).
  6. Кварцевый генератор 20 МГц (купить на AliExpress).
  7. Конденсаторы 33 пФ (2 шт.), 0,1 мкФ и 10 мкФ (купить на AliExpress).
  8. Резисторы 680 Ом, 560 Ом и 10 кОм (купить на AliExpress).
  9. Регулятор напряжения 7805 (купить на AliExpress).
  10. Светодиод любого цвета.
  11. Адаптер на 12 В.
  12. Перфорированная плата и соединительные провода.

Принцип работы PIR датчика

PIR датчик (пироэлектрический инфракрасный датчик) является пассивным устройством, поскольку он только улавливает инфракрасное излучение и не испускает его. Он обнаруживает любое изменение "тепла" и когда он это обнаруживает, он устанавливает на своем выходном контакте напряжение высокого уровня (HIGH).

Каждый нагретый объект создает излучение в инфракрасном диапазоне и человеческое тело не является исключением из этого правила. PIR датчик способен обнаруживать малейшие изменения излучения в инфракрасном диапазоне. При этом он способен обнаруживать не только нагретые тела (человека, кошку, собаку и т.д.), но и движущиеся "холодные" (не нагретые) тела, поскольку в результате трения о воздух движущееся тело нагревается и тем самым создает изменение излучения в инфракрасном диапазоне, которое и улавливается PIR датчиком.

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

Внешний вид PIR датчикаПироэлектрический датчик разделен на две половины. При отсутствии движения обе половины находятся в одинаковом состоянии, то есть каждая из них улавливает одинаковый уровень инфракрасного излучения. Как только кто-нибудь (что-нибудь) оказывается в поле действия одной из половин, уровень принимаемого ею инфракрасного излучения становится больше чем другой – PIR датчик реагирует на это и устанавливает на своем выходном контакте напряжение высокого уровня (high).

Пироэлектрический датчик накрыт пластиковой крышкой, содержащей массив линз Френеля, которые расположены таким образом, чтобы увеличиваться диапазон действия датчика. Более подробно про настройку PIR датчика можно прочитать в статье про его подключение к плате Arduino.

Схема проекта

Схема подключения PIR датчика движения к микроконтроллеру PIC представлена на следующем рисунке.

Схема подключения PIR датчика движения к микроконтроллеру PICКак видите, схема достаточно проста и по сравнению с проектом мигания светодиода нам в схеме дополнительно необходимо лишь подключить к микроконтроллеру PIC датчик движения и зуммер.

Программирование микроконтроллера PIC

Для программирования микроконтроллера PIC нам понадобится интегрированная среда разработки (Integrated Development Environment, IDE), в которой мы непосредственно будем писать нашу программу. Также нам будет необходим компилятор, преобразующий эту программу в HEX файл, который понимает наш микроконтроллер, и интегрированная среда программирования (Integrated Programming Environment, IPE), с помощью которой мы будем загружать полученный HEX файл в наш микроконтроллер.

В качестве этих инструментов в нашей программе мы будем использовать следующее программное обеспечение:

Компания Microchip предоставляет все эти инструменты абсолютно бесплатно. После скачивания их необходимо установить на свой компьютер.

Для загрузки программы в микроконтроллер PIC нам также потребуется программатор PICkit 3. Это простой и достаточно дешевый программатор/отладчик, управляемый из программы MPLAB IDE (версии v8.20 или свежее), запущенной на компьютере с операционной системой Windows. Программировать наш микроконтроллер мы будем с помощью опции внутрисхемного программирования (ICSP), доступной в микроконтроллере PIC16F877A.

Для загрузки кода программы в микроконтроллер выполните следующую последовательность шагов:

  1. Запустите MPLAB IPE.
  2. Подключите один конец программатора PicKit 3 к компьютеру, а другой – к контактам ICSP микроконтроллера.
  3. Соединитесь с вашим микроконтроллером PIC, нажав в программе на кнопку "connect".
  4. Откройте в программе HEX файл и нажмите на кнопку "Program".

Если вы начинающий в изучении микроконтроллеров PIC, то рекомендуем прочитать следующую подборку статей:

Объяснение программы для микроконтроллера PIC

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе установим биты конфигурации микроконтроллера и затем перейдем к основной функции программы – void main.

Подключим в программе заголовочный файл ‘XC.h’, который будет необходим для управления контактами ввода/вывода микроконтроллера и подключенными к нему периферийными устройствами. Также укажем тактовую частоту работы кварцевого генератора и контакты, к которым подключены PIR датчик и зуммер.

Далее, в функции void main(), команда ‘TRISB=0X00’ используется для указания того, что все контакты PORTB будут работать на вывод данных (OUTPUT). Команда ‘TRISC=0Xff’ используется для указания того, что все контакты PORTC будут работать на ввод данных (INPUT). Команда ‘PORTB=0X00’ подает на все контакты PORTB (в том числе и на нужный нам контакт RB3) уровень Low.

В следующем фрагменте кода мы проверяем состояние контакта, к которому подключен PIR датчик. Если оно равно HIGH, то на зуммер также подается уровень HIGH (он включается), иначе зуммер находится в выключенном состоянии.

Тестирование работы проекта

Схема нашего проекта достаточно проста, поэтому для ее сборки мы используем перфорированную плату с установленным на нее микроконтроллером PIC из нашего проекта мигания светодиодом. Фактически, к ней останется только подключить PIR датчик и зуммер. После этого можно будет загружать программу в микроконтроллер с помощью программатора PicKit 3.

Внешний вид проекта мигания светодиодом с помощью микроконтроллера PIC

После загрузки программы в микроконтроллер схема будет готова к работе. Как только PIR датчик будет обнаруживать какой-нибудь объект, излучающий инфракрасные лучи (например, тело человека), на своем выходном контакте он будет формировать уровень HIGH. Микроконтроллер PIC будет обнаруживать этот уровень и после этого включать сигнал зуммера. При пропадании из зоны действия PIR датчика нагретого объекта сигнал зуммера будет выключаться. Дистанцию срабатывания PIR датчика и его чувствительность можно отрегулировать с помощью двух потенциометров в его составе.

Тестирование работы проекта

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
456 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *