Главная » Микроконтроллеры
Призовой фонд
на март 2017 г.
1. UNI-T UT-39C
Паяльник
2. Тестер компонентов LCR-T4
Паяльник
3. 100 руб.
От пользователей

Будильник радио

В разных источниках иногда приходилось видеть часы, которые вместо звонка будильника включали радиоприемник. Рассматривая модуль FM тюнера RDA5807m, пришла идея сделать что-то подобное.

Как обычно, без микроконтроллера не обойтись, схема устройства:

В качестве микроконтроллера будем использовать ATmega8a. Это очень популярный и общедоступный микроконтроллер. Использовать его можно как в DIP корпусе, так и в TQFP (здесь только расположение выводов различается для этой схемы). Для продолжительной корректной работы этого микроконтроллера на выводе reset должен быть положительный уровень напряжения, для этой цели используется резистор R4, который подтягивает напряжение питания, создавая надежный потенциал, что предотвращает самопроизвольное перезапускание микроконтроллера. Кнопка S1 предназначена для ручной перезагрузки микроконтроллера. В качестве тактового генератора используется внутренний RC генератор на частоту 8 МГц. В качестве индикатора в схеме используется ЖК дисплей на базе микроконтроллера PCD8544 или более известен этот экран по названию Nokia 5110 или Nokia 3110. Для подключения такого дисплея к микроконтроллеру не нужны дополнительные компоненты, все соединяется в соответствии со схемой. Вся схема устройства питается от напряжения 3,3 вольта, которые получаем посредством стабилизатора AMS1117-3,3 – VR1. Данный стабилизатор напряжения можно заменить на любой другой с выходным напряжением 3,3 вольта, также необходимо учитывать максимальное входное напряжение стабилизатора, чтобы напряжение, которое вы подаете на его вход, не превышало допустимое, что может вывести из строя компонент. Однако для получения звука достаточной громкости необходимо использовать усилитель звука, который питается от более высокого напряжения. В схеме применен усилитель на базе микросхемы TDA7056B, однако этот усилитель можно заменить на абсолютно любой другой, подходящий для вас, например TDA2030, TDA2003 или другие. TDA7056B имеет регулировку громкости потенциометром R9. Схема усилителя построена в соответствии с даташитом, хотя ее можно и доработать для более качественного звука. TDA7056B является моно усилителем, поэтому от модуля RDA5807m берем только один канал звука, либо параллелим их вместе. Звуковой выход тюнера RDA5807m адаптирован для работы наушников с сопротивлением 32 Ом без усилителя звука, но в данной конструкции по определению использование наушников бессмысленно – включение радио в заданный промежуток времени должно разбудить хозяина. Для усилителя на TDA7056B оптимально использовать динамик с сопротивлением 8 Ом. Модуль радио RDA5807m получает настройки от микроконтроллера посредством цифрового интерфейса I2C. Для работы I2C необходимы резисторы R5 и R6, которые формируют положительный перепад напряжения на линиях передачи данных. Из особенностей I2C в RDA5807m необходимо отметить, что в модуля нет возможности обратиться к конкретному регистру, чтобы настроить параметры в одном регистре, необходимо перезаписать и все остальные. После старта I2C и передачи адреса микросхемы с битом чтения или записи указатель регистра автоматически становится на начало регистров чтения или на начало регистров записи и после обращения к одному (первому) регистру указатель автоматически переходит на другой (второй, третий и так далее) регистр. Диаграмму формирования сигналов по линиям I2C для модуля RDA5807m можно посмотреть в даташите, который прилагается в конце статьи. Там же находится и карта регистров радио. Мое мнение, такая организация управления достаточно неудобная, хотя и имеет место быть. Часы в данной схеме используются в виде отдельной микросхемы DS1307. Это одна из самых популярных часовых микросхем среди радиолюбителей. Применить можно микросхему как в корпусе DIP, таки в SO. При разработке схемы DS1307 использовалась в составе модуля Tiny RTC. 

Точность хода таких часов напрямую зависит от качества кварцевого резонатора на частоту 32,768 кГц. Многие утверждают, что наиболее точные экземпляры таких кварцевых резонаторов можно выпаять из старых материнских плат. Также DS1307 имеет резервное питание от батарейки типа CR2032, либо чего-нибудь аналогичного с напряжением 3 вольта. Одним из вариантов замены батарейки резервного питания является ионистор. Потребление от источника резервного питания часовой микросхемы достаточно мало и при применении ионистора емкостью порядка 0,47 – 1 фарад позволит сохранять хронологию времени несколько недель. Однако стоимость ионисторов на сегодняшний день достаточно высока по сравнению с копеечными батарейками. Управление настройками схемы осуществляется кнопками S2 – S5.

Теперь собираем схему. Я применил макетные платы:

Интерфейс устройства достаточно прост. На дисплее мы видим текущее время и частоту станции, на которую настроено радио.

Чтобы задать текущее время, частоту радиостанции и время включения и выключения радио, нужно перейти в меню настроек, нажав на кнопку S5.

Кнопками S3 и S4 увеличивается или уменьшается значение, на которое установлен указатель, кнопкой S5 указатель перемещается на следующие значения. В меню настроек установлена защита от переполнения переменных, поэтому выставить 25 часов или 65 минут будет невозможно. При переполнении вверх значение становится равно нулю, а при переполнении вниз, то есть меньше нуля значение становится максимальным – для часов – это 23 часа, для минут - 59 минут, частоты радиостанций лежат в пределах от 87 до 108 МГц, аналогично защита от переполнения работает и для этой переменной. Чтобы сохранить настройки, установленные в меню, необходимо дойти до последней переменной и еще раз нажать S5, тогда мы все сохраним и автоматически перейдем в главное меню. Также в меню настроек радио автоматически включается и можно слышать волну, настраивая частоту радиостанции, при переходе в главное меню радио отключается. Чтобы включить или выключить радио в главном меню независимо от установленного расписания, необходимо нажать кнопку S2. Кроме того в главном меню кнопками S2 и S3 можно регулировать громкость звука.

Для программирования микроконтроллера необходимо знать конфигурацию фьюз битов, скриншот из AVR Studio:

К статье прилагается файл прошивки для микроконтроллера ATmega8a, исходный код в программе AVR Studio 4 и небольшое видео работы радио-часов.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 Часы реального времени (RTC)
DS1307
1 Поиск в FivelВ блокнот
IC2 МК AVR 8-бит
ATmega8A
1 Поиск в FivelВ блокнот
IC3 Радио модульRDA5807m1 Поиск в FivelВ блокнот
IC4 Аудио усилительяTDA7056B1 Поиск в FivelВ блокнот
VR1 Линейный регулятор
AMS1117-3.3
1 Поиск в FivelВ блокнот
VD1 Выпрямительный диод
1N4148
1 Поиск в FivelВ блокнот
HG1 LCD-дисплейPCD85441 Nokia 5110Поиск в FivelВ блокнот
C1, C3, C4, C7, C8, C11 Конденсатор100 нФ6 C8 - пленочныйПоиск в FivelВ блокнот
C2, C10 Электролитический конденсатор220 мкФ2 Поиск в FivelВ блокнот
C5, C6 Электролитический конденсатор10 мкФ2 Поиск в FivelВ блокнот
C9 Конденсатор1 мкФ1 Поиск в FivelВ блокнот
Z1 Часовой кварц32768 Гц1 Поиск в FivelВ блокнот
S1-S5 Тактовая кнопкаTC-A1095 Поиск в FivelВ блокнот
R1 Резистор
470 кОм
1 Поиск в FivelВ блокнот
R2 Резистор
1.5 МОм
1 Поиск в FivelВ блокнот
R3 Резистор
200 Ом
1 Поиск в FivelВ блокнот
R4-R6 Резистор
10 кОм
3 Поиск в FivelВ блокнот
R7 Резистор
4.7 кОм
1 Поиск в FivelВ блокнот
R8 Резистор
100 кОм
1 Поиск в FivelВ блокнот
R9 Переменный резистор1 МОм1 Поиск в FivelВ блокнот
Ls1 Динамик3 Вт1 Сопротивление 8 - 32 ОмПоиск в FivelВ блокнот
Элемент питания3 В1 CR2032Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 4
Я собрал 0 6
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.8 Проголосовало: 6 чел.

Комментарии (29) | Я собрал (0) | Подписаться

0
civil #
Можно написать От и До или С и По.
Ответить
0

[Автор]
Gauss #
Что написать?
Ответить
0
civil #
На экране вместо Нач и Кон
Ответить
0

[Автор]
Gauss #
Можно и так, если удобнее для восприятия
Ответить
0
dt_andrew #
Из особенностей I2C в RDA5807m необходимо отметить, что в модуля нет возможности обратиться к конкретному регистру, чтобы настроить параметры в одном регистре, необходимо перезаписать и все остальные
Вы не правы, такая возможность у этой микры есть: адрес 0х22
Ответить
0

