- Arduino часы с будильником
- Урок 19. RTC часы с будильником
- Нам понадобится:
- Схема подключения:
- Алгоритм работы кнопок следующий:
- Код программы:
- Теперь всё готово для создания полного кода:
- Разберемся в коде действий будильника:
- Часы, будильник, таймер на Arduino. v1.0
- Спецификация набора
- Контроллер
- Цифровой датчик температуры и влажности
- 3D-джойстик
- Пьезодинамик
- Релейный модуль
- Часы реального времени
- Элемент питания
- Ардуино — будильник
- Моя компактная версия метеостанции на Arduino c часами реального времени и будильником
- Часы, будильник, термометр. На ARDUINO NANO, DS3231.
Arduino часы с будильником
Урок 19. RTC часы с будильником
В предыдущем уроке 18, мы подключили Trema RTC часы реального времени с Trema кнопками и LCD I2C дисплеем к arduino Uno, написали скетч, для установки времени при помощи кнопок.
Теперь расширим функционал получившихся часов, добавив к ним функцию будильника. А код, который будет выполняться при срабатывании будильника выведем в отдельную функцию «Func_alarm_action()», чтоб Вы смогли легко его найти и изменить. Например, при срабатывании будильника, открывать жалюзи, включать свет или музыку, включить через реле тостер или кофе-машину и т.д.
Нам понадобится:
- Arduino х 1шт.
- RTC модуль Trema на базе чипа DS1307 х 1шт.
- LCD дисплей LCD1602 IIC/I2C(синий) или LCD1602 IIC/I2C(зелёный) х 1шт.
- Trema Shield х 1шт.
- Trema-модуль i2C Hub х 1шт.
- Trema-модуль кнопка c проводами х 3шт.
- Шлейф «мама-мама»для шины I2С х 2шт.
- Trema-модуль зуммер х 1шт.
- Trema-модуль светодиод х 1шт. (белый, синий, красный, оранжевый или зелёный)
Для реализации проекта нам необходимо установить библиотеки:
- Библиотека iarduino_RTC (для подключения RTC часов реального времени DS1302, DS1307, DS3231)
- Библиотека LiquidCrystal_I2C_V112 (для подключения дисплеев LCD1602 по шине I2C)
О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE .
Схема подключения:
Подключение модулей RTC и LCD, данного урока, осуществляется к аппаратным выводам SDA, и SCL.
Подключение кнопок: кнопка «SET» к выводу 2, кнопка «UP» к выводу 3 и копка «DOWN» к выводу 4.
Зуммер подключаем к выводу 5, а светодиод к выводу 13 (дублируя встроенный в arduino).
Алгоритм работы кнопок следующий:
- В режиме вывода даты/времени/будильника (обычный режим):
- Кратковременное нажатие на кнопку SET переключает режимы вывода: даты/времени/будильника
- Удержание кнопки SET переводит часы в режим установки даты/времени/будильника (зависит от того, каким был режим вывода)
- Кнопки UP и DOWN, в режиме вывода будильника, активируют/деактивируют будильник.
Если будильник активен, то в правом верхнем углу экрана появляется значок будильника.
- В режиме установки даты/времени/будильника:
- Кратковременное нажатие на кнопку SET — переход между устанавливаемыми параметрами (сек, мин, час, дни, мес, год, д.н.)
- Удержание кнопки SET выводит часы из режима установки
- Каждое нажатие на кнопку UP увеличивает значение устанавливаемого параметра даты или времени
- Каждое нажатие на кнопку DOWN уменьшает значение устанавливаемого параметра даты или времени
- Во время работы сигнализации будильника:
- Удержание любой кнопки в течении 1 секунды, отключает сигнализацию (без выполнения их действий, в любом режиме)
Код программы:
Работа кнопок, вывод и установка времени, описывались в уроке 18, в этом уроке рассмотрим работу будильника:
В начале кода добавляем две константы: PIN_alarm_TONE и PIN_alarm_LED, указывающие номера выводов зуммера и светодиода.
А также добавляем четыре переменные: VAR_alarm_MIN , VAR_alarm_HOUR , VAR_alarm_FLAG1 и VAR_alarm_FLAG2 .
- VAR_alarm_MIN — переменная в которой хранится значение минут, при котором сработает будильник (по умолчанию 0 минут)
- VAR_alarm_HOUR — переменная в которой хранится значение часов, при котором сработает будильник (по умолчанию 0 часов)
- VAR_alarm_FLAG1 — флаг разрешения работы будильника, false — не активен, true — активен (по умолчанию true — активен)
- VAR_alarm_FLAG2 — флаг указывающий на то, что будильник сработал «сигнализация» (по умолчанию false — не сработал)
Последняя переменная которую мы добавили — MAS_alarm_SYM, она содержит изображение символа будильника для вывода на дисплей.
В функции loop, после вывода информации на дисплей, добавляем проверку: не пора ли включить будильник?
- если будильник включён (установлен флаг VAR_alarm_FLAG1)
- если в текущем времени 0 секунд (time.seconds==00)
- если количество минут текущего времени (time.minutes) равно количеству минут установленных в будильнике (VAR_alarm_MIN)
- если количество часов текущего времени (time.Hours) равно количеству часов установленных в будильнике (VAR_alarm_HOUR)
то устанавливаем флаг VAR_alarm_FLAG2 (указывающий на то, что будильник сработал) - если установлен флаг VAR_alarm_FLAG2, то запускаем действия будильника (действия описаны в функции Func_alarm_action)
Так как проверка будильника и запуск функции Func_alarm_action() находится внутри условия if(millis()%1000==0)<. >, то действия будильника будут выполняться один раз в секунду.
Теперь всё готово для создания полного кода:
Разберемся в коде действий будильника:
Действия будильника описаны в функции Func_alarm_action().
В этой функции мы включаем светодиод, далее подаём три коротких звуковых сигнала (с частотой 2000Гц, длительностью и паузой 100мс), после чего выключаем светодиод.
Если Вам необходимо выполнить действие будильника однократно, а не каждую секунду после его срабатывания, то начните выполнение действий со сброса флага VAR_alarm_FLAG2, присвоив ему значение false.
Часы, будильник, таймер на Arduino. v1.0
Спецификация набора
То, что у вас уже есть, вы можете удалить в корзине.
Сегодня соберем часы с использованием модуля реального времени. А чтобы усложнить задачу сделаем из них будильник и прикрутим релейный модуль ну, например, для включения света в ванной или чайника. А если ты начинающий техноманьяк , то не лишним будет датчик температуры и влажности. Получится некая метеостанция управляющая чайником или таймер который пригодится если нужно автоматически кормить рыбок, переворачивать яйца в инкубаторе или зажигать ёлку на новый год.
В качестве железа будем использовать Амперкины тройки, искру и дюймовый OLED дисплей.
0.96inch OLED (A) — это встраиваемый двухцветный (желтый/синий) OLED дисплей с интерфейсом I2C/SPI. Разрешение экрана 128х64 пикселей, а угол обзора более 160 градусов.
Размеры платы 29мм х 33 мм.
Контроллер
Iskra Mini — полноценная Arduino-платформа, только маленькая: всего 33×20 мм.
Обратите внимание, что на плате нет собственного USB-порта.
Поэтому для её прошивки понадобится посредник!
Им может быть другой контроллер Arduino
Характеристики Iskra Mini
- Микроконтроллер: ATmega328
- Тактовая частота: 16 МГц
- Флеш-память: 32 КБ (2 КБ используются загрузчиком)
- Оперативная память SRAM: 2 КБ
- Энергонезависимая память EEPROM: 1 КБ
- Рабочее напряжение: 5 В
- Входное напряжение: 5,3–12 В
- Портов ввода-вывода общего назначения: 20
- Портов с поддержкой ШИМ: 6
- Портов, подключённых к АЦП: 8 (4 из них на нераспаянных выводах)
- Разрядность АЦП: 10 бит
- Аппаратные интерфейсы: UART, SPI, I²C (на нераспаянных выводах)
- Максимальный ток одного вывода: 40 мА
- Максимальный ток с пина +5V: 150 мА
Цифровой датчик температуры и влажности
Troyka-Temperature Humidity Sensor DHT11.
Данные температуры и влажности датчик отдаёт по одному проводу в виде цифрового сигнала. Это позволяет передавать данные на расстояние до нескольких десятков метров.
В сердце модуля — популярная среди любителей сенсорная сборка DHT11. Он работает по собственному протоколу. На борту модуля — популярная среди любителей сенсорная сборка DHT11.
- Напряжение питания: 3–5 В
- Потребляемый ток при запросе данных: 2,5 мА
- Потребляемый ток в ожидании: 100 мкА
- Диапазон температур: 0–50 °С
- Погрешность температуры: ±2 °С
- Диапазон влажности: 20–90%
- Погрешность влажности: ±5%
- Габариты: 25×25 мм
3D-джойстик
3D Joystick — сделает управление нашим устройством быстрым и удобным.
Модуль-джойстик схож с «грибочком» на манипуляторах PlayStation и XBox. Он комбинирует в себе двухосный джойстик и тактовую кнопку. В нейтральном положении аналоговый сигнал соответствует половине напряжения питания. При перемещении джойстика в одну сторону напряжение будет нарастать, а при движении джойстика в другую сторону — падать. Таким образом, можно получать точное положение ручки джойстика и реагировать на угол наклона, а не только на сам факт наклона ручки. Хотя в этом проекте мы используем только факт наклона.
- Напряжение питания: 3–5 В
- Интерфейс по осям X, Y: аналоговый, линейный
- Интерфейс кнопки: цифровой, бинарный
- Габариты: 25×25 мм
Управление джойстиком
Нажатие влево — вход в меню настроек
изменяемое значение подсвечивается
нажатие вверх — изменение значения
нажатие вправо — переход к следующему значению
при настройки будильника слева появляется значок «а»
нажатие влево — выход из меню с сохранением изменений
время будильника сохраняется в энергонезависимой памяти
Нажатие вниз — вкл/откл будильника
Когда сработал будильник
первое нажатие на кнопку — отключение пищалки
второе нажатие на кнопку — отключение реле
Пьезодинамик
В нашем проекте нужно пищать. Воспользуемся модулем Buzzer.
- Номинальная частота: 4 кГц
- Интенсивность: 80 дБ
- Номинальное рабочее напряжение: 5 В
- Габариты: 25,4×25,4 мм
Релейный модуль
Модуль Relay это просто механический рубильник, которым можно управлять при помощи микроконтроллера, такого как Arduino. С помощью реле можно включать и выключать электроприборы, которые подключены к бытовой электросети 220 В. На модуле расположен светодиод, который всегда подскажет — замкнуто реле или нет.
У этого реле есть есть не только нормально разомкнутый (NO) контакт, но и нормально замкнутый (NC). Это удобно.
- Номинальное напряжение питания: 5 В
- Номинальное напряжение сигнала: 3–5 В
- Максимальный ток коммутации: 16 А
- Коммутируемое переменное напряжение (пиковое): 250 В
- Потребляемый ток: 87 мА
- Рабочая температура: −40…+85 °C
- Магнитная система катушки: моностабильная
- Рекомендованная частота переключения: до 1 Гц
- Электрическая износостойкость (NO) контакта: 30×10³ переключений
- Электрическая износостойкость (NC) контакта: 10×10³ переключений
- Габариты: 50,8×25,4 мм
Часы реального времени
Модуль RTC — сделан на основе популярного чипа DS1307. Он общается с управляющей электроникой по протоколу I²C / TWI.
Слот предназначен для часовой батарейки размера CR1225 на 3В. Без неё модуль не работает даже с внешним питанием.
- Напряжение внешнего питания: 4,5–5,5 В
- Напряжение питания батарейки: 2–3,5 В
- Потребляемый ток: 500 нА (≈6 месяцев на батарейке)
- Выходной интерфейс: I²C
- Габариты: 25,4×25,4 мм
Элемент питания
CR1225 – литиевая батарейка
- Напряжение: 3В
- Типоразмер cr1225
Ардуино — будильник
В статье рассказано о том, как из ардуины и дисплея TM1637 сделать часы-будильник, управляемый при помощи любого ИК-пульта.
С помощью пульта можно будет программировать время и будильник, включать/отключать будильник и устанавливать отсрочку сигнала. То есть делать всё не вставая с дивана.
Так же будут рассмотрены варианты получения времени.
Что понадобится
• Ардуина
• Дисплей TM1637
• Два светодиода — красный и зелёный . Красный будет гореть когда включён будильник, а зелёный будет зажигаться при переключении в режим установки будильника.
• Пищалка (buzzer)
Можно не покупать, а выдрать откуда-либо.
• ИК-приёмник — наиболее предпочтительный вариант — TSOPxx38 (38kHz).
Во втором варианте потребуется модуль часов DS 3231.
В начале вариант для тех, кто хочет просто подключить/проверить дисплей.
Подключаем всё по следующей схеме:
Скачиваем и устанавливаем библиотеку для дисплея TM1637.
Если всё работает, то переходим к следующему этапу. Добавим к схеме светики, пищалку и ик-приёмник…
У Вас может быть другая распиновка ик-приёмника. Резисторы 300-1000 ом.
Сначала залейте скетч для обнуления EEPROM…
Теперь я (немного забегая вперёд) опишу алгоритм, а после перейдём к программированию пульта.
Инструкция и как работает
Установите время на часах. Нажмите кнопку перехода в режим будильника (загорится зелёный светик и на дисплее будет отображаться будильник) и установите нужное время. Нажмите кнопку включения будильника (загорится красный светик).
Чтоб вернуться в режим часов нужно снова нажать ту же кнопку. Если не возвращаться в режим часов, то через минуту это произойдёт автоматически.
Сигнал будильника будет воспроизводиться в течении минуты, после этого будет десятиминутная пауза и снова сигнал в течении минуты. Так будет происходить до тех пор, пока будильник не будет выключен. Если во время воспроизведения сигнала нажать кнопку отсрочки, то звук выключится, а время будильника переведётся на десять минут вперёд.
То есть в момент пробуждения у вас будет два варианта — нажать кнопку отключения будильника и вылезать из тряпок, либо нажать кнопку отсрочки и поваляться ещё 10 минут.
После нажатия кнопки отключения будильника установленное время вернётся к изначальному значению. То есть, вы встаёте в 7:00 утра, будильник зазвенел, вы нажали отсрочку, будильник перевёлся на 7:10, зазвенел, вы таки встали, отключили будильник — будильник вернулся на 7:00.
В момент нажатия отсрочки появляется индикация будильника.
Время будильника, его состояние (включён/отключён) и уровень яркости дисплея сохраняются в энергонезависимой памяти.
Нажатия на кнопки сопровождаются звуковым сигналом.
Программирование пульта
Возьмите какой-нибудь пульт, например от телевизора, выберите на нём несколько кнопок (у большинства пультов есть незадействованные кнопки), которыми будете управлять часами/будильником.
Нужно выбрать кнопки, которыми вы будете устанавливать время на часах (прибавлять/убавлять часы и минуты, четыре кнопки). Кнопки для установки будильника — прибавлять/убавлять часы и минуты будильника (четыре кнопки). Кнопка включения/отключения будильника (одна кнопка). Кнопка отсрочки будильника на 10 минут (одна кнопка) и кнопка перехода в режим установки будильника (одна кнопка). Кнопки для регулировки яркости (две штуки).
Заполучим коды кнопок. Откройте «Монитор последовательного порта», и нажмите на пульте кнопку, которой планируете устанавливать время — прибавлять часы:
Нажатия должны быть короткими. Иногда печатаются сразу два числа, первое число это код кнопки (то, что нам нужно), а второе это код повтора (он нам не интересен).
Скопируйте это число и вставьте в скетч:
Повторяем процедуру для кнопки убавления часов:
Вставляем в скетч:
Проделываем всё то же самое для остальных кнопок. В скетче есть комментарии.
И в конце комментируем или удаляем строку…
Заливаем скетч, и в принципе можно пользоваться. Однако такой способ подсчёта времени не выдерживает никакой критики, поэтому предложу пару вариантов. Первый — это использование модуля DS3231 (очень точный и стабильный), а второй — это ежесуточная коррекция времени от большого компьютера. Начну с последнего.
Сразу же скажу, что второй вариант подходит тем, у кого есть компьютер с линуксом или роутер с альтернативной прошивкой.
Синхронизация от компьютера
Идея заключается в следующем, часы подключены (USB, UART) к компьютеру с запущенной на нём программой, которая «слушает» USB-порт в ожидании запроса от часов. Ровно в 00:00:10 часы отправляют запрос компьютеру, а тот в ответ отсылает часам своё системное время.
Добавим в скетч необходимый функционал. Там где счётчик времени добавим блок отвечающий за запрос…
И в конец основного цикла добавим блок отвечающий за приём:
Не забудьте про коды кнопок пульта.
Далее скачиваем программу chasikom, кладём её в домашнюю папку, подключаем часы к компу и запускаем:
У вас будет свой юзер и возможно другое устройство (/dev/ttyUSB0). Проверить можно так:
Через десять секунд установится точное время.
Если нужна прога для какого-либо роутера, тогда напишите в комментах.
Вариант с DS3231
Добавляем в схему модуль:
Скачиваем и устанавливаем библиотеку DS3231, заливаем новый скетч:
Не забывайте про коды кнопок пульта.
Библиотека для DS3231 написана так, что если отсоединить модуль, то программа зависнет в ожидании ответа от модуля.
Теперь возьмите пульт, выставите время (в этом скетче нет коррекции от большого компьютера) и передёрните ардуине питание. Если всё работает правильно, то на часах будет текущее время.
Ну и наконец скетч для работы с модулем часов и коррекцией времени:
На этом пожалуй всё.
Вступайте в Telegram-группу Arduino
Моя компактная версия метеостанции на Arduino c часами реального времени и будильником
Да, очередная метеостанция но такого исполнения не видел, вполне себе законченный проект и не нужно никаких корпусов.
Все функции показал в видео ниже, но вот вкратце текстовая инфа.
Помимо стандартного отображения данных, присутствует:
-Полноценное меню, в котором можно выбрать два режима: полный (как на первом фото) и упрощенное только время и температура с влажностью.
-Установка будильника, по умолчанию просто пищит зуммером (работает кстати только во вкладках Meteo и Meteo+, т.е. если будете в меню во время когда должен прозвенеть будильник, то пропустите его, но если очень нужно, то там несложно добавить и в другие вкладки).
В упрощенном виде отображение секунд (431 и 432 стоки) закомментировал с объяснением причины, кому очень нужно-раскомментите, но учтите что перед этим сдвиньте на два курсор влево где выводятся часы и минуты.
Кстати у кого DHT22 тоже на плате, резистор не нужен (я его зачем-то припаял, но на работоспособности не сказалось).
DHT вешается на 1 цифровой пин, зуммер на 11, часы и BMP по I2C (SCL-A5, ASD-A4).
Но может кому понадобится, нарисовал во Fritzing как подключать к lcd шилду.
Код вроде несложный но большой, если будут вопросы «где что», пишите-отвечу.
А вообще комментарии ко всем основным блокам и функциям оставил.
Если кто захочет собрать так же, ссылки на али где покупал сам (не реферальные):
Как Arduino не крути, всё метеостанции выходят.
Что-то кроме них делают?))
Есть у меня еще гексакоптер на плате Ардупилот (фактически это мега со встроенными датчиками). Но поскольку программу писал не я, то здесь и не освещал.
До метеостанции с будильником пока не добрался, но уже почти все есть, может сделаем потом с дочкой, в качестве школьного проекта для девочки 15-16 лет вполне сгодится.
А получается метеостанция, потому что работать с ардуино надо начинать с постройки 3д принтера. Тогда возможностей будет море. А так — только информационные возможности — показания с датчиков. Чтобы управлять механизмами — надо иметь эти механизмы. Тут очень показательна теплица. Нужно сперва спроектировать и построить теплицу, предусмотрев управление с помощью ардуино. А уже потом датчики и программирование, что составляет лишь часть работы.
П.С. а в фильме «Назад в будущее» профессор собаку кормил при помощи запрограммированного контроллера.
Даже моторы с регуляторами такие же, только их больше и контроллер другой. Стоит ли?
ахаха хотите конечно минусуйте, но вот реально, когда вижу пост с участием arduino и датчика температуры, я часто вижу комментарий «как ардуино не крути. » получается комментаторы тоже не блещут креативом )))))
ЛюдЯм нужна чтобы душа развернулась и не свернулась.
А вы тут метеостанции на все лады тычите
Очевидно не институт)
Ну что же, надо с чего-то начинать — все-таки это почти законченный проект, хотя и кажется не рабочим. То есть не то, что он не работает, просто осталось добавить корпус, разместить в положенном месте и запустить. Ну и данные выложить) Например на https://narodmon.ru/
У нас бы за такой курсач препод голову отгрыз.
В самом деле, бедновато для курсача, разве что дело в коде
Надо быть мазохистом, чтобы покупать шилды к Ардуино, а не нормальные I2C устройства.
Не понятно, как вводится время и дата.
Вроде в коде закомментировано, что модуль реального времени надо самостоятельно настроить, т.е. по примеру из библиотеки
а отрицательные температуры выводит?
шину i2c тоже надо резисторами подтягивать к плюсу, иначе глючит
быть того не может, почитайте на эту тему на student-proger, там всю подробно и с картинками))
А можно чтобы она ещё измеряла скорость ветра и умела отправлять показания в смс?
Можно, и ещё много чего можно
а можно название всех запчастей для того, что бы сделать данный девайс?
В самом начале видео ( https://youtu.be/O6anHvxnuLM ) на паузе показал, но могу продублировать:
Температура и влажность: DHT22 (не самый точный, для чего-то серьезного лучше bme280 заодно и давление показывает);
Остальные (макетка и lcd) в конце статьи в виде ссылок.
У меня с набора Arduino kit DHT11 — вообще, мне кажется, что влажность он от балды выдает. Температуру еще более-менее. Я через attiny13 данные с датчика забираю, ардуинку на это тратить не захотел.
6ulldog, а как можно с вами связаться? у меня несколько вопросов
А вы из тех, которые считают что лучше купить или что?
наши руки не для скуки
Когда заказывал датчики(давно было), не думал что буду делать какой-то проект, а так побаловаться. Если прям заморочиться, то да, bme280 много лучше.
Часы, будильник, термометр. На ARDUINO NANO, DS3231.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Часы, будильник, термометр. На ARDUINO NANO, DS3231.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Красиво. Цвета на картинке поплыли или индикатор дйствительно розовый? Если розовый, дайте пожалуйста ссылку, где брали такой.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
подскажите, плз, как заменить DS3231 на DS1302 в этом скетче?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Красиво. Цвета на картинке поплыли или индикатор дйствительно розовый? Если розовый, дайте пожалуйста ссылку, где брали такой.
немного поиграя с напряжением можно поиграть с оттенком свечения, только осторожно)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
заменить библиотеку и управляющие команды, у меня ds1302 нету не чем помочь не могу. Да и хуже она значительно.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
подскажите, плз, как заменить DS3231 на DS1302 в этом скетче?
На АЛИ как буханка хлеба стоит!
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
я видел, спасибо.
но есть трудности — 1302 у мну есть, а с Али я не смогу получить ближайшее (хз сколько — год, може меньше) время.
так что пытаюсь слепить и говна и палок =)
DarkGenius, спасибо! хоть понятно куда копать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Делаю часы на WS2812B, с внешним беспроводным термометром. Так же хочу прикрутить IR пульт и сделать функцию лампы настроения ( с этим пока туго т.к. не уживаются пульт и эти светодиоды из-за ограничения по «таймингам», если кто пробовал, то посоветуйте куда копать.)
Использую библ. Adafruit_GFX, Adafruit_NeoMatrix, Adafruit_NeoPixel
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На максах дополнительный дисплей реализовал.
https://youtu.be/IJ8PPtEiprQ
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
подскажите, пожалуйста, что означает в строке 221
«clock.isArmed1()»? смотрю в библиотеках(скачал уже штук пять) для этого RTC и не вижу такой команды.
или подскажите, плз, какая команда соответствует из библиотеки DS1302?
суть простая — пытаюсь авторский скетч переделать под DS1302
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
статус будильника, включенвыключен
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
«я догадался, что 0,5 и 0,5 это литр, да постеснялся сказать»(с)
UPD. не подскажешь где библиотеку 3231 брал?
пытаюсь разобраться с командами, что б заменить на 1302, но все библиотеки которые мне попадаются не имеют команд, которые в скетче.
UPD1. сам спросил, сам ответил =) вот библиотека
UPD2. всё-таки 1302 это «г» на палочке — создание будильника целый геморр
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У меня почему то не идет . горят одни восьмёрки. Скетч загрузился без ошибок. индикатор — общий анод. DS3231 предварительно тоже проверял из образцов. В мониторе все показывает нормально. Три раза пересобирал на макетке, думал ошибка. Но всё одно и то же. 🙁
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Да все есть в самом начале. Повторю еще раз, чтоб рядом было.
Подключение к индикатору и кнопки:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
два примера для различных индикаторов. Возможно что то править надо. Под такой индикатор делал, пока не знаю как включенный будильник обозначить.
CommonCathode
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Индикатор 0.56″, зеленый, с ОА такой
попробую предоставленую Вами CommonAnode и потом отпишусь.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пробовал два типа индикатора. Везде восьмёрки после включения. На 13 пине светодиод мигает — точки работают. Должно ведь без кнопок работать ?! На всякий случай подключил кнопку и попробовал.
Подключение ведь такое: 5v — button — пин:12(или 11,10) — 10k resistor — gnd.
Может не правильно предварительно модуль DS3231 прошил ? Брал из примеров библиотеки.
Раньше делал такие варианты и они работали.
но там сервису никакого нету и будильника. Ну и без модуля реального времени.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вот такой еще проект нашел. Вполне рабочий.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Если 13 мигает знать часы идут, похоже я скетчи местами спутал. Где анод там катод и наоборот, исправил. Кнопки просто на корпус, зуммер через сопротивление.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
не знаю как включенный будильник обозначить.
Неспешным (1 — 1/2 Гц) миганием самой правой точки (возе единиц минут).
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На этом индикаторе только две в центре точки, активны. В оригинале последняя горит при активном.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Там же вроде на картинке видны десятичные точки возле цифр. Они что, не горят? Я имел в виду такой точкой помигать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Где анод там катод и наоборот, исправил.
Теперь все скетчи правильно выше предоставлены — CommonCathode — для катода, CommonAnode — для анода. Теперь все заработало. Только на моем индикаторе точки мигают после 3 и 4 цифр одновременнно. Где, в каком месте поправить ? И для меня наверное лучше в первой половине суток, чтобы в переди нолик был. Минуты, часы кнопками правильно выставляються. Будильник, озвучка — все нармально работает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
сравни с первоначальным вариантом, корекция нуля так же в скетче есть надо просто её удалить.
if (Hour > 9) LED_WriteDigit(1, Hour / 10, 0);
изменить на
LED_WriteDigit(1, Hour / 10, 0);
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
точки есть а диодов под ними нет, китайцы.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
сравни с первоначальным вариантом, корекция нуля так же в скетче есть надо просто её удалить.
изменить на
LED_WriteDigit(1, Hour / 10, 0);
Спасибо. Всё получилось. Нолик в переди появился. А в каком месте править, чтобы точку передвинуть чтобы была после второго знака. А то у меня сейчас секундные импульсы(точки) мигают после третей и четвертой цифр вместе. 🙁
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Выкладываю мной исправленный рабочий вариант скеча! Замечания принимаются.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Здрасте, а какую библиотеку часов используете?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Благодарю. А скетчем, где дополнительный экран не поделитесь? В чем там нюансы?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
В данныймомент переписываю его, там экран из десяти модулей 8х8, вот и все нюансы, как только допишу выложу, можктк присоединится к этой группе в вк. https://vk.com/electronicsprojects
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У меня индикатор такой. Как видно, две точки Colon (DP2 и DP3) работают с разными Digit (Dig4 и Dig3, соответственно).
В коде из #29, в «void LED_WriteTime()» я изменил:
DP3 засветился. А DP2 никак не получается зажечь.
Знающие, поделитесь фрагментами кода, как зажечь DP2 вместе с DP3, а также заставить их мигать с частотой 1 Гц.
UPD:
Удалось задействовать DP2, взяв кусок кода из топика, и даже обе DP замигали. Но частота мигания 0,5 Гц.
Поэтому вопрос о мигании DP с частотой 1 Гц остается актуальным.
Также наблюдается слабое свечение сегментов. Замеры показали ток 1 мА на сегмент без использования ограничивающего резистора. Отсюда еще вопрос: где в коде можно изменить яркость свечения сегментов?