Датчик движения PIR с индикацией на LCD и светодиоде (обучение работе с Proteus)
В этой статье показан простой пример работы с PIR-датчиком движения на Arduino.
Проект создан специально для обучения работе с симулятором Proteus и демонстрирует считывание цифрового сигнала с датчика движения, управление светодиодом и вывод текущего состояния на ЖК-дисплей 16×2.
Скетч определяет наличие движения с помощью PIR-сенсора. При обнаружении движения загорается светодиод, а на LCD-дисплее выводится сообщение Motion Detected. При отсутствии движения отображается сообщение No Motion.
Назначение проекта
Цель проекта — показать базовые принципы работы с PIR-датчиком движения:
- подключение PIR-сенсора к Arduino;
- чтение цифрового сигнала с датчика;
- управление светодиодом;
- вывод текстовой информации на LCD 16×2;
- корректное обновление строк дисплея без артефактов.
Проект подходит для учебных стендов, охранных систем, систем автоматического освещения и первых экспериментов с датчиками движения.
Используемые компоненты
- Arduino UNO;
- PIR-датчик движения (модель PIR2 в Proteus);
- ЖК-дисплей 16×2 (библиотека LiquidCrystal);
- Светодиод;
- Резистор 220–330 Ом;
- Соединительные провода;
- Proteus 8 или 9.
Принцип работы программы
PIR-датчик подключён к аналоговому пину A0, который используется как цифровой вход.
При отсутствии движения выход PIR равен LOW. Arduino выключает светодиод и выводит на LCD сообщение No Motion.
При обнаружении движения выход датчика становится HIGH. Arduino включает светодиод и выводит сообщение Motion Detected.
Для предотвращения наложения символов строки на дисплее всегда перезаписываются полностью.
Arduino-скетч
#include
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int pirPin = A0;
int ledPin = 7;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(1, 0);
lcd.print("arduino-kid.ru");
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
lcd.setCursor(0, 1);
lcd.print(" No Motion ");
}
void loop() {
int pirStat = digitalRead(pirPin);
if (pirStat == HIGH) {
digitalWrite(ledPin, HIGH);
lcd.setCursor(0, 1);
lcd.print("Motion Detected");
} else {
digitalWrite(ledPin, LOW);
lcd.setCursor(0, 1);
lcd.print(" No Motion ");
}
}
Работа проекта в Proteus
В симуляции Proteus PIR-датчик формирует цифровой сигнал. При появлении логической единицы Arduino реагирует включением светодиода и изменением текста на LCD-дисплее.
Проект позволяет наглядно увидеть, как Arduino взаимодействует с датчиком движения и устройствами отображения.
Установка библиотеки PIR-датчика для Proteus
Для корректной работы PIR-датчика в Proteus необходимо установить библиотеку датчика движения.
- скопируйте файл PIRSensorTEP.LIB в каталог:
C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\DATA\LIBRARY\ - скопируйте файл PIRSensorTEP.IDX в каталог:
C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\DATA\Library Indexing\ - скопируйте файл PIRSensorTEP.hex в каталог установки Proteus;
В свойствах компонента PIR необходимо:
- указать путь к файлу PIRSensorTEP.hex в поле Program File.
Запуск проекта в Proteus
- распакуйте архив с проектом;
- откройте файл .pdsprj;
- проверьте путь к файлу .hex в свойствах Arduino;
- проверьте путь к PIRSensorTEP.hex в свойствах PIR;
- нажмите Run Simulation;
- изменяйте состояние PIR-датчика и наблюдайте результат.
Если что-то не работает
Проверьте выбранную модель PIR (PIR2) и правильность путей к файлам библиотеки.
Рекомендуется также ознакомиться с базовым уроком по Proteus:
Первый проект в Proteus — мигание светодиода