[Автор]
Gauss #
в даташите об этом не написано, укажите источник, пожалуйста
Ответить
0
Halex #
RDA5807 Programming Manual предпоследняя страница. Правда там на корявом китайском, но понять можно и даже гуглёвым переводчиком перевести, хотя тоже коряво. Кроме того, упоминается на Изиэлектроникс вот здесь - третий снизу пост. Ну и вообще прекрасно ищется в Инете по фразе RDA5807 random access. И это работает, подтверждаю, проверял. Пишем по адресу 0x22, читаем по адресу 0x23 в соответствии с диаграмками в китайской мануале.
Отредактирован 21.07.2015 08:11
Ответить
0

[Автор]
Gauss #
Чисто китайский подход, где-то писать, а где-то умолчать о чем-то в документации (даташит, кстати на другую микросхему немного, с индексом Р). В любом случае спасибо, учту на будущее.
Ответить
0
Halex #
Тут видимо чип допиливался на китайской коленке посредством напильника. Если попытаться перевести Гуглём первую строчку с "заглавными" (ИМХО -жирными) иероглифами, то это звучит, как
Приложение 1: Формат интерфейс I2C Композитный. Потому и в даташите не отражено, а в мануале торчит в конце и обозвано приложением. А что касается P на конце, то она отличается от М только наличием дополнительных копыт (портов GPIO, например, на вывод GPIO3 можно непосредственно приткнуть индикатор стерео/моно) и возможностью работы по трехпроводному последовательному интерфейсу.
Ответить
0

[Автор]
Gauss #
Я имел ввиду, что фактически на один и тот же товар разная информативность в даташитах. Хотя сами микросхемы вполне неплохие, но документация составлена плохо, на мой взгляд, если сравнивать с западными производителями. Мне как то не приходило в голову смотреть решение в даташите на другой вариант микросхемы - у китайцев своя какая-то атмосфера там. Согласитесь, если P и M практически идентичны, то почему бы документацию не сделать одинаковой за исключением лишних пинов, либо же вообще сделать один даташит на линейку продукции?
Ответить
0
Евгений #
Огромное спасибо за пост! Готов проставиться. Очень долго мучился с плавной регулировкой громкости. Теперь все просто и красиво.
Ответить
0
мавр #
Еще лучше - вкл - выкл ( on - off )
Ответить
0

[Автор]
Gauss #
Возможно, вкл - выкл было бы лучше, согласен
Ответить
0
Tig #
Мне кажется с семисегментными индикаторами было бы дешевле сконструировать?
Ответить
0

[Автор]
Gauss #
Зато с ЖК есть простор для модернизации, а с семисегментниками, по-моему, что-то уже проскакивало?
Ответить
0
hardbar #
А что же на семисегментнике выводить? Только цифры?! И кракозяблы которые нужно разбирать.
Приемущество в ЖК - можно прочитать текст, сразу несколько надписей.
Но в готовой конструкции приоритет нужно отдать ЖК 2х16. Он елегантней будет смотрется в готовой конструкции.
Ответить
0

[Автор]
Gauss #
Позвольте не согласиться насчет 16х2 - символы маленькие именно для готовых часов (думаю, что и PCD8544 маловат на самом деле), намного лучше было бы использовать сегментные ЖК дисплеи удобных для глаза, либо пойти по пути цветных дисплеев с красочными часами (задача точно не для avr)
Ответить
0
Tig #
А что, с цветным экраном часы наподобие фоторамки это неплохая идея! Интересно было бы реализовать ее!
Ответить
0

[Автор]
Gauss #
И собирать такие часы никто не станет из-за дороговизны как минимум мне кажется...
Ответить
0
Tig #
Так и правда же ЖК 2х16 с маленькими символами, не удобно совсем
Ответить
0
tzzz #
Как вариант вместо усилителя оставить разъем для подключения внешней акустики для лучшего звука
Ответить
0

[Автор]
Gauss #
Да - так получится лучшее звучание, согласен
Ответить
0
vicfamily #
Собрал ради эксперимента. Часы после настройки в меню, сбрасываются на 85.85.85. на главном экране, а затем и в меню. Не работают кнопки громкости и выкл. звука.
Ответить
0
vicfamily #
Заработало, сам накосячил.
Ответить
0

[Автор]
Gauss #
Наверно был косяк по линии I2C?
Ответить
0
Tig #
Как-то у меня такой китайский модуль часов не сохраняет точность времени со временем
Ответить
0

[Автор]
Gauss #
Скорее всего кварц низкого качества.
Ответить
0
Микола #
Собрал, но ds1307 запустилась только от 5В
Ответить
0
Михаил #
Как влезает HEX-ФАЙЛ в Мегу 8 если у нее память 1К, а тут 22К?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Регулятор мощности 2 кВт Конструктор УНЧ 60 Вт на LM3886
вверх