Інфрачервоний датчик PIR. Про датчик руху та підключення його до Arduino. Зони дії PIR-датчиків

У цій статті описано створення датчика руху на основі модулів із пасивним ІЧ датчиком. Є багато моделей модулів з PIR датчиком від різних виробників, але основу вони лежить один принцип. Вони мають один вихід, який дає сигнал низького або високого рівня(залежно від моделі) при виявленні руху. У моєму проекті мікроконтролер PIC12F635 постійно стежить за логічним рівнем на виході модуля з датчиком і включає зумер, коли він високий.

Теорія

Деякі кристалічні матеріали мають властивість генерувати поверхневий електричний заряд при контакті з тепловим ІЧ випромінюванням. Це явище відоме як піроелектрика. Пасивні модулі з ІЧ датчиком працюють на основі цього принципу. Тіло людини випромінює тепло як ІЧ випромінювання з максимальною довжиною хвилі близько 9,4 мкм. Поява людини створює раптові зміни в ІЧ діапазоні довкілля, що сприймається піроелектричним датчиком Модуль з PIR датчиком має елементи, які посилюють сигнал для його відповідності логічним рівням. Перед початком роботи датчику необхідно від 10 до 60 секунд для ознайомлення з навколишнім середовищем для нормального функціонування. Саме тоді слід уникати рухів у зору датчика. Датчик діє на відстань до 20 футів і не реагує на природні зміни навколишнього середовища, пов'язані з часом. При цьому датчик реагує на будь-яке різка змінанавколишнього середовища (наприклад, поява людини). Модель з датчиком не слід розміщувати поруч із батареями, розетками та будь-якими іншими предметами, що швидко змінюють свою температуру, т.к. це призведе до помилкового спрацьовування. Модулі з PIR датчиком зазвичай мають 3 контакти: Vcc, Вихід та GND. Цоколівка у різних виробників може відрізнятись, тому я рекомендую перевірити документацію. Також значення виводу може бути позначено на платі. На моєму датчику таких позначень немає. Він може працювати при напрузі живлення від 5 до 12V і має власний вбудований стабілізатор напруги. За наявності руху виході датчика з'являється високий логічний рівень. Також він має 3-х контактний джампер для встановлення режиму роботи. Бічні контакти мають мітки H і L. Коли перемичка перебуває у положенні H, при спрацьовуванні датчика кілька разів поспіль з його виході залишається високий логічний рівень. У положенні L на виході при кожному спрацьовуванні датчика з'являється окремий імпульс. Передня частина модуля має лінзу Френеля для фокусування ІЧ випромінювання на чутливий елемент.

Схема та конструкція

Схема датчика руху є досить простою. Пристрій працює від 4 AA батарей, які дають 6V. На діоді, який використовується як захист від неправильного підключення живлення, напруга зменшується до 5,4V. Я перевіряв схему з NI-MH акумулятором 4,8 V і вона працювала, але я рекомендую використовувати лужні батареї по 1,5V кожна для кращої продуктивності. Ви можете також використовувати батареї 9V, але тоді вам потрібен стабілізатор LM7805. Вихід із модуля контролюється мікроконтролером PIC12F635 через порт GP5 (висновок 2). При русі на виході датчика з'являється напруга близько 3,3 V. Ця напруга розпізнається мікроконтролером як високий логічний рівень, але я вважав за краще використовувати цю напругу для управління NPN транзистором BC547, колектор якого підключив до мікроконтролера. Коли транзистор закритий, його колекторі високий логічний рівень (+5V). Під час руху на виході модуля з'являється високий логічний рівень, який насичує транзистор і напруга на його колекторі падає до низького логічного рівня. Перемички на датчику знаходиться в позиції H, так що вихідний сигнал датчика залишатиметься високим, поки рух не припиниться. Мікроконтролер PIC12F635 використовує внутрішній тактовий генератор, що працює на частоті 4,0 МГц.

