датчик руху

Датчик руху типу 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

}

}

}