Гибрид, "походные"часы с будильником иметеостанция.
- Войдите на сайт для отправки комментариев
Здравия хорошим людям.
Выкладываю для тех, кто, так же как и я, недавно влип в эту "среду", среду разработки "Ардуино". Делал для себя, все работает, а то что, что-то, не по феншую, .... это к профессиональным программистам.
Гибрид, часы с будильником, метеостанция.
Задача для нее проработать от 1 до ... ну если повезет, в смысле мне со временем то до 3 недель.
Осенью на охоте, не лишним будет и будильник, и данные о температуре, давлении и влажности.
Компоненты:
Arduino Pro Mini, LCD экран 1602, модуль часов I2C RTC DS1307, датчик BME280, 4 кнопки, 1 выключатель, пассивный буззер + конденсатор электролит на 1 мкф, модуль зарядки с защитой от переразряда, на TP4056, аккумуляторы 18650, корпус.
Основа скетча, это скетч с сайта Амперка, Урок 19. RTC часы с будильником.
В изначальном виде, на 3 экранах, по очереди можно посмотреть, на 1- текущее время, на 2 - дата, на 3 будильник, листая все это удовольствие кнопкой " SET ".
А теперь мой вариант.
1 экран текущее время и дата.
2 экран температура и влажность.
3 экран давление и высота над уровнем моря, врет конечно, даже после калибровки, но пусть будет.
4 экран будильник.
5 экран показания напряжения на аккумуляторе.
6 экран переход к автоматической смене экранов.
То есть после загрузки, экраны сами сменяются по очереди с интервалом 4 секунды.
Это достаточно, чтобы быстро ознакомится с информацией.
Так же по умолчанию подсветка экрана выключена.
Что бы включить есть кнопка " ILLUM "(подсветка).
Кратковременное нажатие включает подсветку на 40 секунд. Достаточно для отображения всех экранов, два с лишним круга. Потом она сама отключается.
Если удерживать ее 2 и более секунд, включится постоянная подсветка, которую можно выключить кратковременным нажатием на эту же кнопку. Это сделано для удобства настройки часов и будильника. Чтобы подсветка не выключалась в не нужный момент.
Кнопки управления, кроме кнопки " ILLUM "(подсветка), работают только тогда, когда включена подсветка экрана, а то мало ли кто, ткнет, собьет будильник и "утрянка" пропала.
Так же добавил к будильнику, не большое, но удобное дополнение, это сохранение настроек будильника, в EEPROM, модуля часов. А то EEPROM есть, а он не используется, тогда его смысл?
А то включенный по умолчанию будильник был, а вот когда ему срабатывать после перезагрузки, сбрасывалось по нулям. Время задержек и адреса EEPROM, для удобства, чтоб их не искать в теле скетча разместил в одном месте в установках. Когда срабатывает будильник, экран включается и будет включен до тех пор, пока не выключишь будильник. Выключить который, можно любой из 4 кнопок, кратковременным нажатием.
Включить(завести) или отключить будильник можно на 4 экране, нажав кратковременно кнопки "UP" или "DOWN", которые используются для установки текущего времени и установки времени срабатывания будильника.
Когда будильник выключен, то 3 экрана по очереди, это 1,2 и 3 (смотри в начале описания), когда будильник включен(заведен), отображается 4 экрана, добавляется экран 4 с отображением установленного времени будильника и на 1 и на 4 экране появляются колокольчики.
Остальные экраны можно увидеть если в ручном режиме с помощью кнопки " SET ", пролистать их.
На 5 экране отображается реальное напряжение на аккумуляторе, на Pin A(0). С неплохой точностью. За что большая благодарность, вот правда не знаю кто конкретно написал эту функцию(измерение, сравнение, расчет на основе внутренних опорных напряжений ).
По умолчанию эта функция определяет напряжение на "VCC" но мой вариант с "дополнительным" Pin A(0), удобен, когда питание идет от сети и заряжается аккумулятор, можно узнать реальное напряжение аккумулятора, в любой момент.
Если напряжение на аккумуляторе опускается до 3 вольт, включается экран и буззер с другой "мелодией" ( не будильник), подает сигнал, что , время еще есть, но пора на зарядку.
Отключается так же любой кнопкой.
Переход к настройке времени, даты и будильника, выполняется удержанием в течении 2 чекунд кнопки " SET ", на нужном экране.
Перейдя на 6 экран, мы видим "Smena ekrana AVTOMAT ", то есть, если остаться на этом экране, то начнется автоматическая смена экранов.
Вот вроде бы и все. А забыл, когда срабатывает будильник или сигнал о разряде аккумулятора, кроме звука, еще мигает LED.
Схема подключения , надеюсь понятна из скетча.
Фото можете выложить результата?
Скетч - Ничего не найдено...
Вот эта ссылка работает.
СКЕТЧ
Вот эта ссылка работает.
СКЕТЧ
лучше прямо в ветку вставьте, нафига вы его в архив закатали, если там всего один файл?
Бегло посмотрел код - повторов много, а так явных ляпов не видно...
лучше прямо в ветку вставьте, нафига вы его в архив закатали, если там всего один файл?
Здравия. "b707". Выложил код на "станицу". Если не трудно, указать где повторы.