[sape_tizer]
Ср. Май 31st, 2023

Что и как строить на земельном участке или обо всем понемногу

Все о инструментах, строительстве, работах, АРДУИНО, электрика, электроника и многое другое

Урок 7. Часы на Ардуино и RTS DS1302 п.1- подготовка

Итак, снова всем здрасьте. После довольно долгого перерыва и создания отпугивателя мышей на Ардуино посмотрел что Вам, уважаемые посетители сайта интереснее всего в статистике Яндекса. Был удивлен тем что большинство из Вас хотят собрать часы на Ардуино. Я почитал свой материал и увидел что обещал написать как работать с модулем реального времени RTC. Прошу прощения за этот недостаток, исправляюсь, описываю. В прошлом уроке мы научились коррректно выводить данные на дисплей. В этом уроке попытаемся доделать полностью готовые часы  с кнопочным управлением. Что нам для этого потребуется:

  1. Ардуино (совершенно любая, но для отладки все таки предпочтительнее Arduino Uno, т.к. размер более большой и позволяет более удобно управляться с проводами)
  2.  RTC  (модуль реального времени, неважно какой RTC DS1302, DS1307 или DS3231) и необходимая для его работы библиотека.
  3.  Дисплей (опять же любой, все будет зависеть какой дисплей вы будете использовать и какую библиотеку будем использовать).
  4. Кнопки (в данном проекте будет достаточно 3 кнопок, можно добавить еще 1 кнопку для отключения срабатывания будильника, или , как вариант, использовать любую кнопку (из указанных трех) для отключения будильника при срабатывании).
  5.  Терпение и творческий подход к делу.

Начинаем.

Я опишу что я буду использовать: плата Arduino Uno, RTC DS1302, дисплей 1602 с модулем I2C (просто хочется попробовать как он работает по I2C), кнопки 3 шт какие найду.

Открываем оболочку для программирования и подключаем библиотеку для работы с RTC. Не буду заострять как это делается но после того как подключили библиотеку к оболочке Ардуино вставляем саму библиотеку в программу часов, устанавливаем курсор в начало 1 строки и делаем следующее: Скетч- Подключить библиотеку- (Выбираем то что подключили к оболочке). Вверху у вас появится строка формата #include <Что-то.h>. Это означает что библиотека подключена и готова к использованию в программе. Затем, чтоб потом не думать почему не работает, жмем кнопку компиляции.

Ошибки при подключении библиотеки RTC
Ошибки при подключении библиотеки RTC

Если у вас выпадет вот такой экран значит библиотека написана с грубыми ошибками и возможно работать не будет. Ищем новую или пробуем исправить эту (это займет много времени но в принципе вы можете написать библиотеку как говорится «под себя»). Ваша цель- найти нужную и которая будет работать без ошибок. Я использовал эту библиотеку для DS1302. Затем мне понадобилась библиотека I2C для LCD. Я использовал вот эту библиотеку. Подключаю таким же способом как и RTS во второй строке (вообще неважно что будет первее стоять в подключаемых библиотеках -RTS или LCD). Следующий момент- как вы будете получать звук будильника если он будет у вас в часах. Тут довольно много возможностей по звукоизвлечению. Можно просто генеририровать звук одной частоты, можно сделать его прерывистым, можно сделать плавающий звук, можно читать звуковые файлы с SD- карты, можно включать модуль радиоприемника и т.д… Вобщем теперь вам надо определится из чего вы будете получать звук. Давайте не будем заморачиваться и просто сделаем прерывистый сигнал с частотой 1кГц, т.е. у нас будет стоять простой буззер из компьютера. Кнопки. Т.к. мы задались минимальным количеством кнопок (3 шт.) то собираем их вот по такой схеме и будем подключать их к порту А0. Данные резисторов совершенно не критичны но старайтесь ставить их больше 1 кОм т.к. небольшой ток через них все равно течет.

Схема подключения кнопок к часам на АРДУИНО
Схема подключения кнопок к часам на АРДУИНО
Схема подключения кнопок к часам на АРДУИНО второй вариант
Схема подключения кнопок к часам на АРДУИНО второй вариант

Можете сделать по второй схеме, но в этом случае резисторы R1, R2 и R3 ставьте разные чтобы контроллер мог определить какой потенциал пришел на его вход. Данная схема позволяет снизить энергопотребление но при этом ей нужны разные номиналы сопротивлений. Резистор, подключенный между -5V и А0 нужен для того чтобы вход А0 имел всегда 0 на входе. По этому условию и будет отслеживаться нажата ли какая кнопка. А по величине напряжения пришедшего на вход- какая именно кнопка нажата. Совет на будущее— всегда притягивайте входы, на которые будет приходить вот такое управление, к земле или к + питания. Иначе вы рискуете в условиях сильных электрических помех словить на вход пульсации которые и обработаются микроконтроллером.  Кроме того резистор позволяет стечь статическому электричеству на землю, что, в случае с длинными проводами к кнопкам, не позволит сгореть входному порту.

Буззер подключаем через транзистор типа кт315. Базу через резистор 1 кОм подключаем, например, к 8 выводу, эммитер к минусу 5v, буззер одним выводом к коллектору кт315 а другим- к +5V.  Резистор защитит порт от пробоя транзистора.

Вот в принципе подготовка к сборке и закончилась. Переходим непосредственно к кодингу часов.

<- На урок 6 Урок 7.2->

 

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