Інфрачервоний датчик руху HC-SR501. Піроелектричний інфрачервоний (PIR) датчик руху та Arduino Датчик руху на ардуїно скетч

Принцип роботи датчиків PIR і типова електрична схема пристрою. Будь-яка людина стає джерелом теплового випромінювання. Довжина хвилі цього випромінювання залежить від температури та знаходиться в інфрачервоній частині спектра. Це випромінювання уловлюється спеціальними датчиками, які називають PIR-датчики.

PIR – це скорочене «passive infrared – пасивні інфрачервоні» датчики. Пасивні - оскільки датчики самі не випромінюють, лише сприймають випромінювання з довжиною хвилі від 7 до 14 мкм. PIR-датчик містить чутливий елемент, який реагує зміну теплового випромінювання. Якщо воно залишається постійним – електричний сигнал не генерується. Щоб датчик зреагував на рух, застосовують лінзи Френеля з декількома ділянками, що фокусують, які розбивають загальну теплову картину на активні і пасивні зони, розташовані в шаховому порядку. Людина, перебуваючи у сфері роботи датчика, займає кілька активних зон повністю чи частково. Тому навіть при мінімальному русі відбувається переміщення з одних активних зон в інші, що викликає спрацювання датчика. А ось фонова теплова картина змінюється дуже повільно та рівномірно, тому датчик на неї не реагує. Висока щільність активних та пасивних зон дозволяє датчику надійно визначити присутність людини при найменшому русі.

Дана схема заснована на мікросхемі HT7610A, яка таки призначена для використання в автоматичних PIR-лампах або сигналізаціях. Він може працювати в 3-х провідний конфігурації передачі сигналу. У цьому проекті використано реле замість тиристора, як це часто робиться, для підключення будь-якого роду навантаження. Усередині мікросхеми є операційний підсилювач, компаратор, таймер, детектор переходу через нуль, схема керування, регулятор напруги, генератор та вихід синхронізації генератора.

PIR датчик виявляє інфрачервоний змінений сигнал, викликаний рухом людського тіла і перетворює його на коливання напруги. Схемі не потрібно знижуючий трансформатор і вона може працювати безпосередньо від 220V. Баластний конденсатор С7 має бути на 0.33uF/275V, а краще на 400V.

Особливості схеми датчика

  • Робоча напруга схеми: 5V-12V.
  • Струм навантаження 80 мА, коли реле включено.
  • У режимі очікування струм: 100 мкА
  • ON/AUTO/OFF режими роботи.
  • Автоскидання, якщо сигнал зникає протягом 3 секунд.
  • Релейний вихід підключення навантаження.
  • Фоторезистор LDR для виявлення денного/нічного режиму.
  • Джампер J1 для встановлення режиму.
  • Резистор PR1 встановлює чутливість датчика.
  • Резистор PR2 встановлює вихідну тривалість сигналу виходу.

Схема датчика PIR пропонує три режими роботи (ON, AUTO, OFF), які можуть бути встановлені вручну джампером J1. CDS система являє собою КМОП-тригер Шмітта, що використовується, щоб розрізняти денний та нічний час.

Сьогодні ми розберемо проект підключення PIR-датчика (руху) до Arduino та організуємо автоматичне надсилання e-mail при спрацьовуванні датчика.

Arduino є серцем цього проекту – зчитує показання ІЧ-датчика, і при виявленні руху віддає комп'ютеру через порт USB команду надіслати листа. Обробку сигналу, що надходить на комп'ютер, реалізуємо за допомогою програми Python.

Список деталей для збирання моделі

  • Для складання проекту, описаного в цьому уроці, знадобляться такі деталі:
  • Arduino UNO або аналог (докладніше, про те як вибрати Arduino);
  • PIR-датчик (підійде такий за $2);
  • бредбоард (можна купити за $2,4);

