Arduino Uno · pinport
готово
⋮

Arduino Uno: датчик движения HC-SR501

Выход датчика цифровой: движение — высокий уровень. Свет включается по движению и гаснет через несколько секунд тишины, без delay и без дёрганья.

Что на схеме

Плата Arduino Uno, к ней подключены:

  • Датчик движения HC-SR501 — pir1
  • Светодиод — led1, цвет жёлтый
  • Резистор — r1, номинал 220 Ом

Задействованы выводы платы: 5V, GND, D2, D8. Всего соединений на схеме: 6.

Библиотеки

Дополнительных библиотек не нужно: всё делается ядром Arduino AVR, которое уже стоит в сборочном окружении.

Как это устроено в коде

Основное, чем пользуется скетч:

  • Serial.begin() — открывает монитор порта на заданной скорости
  • pinMode() — назначает выводу режим: выход, вход или вход с подтяжкой
  • digitalRead() — читает уровень на выводе
  • millis() — миллисекунды с запуска: на них строят работу без остановки
  • digitalWrite() — выставляет на выводе высокий или низкий уровень
  • Serial.println() — печатает строку в монитор порта
  • delay() — пауза, на время которой ядро занято ожиданием

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

Что попробовать изменить

  • Поменяйте период в константе и посмотрите на анализаторе, как меняется картина на выводе.
  • Добавьте свои Serial.println() в интересных местах — монитор порта здесь и есть отладчик.
  • Перенесите деталь на другой вывод — на схеме и в коде — и убедитесь, что пример работает так же.
  • Нажмите «Форкнуть»: копия станет вашим проектом, и в ней можно менять что угодно.

Смотрите также

← Все примеры галереи

Схема
Проект из галереи — запускать можно, менять нельзя.

      
Сборка ещё не запускалась.

    Печатайте в Serial числа — они станут графиком. Serial.println(t); — один ряд, Serial.printf("t:%.1f h:%.1f\n", t, h); — два с подписями. Формат тот же, что понимает плоттер Arduino IDE.