Главная » Статьи » Делись, советуй, обсуждай » Arduino проекты

LCD часы, сигнализация и таймер с детектором движения на Arduino
Проект, который отлично впишется в интерьер вашего DIY угла, комнаты, гаража или офиса, в котором вы собираете роботов и всякие гиковские автоматизированные проекты на Arduino. На выходе проекта вы получите в пределах одного модуля следующие фичи:

•Часы!;
•Отображение даты и времени на LCD экране;
•Встроенный счетчик времени (для того, чтобы засекать время, затраченное на один проект);
•Будильник (чтобы напоминать о том, что вы засиделись и пора устроить себе разминку);
•Отслеживание движения (сберегает заряд аккумулятора, отключая LCD экран, когда вас нет рядом);
•Отлично впишется в ваш интерьер Arduino-разработчика!

Необходимые материалы для проекта
•Arduino Uno;
•LCD Keypad Shield (LCD шилд с кнопками) для Arduino (в данном случае - от производителя DFRobot)
•Часы реального времени (RTC) DS1307 (от Adafruit);
•Закрывающийся бокс (можно найти в радиомагазине или заказать у китайцев);
•Зуммер (Piezo Buzzer);
•PIR (Пассивный инфракрасный датчик движения);
•Проводники мама/мама;
•Джек 2.1 мм;
•Переходник для батарейки 9 В 5.5 мм / 2.1 мм;
•Крона 9 В.

Фото деталей и узлов для проекта


Сборка модуля часов реального времени


Порой модуль часов реального времени (например, от компании Adafruit DS1307), поставляется в виде отдельных компонентов. Сборка не должна вызвать проблем. Тем более, есть отличная инструкция по использованию и сборке модуля часов реального времени. Как правило, батарейка идет в комплектации модуля. Работать от одной батарейки он будет не меньше трех лет.

Коннектор для питания


Для того, чтобы не возникало проблем с подключением Arduino, используется джек на 2.1 мм, к которому припаены контакты. В боксе сделано отверстие, джек посажен на клей. Теперь подключение Arduino не составляет проблем.

Батарейка (крона) на 9 В просто устанавливается на заднюю часть бокса.



Если вы обратили внимание, в боксе есть еще одно отверстие. Это была первая неудачная попытка. Джек в это отверстие не поместился.

Подсоединяем провода ко всем элементам


Очень рекомендую закупить разноцветные проводники типа мама/мама. Стоят они недорого, а процесс сборки облегчают очень сильно. Подключаем проводники к модулю часов реального времени, ПИР датчику движения, зуммеру, чтобы в дальнейшем подключить их к LCD шилду.

Фото деталей подключенных узлов





Подключаем все к LCD шилду


На LCD шилде 5 рядов контактов, которые соответствуют пинам 1-5 на плате Arduino. Есть контакт для 5v, GND и сигнал. Эти контакты и использовались для подключения. Для обмена данными с часами реального времени, датчиком и зуммером использовались аналоговые пины на Arduino. Естественно, датчик и часы реального времени подключаются к питанию и земле.




Установка в коробку


Следующий шаг - упаковка нашего чуда в отдельный бокс. Сначала положите в коробку кабели, которые тянутся от LCD шилда.

Arduino крепится винтом к правой нижней части бокса. Одного винта в принципе достаточно, чтобы удержать плату. Кроме того, данном конкретном случае, ребра жесткости в коробке располагаются как раз в месте, где на плате предусмотрено отверстие для второго и третьего винтов.

После этого устанавливаем на Arduino наш LCD шилд. Кабели огибают плату с правой стороны (смотрите на фото ниже).

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

Датчик движения (PIR) установлен таким образом, чтобы его можно было легко и быстро снять, так как он мешает подключению USB кабеля к Arduino.

Фото установки









Программируем часы


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

На LCD шилде предусмотрено 5 программируемых кнопок. Они используются для установки различных режимов работы часов. Зуммер отрабатывает каждый раз, когда вы нажимаете кнопки. Когда срабатывает будильник, зуммер подает несколько сигналов.

Скетч для Arduino


За основу программы был взят скетч от Adafruit, который разработан для модуля часов реального времени. В этом скетче используется их же библиотека RTClib. Этот скетч вы можете найти на GitHub.

После этого добавлен кусок кода из скетча от DFRobot для LCD шилда (включая опцию управления кнопками). Этот скетч можно скачать здесь.

Ну и, конечно же, добавлен кусок кода непосредственно под наш проект часов-будильника. Окончательная версия скетча доступна по ссылке.

На фотографиях ниже показаны различные режимы работы наших часов с LCD шилдом.

Фото разных режимов работы










Функции кнопок


На LCD шилде кнопки подписаны (смотрите на фото). Первые пять из шести доступных кнопок (button) были запрограммированы следующим образом:


Кнопка #1 (подписана SELECT) - это кнопка Menu. Эта кнопка отвечает за отображение листаемого списка доступных функций (таймер, установка будильника).

Кнопка #2 (подписана LEFT) - кнопка Select. Служит для выбора функции. Примечание: также используется для инкремента на 10 , когда выбраны часы, минуты и т.п.

Кнопки #3 и 4 (подписаны UP и DOWN) - кнопки Increment и Decrement (инкремент и декремент). Используются для уменьшения и увеличения часов и минут при настройке таймера или будильника. Используются также для переключения между временами суток AM и PM.

Кнопка #5 (подписана RIGHT) - GO! Используется для принятия выбранного значения (например, настроенных минут или часов).

Кнопка #6 (отмечена RST) - Reset, которая перезагружает наш Arduino.

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

Источник: http://arduino-diy.com/arduino-lcd-shield-chasy-signalizatsiya-taymer-s-detektorom-dvizheniya
Категория: Arduino проекты | Добавил: burkin_aleks (02.06.2016)
Просмотров: 1791 | Теги: uno, hobby, PROJECT, Clock, Arduino | Рейтинг: 5.0/2
Всего комментариев: 0
avatar