дроту тато-тато (можна купити таку зв'язку з великим запасом).

Також буде потрібно комп'ютер із підключенням до Інтернету, через нього надсилатимемо електронну пошту! Роль комп'ютера у цьому уроці може виконувати.

Схема підключення PIR-датчика до Arduino

До Arduino у цьому проекті потрібно підключити лише PIR-датчик, тому дроти від датчика можна підключити безпосередньо до Arduino. Але т.к. у такому разі дроти триматися трохи не щільно зручніше використовувати схему з бредбоард:

Arduino скетч
Arduino буде надсилати повідомлення USB Serial зв'язку при виявленні руху. Але якщо посилати e-mail при кожному спрацюванні датчика, можна отримати величезну кількість листів. Тому якщо минуло ще надто мало часу від минулого сигналу — надсилатимемо інше повідомлення.
int pirPin = 7;
int minSecsBetweenEmails = 60; // 1 хв
long lastSend = -minSecsBetweenEmails * 1000;
{
void setup()
pinMode(pirPin, INPUT);
}
Serial.begin(9600);
{
void loop()
long now = millis();
{
if (digitalRead(pirPin) == HIGH)
{
if (now > (lastSend + minSecsBetweenEmails * 1000))
}
Serial.println("MOVEMENT"); lastSend = now;
{
else
}
Serial.println("Too soon"); )
}

Змінна minSecsBetweenEmails може бути змінена на інше розумне значення. У прикладі вона встановлена ​​на 60 секунд, і листи не будуть надіслані частіше за одну хвилину. Щоб відстежувати, коли останній раз була віддана команда надсилати e-mail, використовується змінна «lastSend». Її ініціалізуємо негативним числом, що дорівнює кількості мілісекунд, зазначених у змінній «minSecsBetweenEmails». Це гарантує нам обробку спрацювання PIR-датчика одразу, як тільки скетч Arduino запущений. У циклі використовується функція Millis () щоб отримати число мілісекунд з Arduino і порівняти з часом від минулого спрацьовування датчика та відповідного надсилання повідомлення «MOVEMENT» (рух). Якщо порівняння показує, що минуло занадто мало часу від минулого спрацьовування датчика, то незважаючи на те, що рух було виявлено, надсилаємо повідомлення Too soon (Занадто рано). Перед тим як писати програму на Python для обробки сигналу, що надходить з Arduino на комп'ютер або Raspberry Pi USB, можна перевірити роботу програми на Arduino, просто відкривши Serial Monitor на Arduino IDE.

Встановлення Python та PySerial

Якщо в проекті використовується комп'ютер з операційною системою Linux, наприклад Raspberry Pi, Python вже встановлений. Якщо використовується комп'ютер з операційною системою Windows, Python потрібно встановити. У будь-якому випадку потрібно встановити бібліотеку PySerial для забезпечення зв'язку з Arduino.

Встановлення Python на Windows

Щоб встановити Python на Windows, завантажте інсталятор з https://www.python.org/downloads/ . Були повідомлення про проблеми з PySerial на Windows під час використання Python 3, тому використовуємо Python 2. Після встановлення Python у меню Пуск з'явиться відповідна група. Але для встановлення PySerial потрібно буде використовувати Python з командного рядка, тому додамо до змінного PATH середовища Windows відповідний каталог.
Щоб це зробити, потрібно зайти в Панель керування Windows, знайти System Properties (Властивості системи). Потім натиснути на кнопку з написом Environment Variabes («Змінні середовища») і у вікні вибрати «Path» в нижній частині System variables (Системні змінні). Натиснути кнопку Edit («Змінити»), а потім в кінці «Значення змінної», не видаляючи текст, додати «; C: \ Python27». Не забувати ";" після кожної вказаної папки. Щоб перевірити, що змінну PATH змінили коректно, у командному рядку введемо команду "python". Повинна з'являтися така картина:


Встановлення PySerial

Незалежно від операційної системи, що завантажується. На жаль, це не звичайний файл ZIP, так що, можливо, потрібно завантажити, наприклад, 7-zip (http://www.7-zip.org/). При використанні комп'ютера з операційною системою Linux, наприклад, при використанні в цьому проекті Raspberry Pi, потрібно відкрити термінальну сесію, виконати команду «CD» із зазначенням папки куди завантажена pyserial-2.6.tar.gz, а потім виконати наступну команду, щоб розпакувати інсталятор :
$ tar -xzf pyserial-2.6.tar.gz
Далі незалежно від операційної системи в командному рядку виконуємо команду “CD” із зазначенням папки pyserial-2.6 і виконуємо команду:
sudo python setup.py install

Код Python

Тепер створюємо програму на Python. Для цього копіюємо цей код у файл з ім'ям "movement.py". На Linux можна використовувати «нано» редактор, на Windows, ймовірно, найпростіший спосіб зробити файл за допомогою редактора Python ‘IDLE» (доступний із групи програм Python у меню Пуск).

Import time
import serial
import smtplib
TO = " [email protected]"
GMAIL_USER = " [email protected]"
GMAIL_PASS = "putyourpasswordhere"
SUBJECT = "Intrusion!!"
TEXT = "Your PIR sensor detected movement"
ser = serial.Serial("COM4", 9600)
def send_email():
print("Sending Email")
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo() smtpserver.starttls()
smtpserver.ehlo smtpserver.login(GMAIL_USER, GMAIL_PASS)
header = "To:" + TO + "\n" + "From: " + GMAIL_USER
header = header + "\n" + "Subject:" + SUBJECT + "\n"
print header
msg = header + "\n" + TEXT + " \n\n"
smtpserver.sendmail(GMAIL_USER, TO, msg)
smtpserver.close()
while True:
message=ser.readline()
print(message)
if message == "M" :
send_email()
time.sleep(0.5)

Перед тим, як запустити програму Python, вносимо деякі зміни (всі вони у верхній частині програми). Програма передбачає, що електронні листи створюються з облікового запису Gmail. Якщо його немає, реєструємо (навіть якщо це тільки для цього проекту). Змінюємо значення змінної «TO» на адресу електронної пошти, куди надсилатимуться повідомлення. Змінюємо значення GMAIL_USER на адресу електронної пошти Gmail і відповідно пароль у наступному рядку (GMAIL_PASS). Також можна змінити тему та текст повідомлення для надсилання (SUBJECT та TEXT). Необхідно встановити послідовний порт, до якого підключена Arduino у рядку ser = serial.Serial("COM4", 9600) Для Windows, це буде щось на кшталт «COM4» для Linux — щось на кшталт «/dev/tty.usbmodem621» . До якого порту комп'ютера підключена плата дивимося в Arduino IDE у нижньому правому кутку.
Після цих змін, запускаємо програму з командного рядка/термінала: python movement.py Готово! Коли PIR-датчик спрацьовує незабаром надходить повідомлення на вказаний e-mail.

Що ще можна зробити за допомогою PIR-датчика

Тепер, освоївши засоби відправки електронної пошти з Arduino, можна розпочати розширення можливостей проекту. Можна додати інші датчики, і, наприклад, надсилати собі електронною поштою погодинні звіти про температуру. Безумовно, PIR-датчик можна використовувати безпосередньо з Arduino без з'єднання з комп'ютером. У цьому випадку при спрацьовуванні датчика можна включати попереджувальний звуковий сигнал, блимати світлодіодом, або вмикати освітлення в приміщенні через високовольтне реле.

Всім привіт сьогодні ми розглянемо пристрій під назвою датчик руху. Багато хто з нас чув про цю штуку, хтось навіть мав справу з цим пристроєм. Що таке датчик руху? Спробуємо розібратися, отже:

Датчик руху, або датчик переміщення - пристрій (прилад) що виявляє переміщення будь-яких об'єктів. Дуже часто ці пристрої використовуються в системах охорони, сигналізації та моніторингу. Форм факторів цих датчиків існує безліч, але ми розглянемо саме модуль датчика руху для підключення до плат Arduino,і саме від фірми RobotDyn. Чому саме цієї фірми? Я не хочу займатися рекламою цього магазину та його продукції, але саме продукція цього магазину була обрана як лабораторні зразки завдяки якісній подачі своїх виробів для кінцевого споживача. Отже, зустрічаємо - датчик руху(PIR Sensor)від фірми RobotDyn:


Ці датчики малі за габаритами, споживають мало енергії та прості у використанні. Крім того – датчики руху фірми RobotDyn мають ще й марковані шовкографією контакти, це звичайно дрібниця, але дуже приємна. А тим, хто використовує такі ж датчики, але тільки інших фірм, не варто турбуватися - всі вони мають однаковий функціонал, і навіть якщо не промарковані контакти, то цоколівку таких датчиків легко знайти в інтернеті.

Основні технічні характеристики датчика руху (PIR Sensor):

Зона роботи датчика: від 3 до 7 метрів

Кут стеження: до 110 о

Робоча напруга: 4,5...6 Вольт

Споживаний струм: до 50мкА

Примітка:Стандартний функціонал датчика можна розширити, підключивши на піни IN та GND датчик освітленості, і тоді датчик руху спрацьовуватиме лише у темряві.

Ініціалізація пристрою.

При включенні датчику потрібна майже хвилина для ініціалізації. Протягом цього періоду датчик може давати помилкові сигнали, це слід врахувати при програмуванні мікроконтролера з підключеним до нього датчиком, або в ланцюгах виконавчих пристроїв, якщо підключення здійснюється без використання мікроконтролера.

Кут та область виявлення.

Кут виявлення (стеження) складає 110 градусів, діапазон відстані виявлення від 3 до 7 метрів, ілюстрація нижче показує все це:

Регулювання чутливості (дистанції виявлення) та тимчасової затримки.

На наведеній нижче таблиці показані основні регулювання датчика руху, ліворуч знаходиться регулятор тимчасової затримки відповідно в лівому стовпці наведено опис можливих налаштувань. У правому стовпчику опис регулювань відстані виявлення.


Підключення датчика:

  • PIR Sensor - Arduino Nano
  • PIR Sensor - Arduino Nano
  • PIR Sensor - Arduino Nano
  • PIR Sensor – для датчика освітленості
  • PIR Sensor – для датчика освітленості

Типова схема підключення дана на схемі нижче, у нашому випадку датчик показаний умовно з тильного боку та підключений до плати Arduino Nano.

Скетч демонструє роботу датчика руху (використовуємо програму):

/* * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano */ void setup() ( //Встановити з'єднання з монітором порту Serial.begin(9600); ) void loop() ( //Зчитуємо порогове значення з порту А0 //зазвичай воно вище 500 якщо є сигнал if(analogRead(A0) > 500) ( //Сигнал з датчика руху Serial.println("Є рух!!!"); ) else ( / /Немає сигналу Serial.println("Все тихо...");

Скетч є звичайною перевіркою роботи датчика руху, в ньому є багато недоліків, таких як:

  1. Можливі несправжні спрацьовування, датчику необхідна самоініціалізація протягом однієї хвилини.
  2. Жорстка прив'язка до монітора порту, немає вихідних виконавчих пристроїв (реле, сирена, світлоіндикація)
  3. Занадто короткий час сигналу на виході датчика, при виявленні руху необхідно програмно затримати сигнал більш тривалий час.

Ускладнивши схему та розширивши функціонал датчика, можна уникнути вищеописаних недоліків. Для цього потрібно доповнити схему реле модулем і підключити звичайну лампу на 220 вольт через даний модуль. Сам модуль реле буде підключений до піна 3 на платі Arduino Nano. Отже принципова схема:

Тепер настав час трохи вдосконалити скетч, яким перевірявся датчик руху. Саме в скетчі буде реалізована затримка вимкнення реле, так як сам датчик руху має занадто короткий час сигналу на виході при спрацьовуванні. Програма реалізує 10 секундну затримку при спрацьовуванні датчика. За бажання цей час можна збільшити або зменшити, змінивши значення змінної DelayValue. Нижче представлений скетч та відео роботи всієї зібраної схеми:

/* * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * Relay Module -> Arduino Nano */ // relout - пін (вихідний сигнал) для модуля реле const int relout = 3; //prevMillis - змінна для зберігання часу попереднього циклу сканування програми //interval - часовий інтервал для відліку секунд до вимкнення реле unsigned long prevMillis = 0; int interval = 1000; //DelayValue - період протягом якого реле утримується у включеному стані int DelayValue = 10; //initSecond - Змінна ітерація циклу ініціалізації int initSecond = 60; //countDelayOff - лічильник часових інтервалів static int countDelayOff = 0; //trigger – прапор спрацьовування датчика руху static bool trigger = false; void setup() ( //Стандартна процедура ініціалізації порту на який підключений модуль реле //ВАЖЛИВО!!! - щоб модуль реле залишався в спочатку вимкненому стані //і не спрацьовував при ініціалізації, потрібно записати в порт входу/виходу //значення HIGH , це дозволить уникнути хибних "перещелкування", і збереже //стан реле таким, яким воно було до включення всієї схеми в роботу pinMode(relout, OUTPUT); циклів(змінна initSecond) //тривалістю в 1 секунду, за цей час датчик "самоініціалізується" for(int i = 0; i< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) ( //Встановити прапор спрацьовування датчика руху if(!trigger) ( trigger = true; ) ) //Поки прапор спрацьовування датчика руху встановлений while(trigger) ( //Виконувати наступні інструкції //Зберегти в змінній currMillis //значення мілісекунд минулих з початку //виконання програми unsigned long currMillis = millis(); //Порівнюємо з попереднім значенням мілісекунд //якщо різниця більше заданого інтервалу, то: if(currMillis - prevMillis > interval) ( //Зберегти поточне значення мілісекунд у змінну prevMillis prevMillis = currMillis; //Перевіряємо лічильник затримки порівнюючи його зі значенням періоду //протягом якого реле має утримуватися у включеному //стані if(countDelayOff >= DelayValue) ( ​​//Якщо значення зрівнялося, то: //скинути прапор спрацьовування датчика руху trigger = false;// Обнулити лічильник затримки countDelayOff = 0; countDelayOff++;

//Утримувати реле у включеному стані digitalWrite(relout, LOW);

) ) ) )