Світлодіод, підключений до порту GP4 через струмообмежуючий резистор, блимає 3 рази при підключенні живлення. П'єзоелектричний зумер EFM-290ED, підключений до порту GP2, повідомляє про наявність руху. П'єзоелектричний зумер дає максимально гучний звук у своїй резонансній частоті. Зуммер, який я використав, має резонансну частоту 3,4 ± 0,5 кГц. Після експериментів із ним, я виявив, що максимальний звук він дає на частоті близько 372 Гц. Хоча в документації сказано, що робоча напруга становить від 7-12V, вона працює і від напруги 5V.

Програма

Програма написана на С і скомпільована для PIC. При подачі живлення світлодіод блимає три рази і це свідчить про успішне запуск. Після цього мікроконтроллер чекає 60 секунд на початок перевірки значення на виході з датчика. Це потрібне для стабілізації датчика. Коли мікроконтролер визначає спрацювання датчика, він запускає п'езозуммер на частоті 3725Гц. MikroC має вбудовану бібліотеку для створення звуку (Sound_Play()). Зуммер видає звук, доки датчик відчуває рух. Коли рух припиняється, логічний рівень на виході датчика змінюється, але зумер не замовкає відразу, а протягом приблизно 10 секунд видає звук на частоті 3570Гц. Якщо він виявляє рух знову, він знову запуститься на частоті 3725 Гц. Цей проект використовує внутрішній генератор запущений на частоті 4,0 МГц, MCLR та сторожовий таймер вимкнені.

/* Project: PIR Motion Sensor Alarm (PIC12F635) Piezo: EFM-290ED, 3.7 KHz connected at GP2 PIR sensor module в retriggering режимі Internal Clock @ 4.0 MHz, MCLR Disabled, WDT OFF */ sbit Sensor_IP; // Sensor I/P sbit LED at GP4_bit; // LED O/P unsigned short trigger, counter; void Get_Delay()( Delay_ms(300); ) void main() ( CMCON0 = 7; TRISIO = 0b00101000; // GP5, 5 I/P"s, Rest O/P"s GPIO = 0; Sound_Init(&GPIO,2 );// Blink LED at Startup LED = 1; Get_Delay(); LED = 0; Get_Delay(); LED = 1; Get_Delay(); 0; Delay_ms(60000); // 45 Sec delay for PIR module stabilization counter = 0; trigger = 0; do (while (! ; trigger = 1; counter = 0; ) if (trigger) ( Sound_Play(3570, 600); Delay_ms(500); counter = counter+1; if(counter == 10) trigger=0; ) )while(1) ;) // End main()

Фото пристрою:

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
МК PIC 8-біт

PIC12F635

1 У блокнот
Біполярний транзистор

BC547

1 У блокнот
Резистор

1 ком

1 У блокнот
Резистор

10 ком

1 У блокнот
Резистор

470 Ом

1 У блокнот
Світлодіод 1

Датчик руху Ардуїно дозволяє відстежити переміщення в закритій зоні об'єктів, що випромінюють тепло (люди, тварини). Такі системи часто застосовують у побутових умовах, наприклад, для включення освітлення у під'їзді. У цій статті ми розглянемо підключення до проектів ардуїно PIR-сенсорів: пасивних інфрачервоних датчиків або піроелектричних сенсорів, які реагують на рух. Малі габарити, низька вартість, простота експлуатації та відсутність складнощів у підключенні дозволяє використовувати такі датчики у системах сигналізації різного типу.

Конструкція ПІР датчика руху не дуже складна - він складається з піроелектричного елемента, що відрізняється високою чутливістю (деталь циліндричної форми, в центрі якої розташований кристал) до наявності в зоні дії певного рівня інфрачервоного випромінювання. Що температура об'єкта, то більше випромінювання. Зверху PIR-датчика встановлюється напівсфера, розділена на кілька ділянок (лінз), кожен з яких забезпечує фокусування випромінювання теплової енергії різні сегменти датчика руху. Найчастіше як лінза застосовують лінзу Френеля, яка за рахунок концентрації теплового випромінювання дозволяє розширити діапазон чутливості інфрачервоного датчика руху Ардуїно.

