В этом уроке нам понадобится:
- Датчик HC-SR501: http://ali.ski/PuY7N
- Arduino uno: http://ali.ski/gC_mOa
- Диоды и резисторы: http://fas.st/KK7DwjyF
- Макетная плата: http://ali.ski/rq8wz8
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
В этом уроке мы подключим к Ардуино датчик движения HC-SR501. С его помощью можно распознать наличие движения в помещении.
Что же такое датчик движения:
Датчик движения (англ. motion sensor) – бесконтактный датчик, фиксирующий перемещение объектов и используемый для контроля за окружающей обстановкой или автоматического запуска требуемых действий в ответ на перемещение объектов.
Датчик движения состоит из 3 пинов: +,- и пин на который подается 1 при улавливании движения.
На датчике есть два потенциометра, первый Чувствительность. Настройка центра контролируемой зоны. (от 3 до 7 м) . Второй потенциометр устанавливает время в течении которого при обраружении движения на OUT будет логическая единица (от 5 до 300 с)
Еще на датчике имеется перемычка состоянии L и H Если перемычка в состоянии L то при улавливании движения датчик подаст логическую 1 на пин и больше не будет улавливать ничего, пока не закончено время заданное потенциометром задающим время срабатывания. Ну а если перемычка стоит в H то датчик будет постоянно обнулять таймер заданный потенциометром как только будет улавливать движение.
Пин OUT датчика в данном примере подключается к 2 пину Ардуино.
После подключения необходимо залить в ардуино скетч который приведен ниже.
#define pirPin 8 #define LedPin 13 void setup() { Serial.begin(9600); // Объявляем работу com порта со скоростью 9600 pinMode(pirPin, INPUT); //Объявляем пин, к которому подключен датчик движения, входом pinMode(LedPin, OUTPUT); //Объявляем пин, к которому подключен светодиод, выходом } void loop() { int pirVal = digitalRead(pirPin); //Считываем значения с датчика движения. Если обнаружили движение, //то транслируем сигнал тревоги в монитор порта и включаем светодиод if(pirVal == HIGH) { digitalWrite(LedPin, HIGH); Serial.print("Тревога "); delay(2000); } else { Serial.print("Сканирую "); digitalWrite(LedPin,LOW); delay(1000); } }
После загрузки программного кода замрите на некоторое время – светодиод гореть не булет, но стоит Вам незначительно пошевелиться, датчик это сразу определит и напишет в ком порте соответствующее слово и зажжет светодиод.
Пример реализации можно увидеть в видео ниже: