Распиновка PIR датчика HC-SR501




HC-SR501 имеет 3-контактный разъем, который соединяет его с внешним миром. На него выведены следующие контакты:

Рисунок 8 – Распиновка PIR датчика HC-SR501

VCC – вывод питания для PIR датчика HC-SR501, к которому мы подключаем вывод 5V на Arduino.

Выходной контакт – логический выход с TTL уровнем 3,3 В. Низкий логический уровень означает, что движение не обнаружено, высокий логический уровень означает, что было обнаружено какое-то движение.

GND должен быть подключен к земле Arduino.

Подключение PIR датчика к Arduino UNO

Теперь, когда у нас есть полное понимание того, как работает PIR датчик, мы можем подключить его к нашей плате Arduino!

Подключить PIR датчики к микроконтроллеру очень просто. PIR действует как цифровой выход, поэтому всё, что вам нужно делать, это отслеживать, когда на его выходном выводе установится высокий логический уровень (обнаружено движение) или низкий логический уровень (не обнаружено). Подайте на PIR датчик напряжение 5 В и подключите землю. Затем подключите выход к цифровому выводу 2.

Вам нужно установить перемычку на HC-SR501 в положение H (повторный запуск), чтобы он работал правильно. Вам также нужно будет установить время на минимум (3 секунды), повернув потенциометр "время" против часовой стрелки до упора. Установите чувствительность в любое положение, которое вам нужно, либо, если не уверены, установите ее в среднее положение.

Рисунок 10 – Подключение PIR датчика к Arduino UNO

Что нужно учесть перед проектированием приложений на базе PIR датчиков

Как и для большинства PIR датчиков, HC-SR501 требуется некоторое время для адаптации к инфракрасной энергии в помещении. Это занимает от 30 до 60 секунд при первом включении датчика.

Кроме того, датчик имеет период «сброса» около 5 или 6 секунд после считывания. В течение этого времени он не обнаружит никакого движения.

При проектировании системы на базе HC-SR501 вам необходимо будет учитывать эти длительности задержек.

Код Arduino

 
 

Код очень прост и в основном отслеживает, является ли входной сигнал на выводе 2 высоким или низким.int ledPin = 13; // выбор вывода для светодиода

int inputPin = 8; // выбор входного вывода (для PIR датчика)

int pirState = LOW; // начинаем работу, предполагая, что движение не обнаружено

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

 

void setup()

{

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

pinMode(inputPin, INPUT); // настраиваем вывод датчика, как вход

 

Serial.begin(9600);

}

 

void loop()

{

val = digitalRead(inputPin); // прочитать входное значение

 

if (val == HIGH) // проверить, есть ли на входе высокий логический уровень

{

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

 

if (pirState == LOW)

{

Serial.println("Motion detected!"); // напечатать об изменении выхода

pirState = HIGH;

}

}

else

{

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

 

if (pirState == HIGH)

{

Serial.println("Motion ended!"); // напечатать об изменении выхода

pirState = LOW;

}

}

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-12-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: