Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Arduino, датчик движения и релейный модуль

Как-то решил создать автоматическое освещение в туалете, надоело постоянно включать/выключать свет.

Что нам для этого понадобится?

  1. Arduino (используется в качестве программатора ASP).
  2. Релейный модуль.
  3. Датчик движения.
  4. Микроконтроллер ATtiny13.

Сразу хочу пояснить, датчик движения используется HC-SR501. Сам по себе он представляет законченное устройство, которое на выходе выдает логическую единицу если кто-то движется и ноль если движения нет. У себя на плате датчик имеет два переменных резистора: один регулирует частоту срабатывания а другой дальность срабатывания.На рисунке 1 показан сам датчик.

Датчик движения HC-SR501
Рисунок 1 - Внешний вид датчика HC-SR50.

Режим работы
Режим работы модуля задается перемычкой.
Всего два режима - режим H и режим L. Выбирается перемычкой.

Режим H — в этом режиме при срабатывании датчика несколько раз подряд на его выходе (OUT) остается высокий логический уровень.
Режим L — в этом режиме на выходе при каждом срабатывании датчика появляется отдельный импульс.

Правда на моей версии датчика перемычка припаяна не была, а место под нее было рисунок 2.

Вид сзади HC-SR501
Рисунок 2 - Вид сзади датчика движения, красным цветом показано где должна быть перемычка.

Технические характеристики
Напряжение питания: 4,5В - 20В
Ток потребления: <60uA
Напряжение на выходе Высокие и низкие уровни в 3.3V TTL логике
Дистанция обнаружения: 3 - 7м (регулируется)
Угол детектирования: 120°-140°
Длительность импульса при обнаружении: 5 - 200сек. (регулируется)
Время блокировки до следующего замера: 2,5сек.
Рабочая температура: -20 - +80°C
Режим работы: L — одиночный захват, H — повторяемые измерения.

Датчик можно было использовать сам по себе, но для последующего ему нужно около 3-4 секунд для "отдыха" т.е если я нахожусь в помещении то мне придется ждать пока он подумает и сработает. Для того что-бы убрать этот недостаток я решил использовать в связке с датчиком МК ATtina13a.

Как прошить микроконтроллер?

Так как у меня не было программатора, я программировал только ардуинку, возник вопрос как можно это сделать. Порывшись в интернете я нашел статью о том как залить ардуиновский скетч в Attiny13.

Прошиваем Attiny13 с помощью Ардуино.

Правда когда я заменил файлы в папке hardware, у меня в среде разработки ардуино в разделе Сервис -> Плата пропали все платы и появились микроконтроллеры. И когда я попытался запрограммировать у меня среда начала ругаться. Тогда я решил залить прошивку в МК при помощи программы  AVR Burn-O-Mat т.к. у нее графический удобный интерфейс.

Как прошить мк при помощи AVR Burn-O-Mat читаем тут.

Как получить .hex файл из Ардуино читаем тут

При срабатывании датчика движения будет подаваться единица на релейный модуль который будет включать свет, на рисунке 3 сам модуль.

2-х канальный релейный модуль
Рисунок 3 - Релейный модуль

После того как мы научились прошивать МК из среды Ардуино, перейдем к написанию прошивки к датчику движения.

Код программы:

int led = 3;
int sensor = 4;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
  pinMode(sensor, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, LOW);
  if (digitalRead(sensor)) {
    digitalWrite(led, HIGH);
    delay(30000);
    if (digitalRead(sensor)) {
      digitalWrite(led, HIGH);
      delay(15000);
    }
    delay(10000);
  }
  else  
  digitalWrite(led, LOW);
}

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

Ниже привожу фотки устройства.

Эксперименты со светодиодом:

Подключил релейный модуль:

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
shkaff #
Вижу на фотографиях Arduino Nano. Что она там делает если она использовалась только для программирования Attiny13?
Или я неправильно понял?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Raspberry Pi 2
Raspberry Pi 2
Катушка Тесла Бокс для хранения компонентов
вверх