У програмі є конструкція:

...

unsigned long prevMillis = 0;

int interval = 1000;

{

unsigned long currMillis = millis();

....

if(currMillis - prevMillis > interval)

....

}

prevMillis = currMillis; // Наші операції укладені у тіло конструкціїЩоб зробити ясність, було вирішено окремо прокоментувати цю конструкцію. Отже, дана конструкція дозволяє виконати паралельну задачу в програмі. Тіло конструкції спрацьовує приблизно раз на секунду, цьому сприяє змінна interval. Спочатку, змінною currMillisприсвоюється значення, що повертається при виклику функції currMillis millis() . Функціяповертає кількість мілісекундів, що пройшли з початку програми. Якщо різниця // Наші операції укладені у тіло конструкції currMillis - prevMillis intervalбільше ніж значення змінної то це означає, що вже пройшло більше секунди з початку виконання програми, і потрібно зберегти значення змінноїу змінну . Функція prevMillis // Наші операції укладені у тіло конструкціїпотім виконати операції укладені у тілі конструкції. Якщо ж різниця

менше ніж значення змінної

, то між циклами сканування програми ще не минуло секунди, і операції ув'язнені в тілі конструкції пропускаються.

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

Пірлоелектричний датчик руху - загальна інформація

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

PIR датчики відмінно підходять для проектів, у яких необхідно визначати наявність чи відсутність людини у межах певного робочого простору. Крім перерахованих вище перевага подібних датчиків, вони мають велику зону чутливості. Однак врахуйте, що піроелектричні датчики не нададуть вам інформації про те, скільки людей довкола і наскільки близько вони знаходяться до датчика. Крім того, спрацювати вони можуть і на домашніх тварин.

