Датчик руху типу PIR вимірює інфрачервоне світло, що йде від об'єктів, розташованих поруч з ним. Таким чином, він визначає рух, беручи за основу дані про зміну інфрачервоного світла в навколишньому просторі. Це робить його ідеальним датчиком для визначення, наприклад, людей або тварин, що знаходяться в межах вимірюваного діапазону. Датчик має два потенціометри, за допомогою яких налаштовується час затримки (це потенціометр зліва) і чутливість датчика (це потенціометр праворуч).
У датчика всього три контакти які під'єднуються:
Контакт GND на датчику - до контакту GND на Arduino
Контакт OUT на датчику - до цифрового контакту на Arduino
Контакт 5V - до контакту 5V на Arduino
Обладнання:
світлодіод;
bredboard;
Arduino uno;
конектори;
датчик руху типу PIR;
Схема з'єднання:
Скетч проекту
int led = 13; // контакт для світлодіода
int sensor = 2; // контакт для датчика
int state = LOW; // за замовчуванням ніякого руху не визначено
int val = 0; // змінна для зберігання статусу датчика
void setup () {
pinMode (led, OUTPUT); // контакт для світлодіода ставимо в режим OUTPUT
pinMode (sensor, INPUT); // контакт для датчика ставимо в режим INPUT
Serial.begin (9600); // ініціалізуємо послідовну комунікацію
}
void loop () {
val = digitalRead (sensor); // зчитуємо дані від датчика
if (val == HIGH) { // перевіряємо, чи знаходиться датчик в стані HIGH
digitalWrite (led, HIGH); // включаємо світлодіод
delay (100); // затримка в 100 мілісекунд
if (state == LOW) {
Serial.println ( "Motion detected!"); // "Помічено рух!"
state = HIGH; // оновлюємо стан змінної на HIGH
}
}
else {
digitalWrite (led, LOW); // вимикаємо світлодіод
delay (200); // затримка в 200 мілісекунд
if (state == HIGH) {
Serial.println ( "Motion stopped!"); // "Рух припинено!"
state = LOW; // оновлюємо стан змінної на LOW
}
}
}