PIR датчик руху Arduino HC-SR501

Версія від 14:40, 9 червня 2018, створена Shkod (обговореннявнесок) (Список використаної літератури)
(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)

Загальні відомості

PIR сенсори дозволяють вловлювати рух. Дуже часто використовуються в системах сигналізації. Ці датчики малі за габаритами, недорогі, споживають мало енергії, легкі в експлуатації, практично не схильні до зносу. Крім PIR, подібні датчики називають піроелектричними і інфрачервоними датчиками руху. PIR датчики руху складаються з піроелектричного чутливого елемента (циліндрична деталь з прямокутним кристалом в центрі), який уловлює рівень інфрачервоного випромінювання. Чим більше температура, тим вище рівень випромінювання. Датчик фактично розділений на дві частини. Це обумовлено тим, що нам важливий не рівень випромінювання, а безпосередньо наявність руху в межах його зони чутливості. Дві частини датчика встановлені таким чином, що якщо одна половина вловлює більший рівень випромінювання, ніж інша, вихідний сигнал буде генерувати значення high або low.

AiebJFRAahU.jpg

                                Рис.1 Загальний вигляд модуля HC-SR501

Характеристики датчика HC-SR501

- напруга живлення постійного струму: 4,5 - 20 В;

- струм на OUT: 60 мА;

- напруга на виході: високі і низькі рівні в 3, В TTL логіки;

- дистанція виявлення: 3 - 7 м (налаштовується);

- кут виявлення: від 120 ° до 140 °;

- тривалість імпульсу при виявленні: 5 - 300 сек (налаштовується);

- час блокування до наступного виміру: 2,5 сек. (але можна змінити заміною SMD-резисторів);

- робоча температура: від -20 до + 80 ° C;

- режими роботи: L - одиночне захоплення, H - повторювані вимірювання;

- габарити модуля: 32 х 24 х 18 мм.

Принцип роботи

Піроелектричний датчик руху складається з двох основних частин. Кожна з частин включає в себе спеціальний матеріал, чутливий до інфрачервоного випромінювання. В даному випадку лінзи особливо не впливають на роботу датчика, так що ми бачимо дві ділянки чутливості всього модуля. Коли датчик знаходиться в стані спокою, обидва сенсори визначають однакову кількість випромінювання. Наприклад, це може бути випромінювання приміщення або навколишнього середовища на вулиці. Коли теплокровний об'єкт (людина або тварина), проходить повз, він перетинає зону чутливості першого сенсора, в результаті чого на модулі PIR датчика генеруються два різних значення випромінювання. Коли людина залишає зону чутливості першого сенсора, значення вирівнюються. Саме зміни в показах двох датчиків реєструються і генерують імпульси HIGH або LOW на виході.

                D-Njp8bG2 E.jpg
                                  Рис.2 Принцип роботи датчика

Підключення до Arduino

Підключити PIR датчик до мікроконтролера просто. Датчик видає цифровий сигнал, так що все, що необхідно - зчитувати з піна Arduino сигнал HIGH (виявлено рух) або LOW (руху немає) .При цьому не забудьте встановити коннектор в позицію H!

Подайте живлення 5 вольт на датчик. Після цього з'єднайте пін сигналу з датчика з цифровим піном на Arduino.

             Мромропнп.png
                                 Рис.3 Підключення модуля HC-SR501 до Arduino

Принципова схема

            Еангнпгшгл.png
                        Рис.4 Принципова схема підключення модуля HC-SR501 до Arduino

Приклад (під)програми

//VSS, OUT, GND => 5VC, Digital pin 7, GND

int pirPin = 7; //контакт для подключения датчика к Arduino

int ledPin = 13; //использование стандартного светодиода

int val = 0; //переменная для хранения состояния датчика

void setup() {

Serial.begin(9600); //открыть сеанс связи з компьютером

pinMode(pirPin, INPUT); //определить выходной контакт для датчика

pinMode(ledPin, OUTPUT); //определить контакт со светодиодом как выход

}

void loop() {

val = digitalRead(pirPin); //считываем состояние датчика

if (val == HIGH) { //если есть движение

digitalWrite(ledPin, HIGH); //включить светодиод

Serial.println(“Motion!”); //передать на компьютер “Motion!”

}

else {

digitalWrite(ledPin, LOW); //иначе выключить светодиод

Serial.println(“No motion”); //и передать компьютеру “No motion”

}

delay(1000); //подождать секунду

}

Список використаної літератури

Колонюк Сергій