Ардуино часы без модуля

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

Для сборки данного проекта нам понадобится:
1) Arduino (либо другие аналоги)
2) 4 семисегментных индикатора (AliExpress: http://ali.pub/1armbe)
3) 4 драйвера CD4026 (AliExpress: http://ali.pub/24rkfv)
4) Две кнопки
5) Два светодиода
6) И куча резисторов…

Собираем всё по схеме и заливаем на ардуино следующий скетч:

Основа часов delay(100) – задержка на 100 миллисекунд. Почему именно на 100мс, а не на 1 секунду? Всё просто: чтобы сымитировать миганием светодиодов секунды. 200мс светодиод горит, 800мс – не горит.

Самые простые часы на основе Arduino и LCD (ЖК дисплей) из тех что мы когда-то делали. Нам потребуются только Arduino UNO, 16×2 ЖК-дисплей и две кнопки. Никаких резисторов, никаких потенциометров.

Комплектующие

Начинаем с деталей, которые нам понадобятся для проекта цифровых часов на Ардуино Уно:

  • Arduino UNO & Genuino UNO x 1
  • Стандартный ЖК-дисплей Adafruit — 16×2 (белый на синем) x 1
  • Кнопочный переключатель SparkFun 12 мм × 2
  • Макетная плата половинного размера × 1
  • Провода перемычки (на выбор)

Что за идея

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

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

На скриншоте выше видно, что код реализован таким образом, что теперь инкремент s будет выполняться каждую 1 секунду и не больше, в зависимости от времени выполнения цикла loop<>.

Читайте также:  Zombie army trilogy left 4 dead

В связи с этим резисторы и потенциометры мы полностью удалили.

Кнопки настройки времени вы можете использовать встроенные в микросхему ATmega328P.

pinMode(hs, INPUT_PULLUP) избегает использования внешнего Pullup. Подробнее о INPUT_PULLUP читайте в нашем Справочнике программиста Ардуино.

Избегайте потенциометра ЖК-дисплея.

Контрастность ЖК-дисплея может быть установлена с помощью сигнала PWM (Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM))) Arduino.

То же самое для подсветки, которая питается сигналом ШИМ (PWM) Arduino, поэтому её можно установить как вкл/выкл с помощью Arduino.

Схема проекта

Принципиальная схема нашего проекта выглядит таким образом:

Схема соединения всех комплектующих для наших цифровых часов Ардуино выглядит так:

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

Также не забываем, что мы в самом начале подключаем библиотеку LiquidCrystal, которую вы можете скачать в разделе Библиотеки на нашем сайте.

Результат

На этом пока всё, надеемся, что ваши цифровые часы Ардуино идут точно секунда в секунду.

цифровая электроника вычислительная техника встраиваемые системы

Часы на Arduino без использования модуля RTC

Одним из первых проектов, которые новички собирают на основе платы Arduino, являются простые часы, ведущие отсчет времени. В основном такие часы основаны на подключаемом к Arduino модуле RTC (Real Time Clock или Часы реального времени). Сегодня на рынке электронных компонентов доступны разные модели RTC, различающиеся точностью и ценой. Среди распространенных моделей можно назвать DS1302, DS1307, DS3231.

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

Читайте также:  Kpl avg что это

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

Данные часы можно собрать на обычной макетной плате, поскольку здесь не потребуется много компонентов. Основным нашим звеном здесь будет плата Arduino Uno. Для отображения времени можно взять ЖК-дисплей 16×2. Для изменения настроек времени следует подключить две кнопки (для часов и минут). Кнопки подключаются к Aduino через резисторы 10 КОм. Чтобы изменять яркость дисплея потребуется потенциометр на 10 КОм. Схема подключения всех этих компонентов к плате Arduino Uno представлена ниже.

Теперь следует запрограммировать Arduino. Простой код (скетч), позволяющий выводить время на экран LCD-дисплея приведен ниже.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *