Датчик движения с Arduino, HC-SR04 и светодиодом (LED)

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

Датчик движения с Arduino

Шаг 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: Конечный результат (видео)

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

Всем хороших проектов!

12 ноября 2017 в 21:35 | Обновлено 9 декабря 2019 в 12:26 (редакция)
Опубликовано:
Уроки, ,

2 комментария

  1. Инсаф
    8 декабря 2019 в 14:07

    а где батарея? как она выглядит?

    Ответить
    1. Сергей Ермилов
      3 мая 2020 в 02:15

      Батарейка по желанию. Ардуино работает и от USB.

      Ответить

Добавить комментарий

Ваш E-mail не будет никому виден. Обязательные поля отмечены *