PIR-sensor конструктивно поділено на дві половини. Це зумовлено тим, що для сигналізації важливо саме наявність руху в зоні чутливості, а не сам рівень випромінювання. Тому частини встановлені таким способом, що при уловленні одного більшого рівня випромінювання, на вихід подаватиметься сигнал зі значенням high або low.

Основними технічними характеристикамидатчика руху Ардуїно є:

  • Зона виявлення об'єктів, що рухаються, становить від 0 до 7 метрів;
  • Діапазон кута стеження - 110 °;
  • Напруга живлення - 4.5-6;
  • Робочий струм – до 0,05 мА;
  • Температурний режим - від -20 ° до +50 ° С;
  • Регульований час затримки від 0,3 до 18 с.

Модуль, на якому встановлено інфрачервоний датчик руху, включає додаткову електричну обв'язку з запобіжниками, резисторами і конденсаторами.

Принцип роботи датчика руху на Arduino:

  • Коли пристрій встановлено в порожній кімнаті, доза випромінювання, що отримується кожним елементом, постійна, як і напруга;
  • З появою в кімнаті людини, він насамперед потрапляє у зону огляду першого елемента, у якому утворюється позитивний електричний імпульс;
  • Коли людина переміщається по кімнаті, разом із нею переміщається і теплове випромінювання, що потрапляє вже другого сенсор. Цей PIR-елемент генерує негативний імпульс;
  • Різноспрямовані імпульси реєструються електронною схемою датчика, яка робить висновок, що у полі зору Pir-sensor Arduino знаходиться людина.

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

Схема підключення датчика руху до Ардуїно

Підключення Pir-датчика до Ардуїна виконати не складно. Найчастіше модулі із сенсорами руху оснащені трьома конекторами на задній частині. Розпинування кожного пристрою залежить від виробника, але найчастіше біля виходів є відповідні написи. Тому, перш ніж виконати підключення датчика Arduino необхідно ознайомитися з позначеннями. Один вихід йде до землі (GND), другий – забезпечує видачу необхідного сигналу із сенсорів (+5В), а третій є цифровим виходом, з якого знімаються дані.

Підключення Pir-сенсора:

  • "Земля" - на будь-який з конекторів GND Arduino;
  • Цифровий вихід – будь-який цифровий вхід або вихід Arduino;
  • Харчування - +5В на Arduino.

Схема підключення інфрачервоного датчика Ардуїно представлена ​​малюнку.

Приклад програми

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

  • Можливість помилкових спрацьовувань, за рахунок того, що для самоініціалізації датчика потрібна одна хвилина;
  • Відсутність вихідних пристроїв виконавчого типу – реле, сирени, світлоіндикації;
  • Короткий часовий інтервал сигналу на виході сенсора, який необхідно затримати на програмному рівні, у разі появи руху.

Зазначені недоліки усуваються під час розширення функціоналу датчика.

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

#define PIN_PIR 2 #define PIN_LED 13 void setup() ( Serial.begin(9600); pinMode(PIN_PIR, INPUT); pinMode(PIN_LED, OUTPUT); ) void loop() ( int pirVal = digitalRead(PIN_PIR); println(digitalRead(PIN_PIR));//Якщо виявили рух if (pirVal) ( digitalWrite(PIN_LED, HIGH); Serial.println("Motion detected"); delay(2000); ) else ( //Serial.print(" No motion"); digitalWrite(PIN_LED, LOW); ) )