Загальна технічна інформація

Ці технічні характеристики відносяться до датчиків PIR, які продаються в магазині Adafruit. Принцип роботи аналогічних датчиків схожий, хоча технічні характеристики можуть бути різними. Отже, перш ніж працювати з ПІР-датчиком, ознайомтеся з його датаситом.

  • Форма: Прямокутник;
  • Ціна: близько 10.00 доларів у магазині Adafruit;
  • Вихідний сигнал: цифровий імпульс high (3 В) за наявності руху та цифровий сигнал low, коли руху немає. Довжина імпульсу залежить від резисторів і конденсаторів на самому модулі та різна в різних датчиках;
  • Діапазон чутливості до 6 метрів. Кут огляду 110 x 70 °;
  • Харчування: 3В – 9В, але найкращий варіант – 5 вольт;

Принцип роботи піроелектричних (PIR) датчиків руху

PIR датчики не такі прості, як може здатися на перший погляд. Основна причина - велика кількість змінних, які впливають на його вхідний та вихідний сигнали. Щоб пояснити основи роботи БЕЗ датчиків, ми використовуємо малюнок, наведений нижче.

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

Конструкція PIR датчика

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

Малюнок з даташиту Murata:

Лінзи

Інфрачервоні датчики руху практично однакові за своєю структурою. Основні відмінності – чутливість, яка залежить від якості чутливих елементів. У цьому значної ролі грає оптика.

