Arduino PIR датчик руху | Робототехніки на Ардуіно
- Motion PIR sensor що це
- Як підключити датчик руху до Ардуіно
- Скетч для датчика руху Ардуіно
- Пояснення до коду:
- Світильник на Ардуіно з датчиком руху
- Пояснення до коду:
Розглянемо датчик руху для Arduino, як підключити PIR sensor до Ардуіно. Продемонструємо скетч для автоматичного включення світильника від сенсора.
Розглянемо, як підключити PIR sensor до Ардуіно (піроелектричний інфрачервоний датчик руху) і розглянемо скетч для автоматичного світильника, який буде включатися при виявленні руху в кімнаті. Також розглянемо функцію millis () в мові програмування C ++, яку часто потрібно використовувати в програмах (скетчах) для створення багатозадачності мікроконтролера.
Motion PIR sensor що це
Сьогодні вже ніхто не дивується при автоматичному включенні освітлення в під'їздах багатоквартирних будинків, які спрацьовують при проходженні людини. У більшості приладів встановлені пасивні датчики руху (PIR). Розглянемо в цій статті пристрій датчика руху, схему його підключення до Arduino UNO і зберемо на його основі автоматичний вмикач освітлення.
Лінза Френеля концентрує інфрачервоне випромінювання
Модуль з ПІР датчиком складається з піроелектричного елемента під пластиковою лінзою Френеля - циліндрична деталь з прямокутним кристалом в центрі, який уловлює рівень інфрачервоного випромінювання і пропускає його через себе. при підключенні IR до Arduino ми вже з'ясували, що всі предмети мають інфрачервоне випромінювання і чим вище температура, тим інтенсивніше випромінювання.
Пристрій і терморегулятори піроелектричного датчика руху
PIR датчики руху практично однакові по пристрою. Діапазон чутливості PIR сенсорів для Ардуіно до 6 метрів, кут огляду 110 ° x 70 °. Харчування - 5 Вольт, а вихідний цифровий сигнал має значення 0, коли руху немає і значення 1 при наявності руху. Чутливі елементи встановлюється в герметичний корпус, який захищає від вологості і перепадів температур.
Як підключити датчик руху до Ардуіно
Для заняття нам знадобляться наступні деталі:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- PIR датчик руху;
- беспаечное макетна плата ;
- 1 світлодіод і резистор 220 Ом;
- дроти «тато-тато», «тато-мама».
Схема підключення PIR датчика до Ардуіно УНО
Терморегулятори датчиків руху Ардуіно у різних виробників може відрізнятися, але поруч з контактами є написи (див. Фото вище). Тому, перед підключенням уважно вивчіть модуль. Один вихід йде до GND, другий до харчування 5 Вольт (VCC), а третій вихід (OUT) видає цифровий сигнал з PIR сенсора. Зберіть схему, як на фото вище, підключіть світлодіод до піну 12 на Ардуіно і завантажте наступний скетч.
Скетч для датчика руху Ардуіно
#define PIR 2 #define LED 12 void setup () {pinMode (PIR, INPUT); pinMode (LED, OUTPUT); } Void loop () {int pirVal = digitalRead (PIR); if (pirVal == HIGH) {digitalWrite (LED, HIGH); delay (2000); } Else {digitalWrite (LED, LOW); delay (2000); }}
Пояснення до коду:
- за допомогою директиви #define для портів 2 і 12 ми призначили відповідні імена PIR і LED. Це зроблено лише для нашої зручності;
- в умовному операторі if використано подвійне рівність: if (pirVal == HIGH). згідно мови програмування Ардуіно , Подвійне рівність є оператором порівняння.
Світильник на Ардуіно з датчиком руху
Не змінюючи збірки, завантажте скетч для розумного світильника з PIR датчиком.
#define LED 3 // призначаємо порт для світлодіода #define PIR 2 // призначаємо порт для PIR sensor unsigned long counttime; // виділення пам'яті для лічильника void setup () {pinMode (LED, OUTPUT); pinMode (PIR, INPUT); } Void loop () {// якщо є рух включаємо світлодіод if (digitalRead (PIR) == HIGH) {digitalWrite (LED, HIGH); } // включаємо лічильник на 1 хвилину counttime = millis (); // якщо немає руху і пройшла 1 хвилина if (digitalRead (PIR) == LOW && millis () - counttime> 60000) {// якщо немає руху протягом 1 хвилини вимикаємо світлодіод digitalWrite (LED, LOW); }}
Пояснення до коду:
- за допомогою функції counttime = millis (); ми починаємо відлік часу. При цьому, на відміну від функції delay, яка повністю перериває програму, мікроконтролер може продовжувати інші обчислення в скетчі.
- ми змінили час вимикання світильника. Якщо в першому скетчі світлодіод вимикався відразу після сигналу LOW з датчика. То зараз ми даємо 1 хвилину до вимкнення світильника, на випадок якщо людина не вийшла з кімнати.