Ведение времени в Arduino
Я работаю над разработкой будильника с использованием Arduino.
Без сомнения, RTC будет лучшим, но это увеличивает цену проекта. Также я открыл цифровые часы (купленные в Интернете) и вижу, что там только одна микросхема (очевидно, она покрыта чем-то черным воском). Но это был только один патч. Похоже, он использовал только контроллер или RTC. Но с помощью только RTC невозможно управлять ЖК-дисплеем. Значит это должен быть только микроконтроллер
Теперь у меня есть три варианта сохранения времени
- Я использую RTC, например DS3231.
- Я использую функцию millis()
- Я использую таймер и прерывания таймера микроконтроллера для свободного запуска таймера.
Могу ли я получить точное время с помощью микроконтроллера?
@muphy, 👍0
Обсуждение1 ответ
Я вижу на eBay, что вы можете купить DS1307 примерно за 10 центов. Неужели это слишком большая плата? Вам также понадобится кристалл и резервная батарея (например, CR2032). Без аккумулятора устройство не сможет запомнить время, если оно выключено.
Если ваше устройство питается от батареи, вы можете просто использовать millis(), однако вам понадобится способ установить время. Резонатор, используемый в Uno, не такой точный, как кристалл, однако в зависимости от вашего проекта его может быть достаточно.
Если вы пытаетесь сэкономить, я бы использовал не Uno или Micro, а голый чип с несколькими дополнительными компонентами (например, развязывающими конденсаторами, парой резисторов и кристаллом).
Да, сейчас я делаю проект со всеми доступными платами, просто после того, как все проверю, перейду к отдельным микросхемам и компонентам., @muphy
- Ошибка модуля часов реального Времени-DS3231
- Установить регистр управления на низкий уровень в ds3231 rtc
- Почему unsigned long переполняется?
- Разница между «time_t» и «DateTime»
- Создание таймера с использованием часов реального времени с указанием времени начала и остановки
- RtcDateTime' не называет тип
- Библиотека времени Arduino и библиотеки RTC
- DS3231 rtc.begin() всегда возвращает false
Это зависит от того, можете ли вы показать нам фотографию вашей платы Arduino? Резонатор на 16 МГц не является точным, но кристалл на 16 МГц довольно хорош. Вам не нужны прерывания, миллис может быть таким же точным, как кварц/резонатор 16 МГц (если в эскизе миллис используется правильно). Библиотеку времени можно использовать с миллисами, а библиотеку времени можно использовать и с ds3231, поэтому ее легко обновить: https://github.com/PaulStoffregen/Time Библиотека времени работает с библиотекой TimeAlarms. Если вам нужны только часы с часами, минутами и секундами, вы можете использовать миллис и написать для них код самостоятельно., @Jot