На малюнку вище наведено приклад лінзи із пластику. Це означає, що діапазон чутливості датчика являє собою два прямокутники. Але зазвичай нам потрібно забезпечити великі кути огляду. Для цього можна використовувати лінзи, подібні до тих, що використовуються у фотоапаратах. При цьому лінза для датчика руху повинна бути маленька, тонка і виготовлятися із пластику, хоча він і додає шумів у вимірювання. Тому в більшості PIR датчиків використовуються лінзи Френеля (малюнок із Sensors Magazine):

Лінзи Френеля концентрують випромінювання, значно розширюючи діапазон чутливості піродатчиків (рисунок BHlens.com)

Малюнок із Cypress appnote 2105:

Тепер у нас є значно більший діапазон чутливості. При цьому ми пам'ятаємо, що у нас два чутливі елементи і нам потрібні не стільки два великі прямокутники, скільки велика кількість маленьких зон чутливості. Для цього лінза поділяється на кілька секцій, кожна з яких являє собою окрему лінзу Френеля.

Підключення PIR датчика руху


Більшість модулів з інфрачервоними датчиками руху мають три конектори на задній частині. Розпинування може відрізнятися, тому перш ніж підключати, перевірте її! Зазвичай поруч із конекторами зроблені відповідні написи. Один конектор йде до землі, другий видає цікавий для нас сигнал із сенсорів, третій - земля. Напруга живлення зазвичай становить 3-5 вольт, постійний струм. Однак іноді зустрічаються датчики з напругою живлення 12 вольт. У деяких великих датчиках окремого сигналу піна немає. Натомість використовується реле із землею, живленням та двома перемикачами.