Можливі варіанти проектів із застосуванням датчика

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

  • Увімкнення світла у під'їзді або перед вхідними дверимаавтоматично, з появою у ньому людини;
  • Включення освітлення у ванній кімнаті, туалеті, коридорі;
  • Спрацьовування сигналізації з появою людини, як у приміщенні, і на прибудинкової території;
  • Автоматичне підключення камер стеження, якими часто оснащуються охоронні системи.

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

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

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

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

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

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

  • Робоча напруга схеми: 5В-12В.
  • Струм навантаження 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"); )
}
delay(500);
}

Змінна 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

Незалежно від використовуваної операційної системи, завантажуємо.tar.gz інсталяційний пакет для PySerial 2.6 з https://pypi.python.org/pypi/pyserial Отримуємо файл з ім'ям pyserial-2.6.tar.gz При використанні Windows потрібно розпакувати файл до папки. На жаль, це не звичайний файл 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 = "Власний 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 без з'єднання з комп'ютером. В цьому випадку при спрацьовуванні датчика можна включати попереджувальний звуковий сигнал, блимати світлодіодом або включати освітлення в приміщенні (через високовольтне реле).

У цьому уроці ми покажемо вам як можна зробити датчик руху за допомогою ультразвукового датчика (HC-SR04), який включатиме щоразу світлодіод. Комплектуючі до цього уроку можна замовити у будь-якому зручному магазині, а згодом і у нас на сайті.

Урок підійде початківцям, але буде цікавий і досвідченішим інженерам.

Крок 1: Необхідні деталі

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

1 x Плата Arduino (ми використали Arduino Uno)
1 x Світлодіод (LED, колір не має значення)
1 x Резистор/опір 220 Ом
1 x Макетна плата
1 x USB-кабель Arduino
1 x Батарейка 9 В із затискачем (опціонально)
6 x Провіди

Крок 2: Позиціювання деталей

Спочатку підключіть ультразвуковий датчик та світлодіод на макетній платі. Підключіть короткий кабель світлодіода (катод) до контакту GND (земля) датчика. Потім встановіть резистор в тому ж ряду, що і довший провід світлодіода (анод), щоб вони були з'єднані.

Крок 3: Підключення частин

Тепер вам потрібно підключити кілька дротів на задній панелі датчика. Є чотири контакти - VCC, TRIG, ECHO та GND. Після вставки дротів вам необхідно виконати такі підключення:

Кінець резистора на цифровий висновок на ваш вибір, просто не забудьте змінити його пізніше в коді.

Датчик -> Arduino
VCC -> 5V (харчування)
TRIG -> 5*
ECHO -> 4*
GND -> GND (земля)

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

Крок 4: Завантаження коду

Тепер ви можете підключити Arduino до комп'ютера за допомогою кабелю USB. Відкрийте програмне забезпечення Arduino та завантажте код, який ви можете знайти нижче. Константи прокоментовані, тому ви знаєте, що вони роблять і, можливо, поміняєте їх.

Const int ledPin = 6; // Цифровий вихід світлодіода const int trigPin = 5; // Цифровий вихід підключення TRIG const int echoPin = 4; // Цифровий вихід для підключення ECHO const int ledOnTime = 1000; // Час, протягом якого світлодіод залишається увімкненим, після виявлення руху (у мілісекундах, 1000 мс = 1 с) const int trigDistance = 20; // Відстань (і менше значення) у якому спрацьовує датчик (в сантиметрах) int duration; int distance; void setup() ( pinMode(ledPin, OUTPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); ) void loop() ( digitalWrite(trigPin, LOW); digitalWrite(trigPin, HIGH); delay(1) ;digitalWrite(trigPin, LOW);duration = pulseIn(echoPin, HIGH);distance =duration * 0.034 / 2;if (distance<= trigDistance) { digitalWrite(ledPin, HIGH); delay(ledOnTime); digitalWrite(ledPin, LOW); } delay(100); }

Крок 5: Кінцевий результат (відео)

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

Всім добрих проектів!