Для прототипу вашого пристрою з використанням інфрачервоного датчика руху зручно використовувати монтажну плату, так як більшість даних модулів мають три конектори, відстань між якими розрахована саме під отвори макетки.

У нашому випадку червоний кабель відповідає живленню, чорний – землі, а жовтий – сигналу. Якщо ви підключите кабелі неправильно, датчик не вийде з ладу, але не працюватиме.

Тестування PIR датчика руху

Зберіть схему відповідно до рисунка вище. В результаті, коли PIR датчик виявить рух, на виході згенерується сигнал HIGH, який відповідає 3.3 і світлодіод загориться.

При цьому врахуйте, що піроелектричний датчик має "стабілізуватися". Встановіть батарейки та зачекайте 30-60 секунд. Протягом цього часу світлодіод може блимати. Зачекайте, поки миготіння закінчиться і можна починати махати руками та ходити навколо датчика, спостерігаючи за тим, як світлодіод запалюється!

Налаштовуємо чутливість

На багатьох інфрачервоних датчиках руху, у тому числі й у компанії Adafruit, встановлено невеликий потенціометр для налаштування чутливості. Обертання потентенціометра за годинниковою стрілкою додає чутливість датчику.

Зміна часу імпульсу та часу між імпульсами

Коли ми розглядаємо PIR датчики, важливими є два проміжки часу "затримки". Перший час -Tx: як довго горить світлодіод після виявлення руху. На багатьох піроелектричних модулях цей час регулюється вбудованим потенціометром. Другий час - Ti: як довго світлодіод гарантовано не загориться, коли руху не було. Змінювати цей параметр не так просто, для цього може знадобитися паяльник.

Давайте поглянемо на даташит BISS:

На датчиках від Adafruit є потенціометр, позначений як TIME. Це змінний резистор з опором 1 мегаом, який доданий до резисторів на 10 ком. Конденсатор C6 має ємність 0.01 мкФ, так що:

Tx = 24576 x (10 кОм + Rtime) x 0.01 мкФ

Коли потенціометр Rtime в "нульовому" - повністю повернутий проти годинникової стрілки - положенні (0 МОм):

Tx = 24576 x (10 кОм) x 0.01 мкФ = 2.5 секунди (приблизно) Коли потенціометр Rtime повністю повернутий за годинниковою стрілкою (1МОм):

Tx = 24576 x (1010 кОм) x 0.01 мкФ = 250 секунд (приблизно)

У середній позиції RTime час складатиме близько 120 секунд (дві хвилини). Тобто якщо ви хочете відстежувати рух об'єкта з частотою раз на хвилину, поверніть потенціометр на 1/4 повороту.

Підключення PIR датчика руху до Arduino


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

При цьому не забудьте встановити конектор у позицію H!

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


Програма проста. По суті, вона відстежує стан піна 2. А саме: який на ньому сигнал: LOW або HIGH. Крім того, виводиться повідомлення, коли стан піна змінюється: є рух чи руху немає.

* перевірка PIR датчика руху

int ledPin = 13; // ініціалізуємо пін для світлодіода

int inputPin = 2; // ініціалізуємо пін для отримання сигналу від піроелектричного датчика руху

int pirState = LOW; // починаємо роботу програми, припускаючи, що руху немає

int val = 0; // Змінна для читання стану піна

pinMode(ledPin, OUTPUT); // оголошуємо світлодіод як OUTPUT

pinMode(inputPin, INPUT); // Оголошуємо датчик як INPUT

Serial.begin(9600);

val = digitalRead(inputPin); // зчитуємо значення з датчика

if (val == HIGH) ( // перевіряємо, чи відповідає лічене значення HIGH

digitalWrite(ledPin, HIGH); // Включаємо світлодіод

if (pirState == LOW) (

// ми щойно включили

Serial.println("Motion detected!");

pirState = HIGH;

digitalWrite(ledPin, LOW); // Вимикаємо світлодіод

if (pirState == HIGH)(

// ми щойно його вимкнули

Serial.println("Motion ended!");

// ми виводимо на серійний монітор зміну, а чи не стан

Не забудьте, що для роботи з піроелектричним датчиком не завжди потрібний мікроконтролер.

Основний чутливий елемент датчиків руху та присутності – піроелектричний інфрачервоний сенсор. Піроелектрика - це електричний потенціал, що виникає
у матеріалі під впливом інфрачервоного (ІЧ) випромінювання.

Сенсор, в якому використовується матеріал з такими властивостями, може реагувати на тепло, яке випромінює тіло людини. PIR-датчик (Pyroelectric InfraRed) має кругову діаграму спрямованості (360 °) з кутом розвороту 120 °.

Спеціальні схемні рішення дозволили створити різні інфрачервоні датчики руху для включення світла, що фіксують пересування людей.

Зони дії PIR-датчиків

В асортименті виробів компанії B.E.G. є датчики руху та присутності різного виконання та призначення:

  • для зовнішнього застосування;
  • для внутрішнього застосування;
  • для настінного монтажу;
  • для стельового монтажу
  • датчики у дизайнерському виконанні.

Один із головних параметрів ІЧ датчиків руху – зона дії. Стельові датчики зазвичай мають кругову зону охоплення (360°). Настінні датчики руху PIR, залежно від моделі, мають зону дії від 120 до 280°.

У конкретних умовах іноді необхідно використовувати датчик із нестандартним кутом огляду.
У таких випадках використовуються пластини, що закривають (шторки). Вони виключають із зони виявлення джерела тепла (перешкод) чи ділянки приміщення.

Дальність дії датчика залежить від цього, як переміщається людина стосовно датчику. Якщо він рухається в перпендикулярному до датчика напрямку, сенсор має максимальну дальність дії.

Якщо рух здійснюється до датчика (фронтально), зона охоплення скорочується майже вдвічі. Датчики мають мінімальну дальність дії, якщо рух відбувається безпосередньо під сенсором.

У датчиків присутності PIR компанії B.E.G. висока зона чутливості, і вони реагують на незначні рухи. Чутливість датчика регулюється.

При реалізації проекту важливо домогтися, щоб зони дії датчиків покривали всю площу контролю. Для цього використовують кілька датчиків з зонами охоплення, що перекриваються, уникаючи «мертвих» зон. Для виключення перепусток і хибних спрацьовувань, застосовуються тимчасові затримки.

Як правильно розташовувати PIR-датчики

Біля входу в будівлю встановлюється настінний датчик руху PIR для зовнішнього застосування.
У зоні його дії має бути доріжка до входу. Датчик першим вітає відвідувача, підвищуючи імідж установи.

У коридорах особлива увага приділяється входам. Датчики повинні встановлюватися так, щоб людина навіть на короткий час не опинялася у темряві. Для коридорів розроблені спеціальні стельові датчики руху з вузьким діапазоном виявлення та великою дальністю дії.

Сходові марші розглядаються як зони підвищеної небезпеки. Тут має бути виключено падіння людей через недостатнє освітлення. На стелі або стіні сходового майданчика датчики руху ставлять як настінні вимикачі.

Особливість освітлення в офісі полягає в тому, що в одному приміщенні необхідно забезпечити різну освітленість на різних робочих місцях. Необхідно врахувати інтенсивність природного освітлення і мати можливість відключати освітлення на місцях, що пустують.

Тому кожному робочому місцю потрібна своя схема керування освітленням. З таким завданням впораються датчики стель присутності PIR з можливістю розширення діапазону виявлення.

У шкільному класі чи вузівській аудиторії освітлення здійснюється з урахуванням денного світла. Приміщення поділяють на зони таким чином, щоб за допомогою штучного регульованого освітлення забезпечити рівномірну освітленість.

Особлива увага приділяється зоні біля дошки. Присутні повинні добре бачити викладача та дошку, тому тут необхідне надійне освітлення та, бажано, додаткове ручне керування. У таких приміщеннях використовують стельові датчики присутності.

При автоматизації освітлення конференц-залів та кімнат для нарад використовується підхід аналогічний до описаного вище. У магазині, аптеці, підприємстві сфери обслуговування біля входу встановлюється датчик руху зі звуковим сигналом, щоб персонал звернув увагу на відвідувача.

Великий спортзал розбивають на зони із незалежним управлінням від стельових датчиків. Важливо передбачити і ручне управління: це дасть можливість забезпечити освітлення лише там, де відбуваються заняття.

У підземному гаражі необхідно забезпечити надійний контроль зон входу та основних проходів. Можливі мертві зони компенсуються тимчасовими затримками. Тут використовуються лише стельові датчики.

Загальні вимоги щодо встановлення PIR-датчиків

Дальність дії PIR-датчиків залежить від напрямку переміщення джерел інфрачервоного випромінювання. Якщо через велику кількість комунікацій встановити датчики руху на стелю не можна, їх розміщують на колонах і стінах.

Зону дії датчиків не повинні обмежувати дерева, меблі та перегородки (у тому числі скляні). Оптимальна висота установки для стельових датчиків – 2,5-3 метри, а настінних вимикачів від 1,1 до 2,2 метрів. Датчики для високої стелі розміщують на висоті до 16 метрів.

Асортименти PIR-датчиків широкий. Вони відрізняються призначенням, технічними параметрами та конструкцією. Щоб застосувати їх із максимальною ефективністю на конкретному об'єкті, краще скористатися послугами професіоналів.

У компанію B.E.G. Наші спеціалісти нададуть усі необхідні консультації. І на наш блог, щоб не пропускати корисні матеріали про датчики руху та присутності.

 
Статті потемі:
Допустимі норми температури кипіння масла моторного
Принцип роботи двигуна внутрішнього згоряння такий, що результатом його роботи є велике виділення тепла. Жар усередині мотора, особливо в його циліндропоршневій групі, досягає 300 ° С і вище, якщо розглядати дизельні двигуни. Тому
Hyundai Genesis Coupe – спорткар?
Філ Коллінз ні до чого Тепер мені відомий стовідсотковий спосіб змусити наймеланхолійнішого водія поїхати швидше. Все дуже просто - потрібно лише підрулити до нього ззаду на "Генезі-Купі". Кинувши нервовий погляд у дзеркало, бідолаха, незрозуміло яким
Методи підбору змінних зубчастих коліс Методи підбору змінних зубчастих коліс
Союз Радянських Соціалістичних Республік (61) Додаткове до авт. свид-ву (22) Заявлено 24,03.76 (21) 2339622/25-08 з приєднанням заявки № (23) ПріоритетвЂ" (43) Опублнковано05.03.78,Бюлетень № 9 (45) Дата опублікування опису 09.02.
Схеми захисту Li-ion акумуляторів від перерозряду (контролери розряду)
Оцінка характеристик того чи іншого зарядного пристрою важко без розуміння того, як власне повинен протікати зразковий заряд li-ion акумулятора. Тому перш ніж перейти безпосередньо до схем, давайте трохи згадаємо теорію.