Хочу представить новую схему говорящих часов. Основой данных часов является микроконтроллер ATmega8, микросхема часов используется DS1307, а микросхема термометра — LM75. И микросхема часов DS1307 и микросхема термометра LM75 общаются с микроконтроллером по протоколу I2C или по другому TWI — 2-хпроводный интерфейс. Хранилищем звуковых файлов является micro SD карта памяти, соединяемая с микроконтроллером по SPI интерфейсу. Аудио файлы на карте памяти хранятся в корне и имеют строго определенные имена для того, чтобы контроллер мог точно по имени найти аудио файл для воспроизведения по условиям именно в данный момент в зависимости от события — воспроизвести конкретное время или проиграть трек будильника. На индикацию в данном устройстве выводится много информации — текущее время, дата, день недели, температура окружающей среды, индикация включенности будильника, а также выбранный профиль периодического оповещения. В связи с этим обилием информации в качестве дисплея выбран LCD-дисплей 2 строки по 16 символов. Применение семисегментных индикаторов, считаю, не нужно, потому что время в любой момент времени можно озвучить и прослушать эту информацию, также семисегментников понадобится много, если все же их использовать. А меню настроек на семисегментных индикаторах выглядело бы как-то не очень хорошо. Звуковой сигнал на выходе микроконтроллера сравнительно слабый, поэтому схема часов получила усилитель для полноценности. При воспроизведении звукового файла, загорается светодиод LED1. Также было принято решение не плодить прошивки устройства по частоте звукового сигнала, поэтому ниже будет представлена прошивка на частоту лишь 44 кГц.
Сама схема часов предоставлена ниже:
Пройдемся немного по схеме. Для питания схемы используется линейный стабилизатор напряжения L7805 для 5 вольтового питания и для питания карты памяти параметрический стабилизатор на стабилитроне 3,3 вольта. Микросхему линейного стабилизатора L7805 можно заменить на отечественный аналог КР142ЕН5А, стабилитрон можно заменить на любой другой на данное напряжение. Если вам покажется не совсем удачным такая комбинация, в качестве стабилизатора напряжения можно использовать любые другие микросхемы (LM317, MC34063, LM2576, LM2596 и др.), настроенные на необходимое напряжение на выходе. Стабилитрон так же можно заменить на стабилизатор напряжения. Мною был подобран, наверно, самый экономичный вариант питания схемы. Как было указано выше, микросхема часов DS1307 и микросхема термометра LM75 работают по протоколу I2C. Данный протокол требует подтягивающих pull-up резисторов (то есть подтягивают линию данных к плюсу питания) для корректной работы. Выводы SCL и SDA данных микросхем подтянуты к плюсу питания резисторами R10, R11. Резисторы R9 и R12 также функционально выполняют функцию pull-up резисторов для возможности формирования сигнала на дополнительных выводах микросхем. Функционально данные выводы в схеме не используются — лишь для информации. В будущем при помощи дополнительного вывода микросхемы LM75 OS возможно организовать дополнительно термостат. Этот вывод подает положительный сигнал при превышении заданного порога температуры и отрицательный сигнал при понижении температуры до заданного порога — этакий гистерезис. Обязательным является конденсатор C8, располагать его нужно как можно ближе к выводам микросхемы термометр. Это необходимо для того, чтобы она работала стабильно. Питание микросхемы часов происходит через резистор R7 и диод VD2, необходимы для того, чтобы при отсутствии питания 5 вольт, когда микросхема работает от батарейки, не расходовать ее энергию на всю схему, запитанную от 5 вольт.
Далее в схеме используется LCD-дисплей SC1602. Дисплей использует внутри себя микроконтроллер HD44780, поэтому можно использовать любой другой дисплей на базе такого же контроллера. Резистор R1 подстроечный, он регулирует контрастность символов на дисплее. Можно использовать любой подстроечный или переменный резистор для этих целей вместо указанного в списке элементов, а варьировать номинал резистора можно в разумных пределах. Подсветку такого дисплея можно организовать как на самой плате LCD-дисплея подпаиванием перемычки и резистора (R9 и J3 — маркировка на плате дисплея SC1602) в предусмотренных местах или же через токоограничительный резистор подать напряжение питания на выводы «А» и «К». Номинал токоограничительного резистора составляет порядка 22 — 27 Ом. В зависимости от требуемой яркости номинал можно варьировать, но не рекомендую ниже 22 Ом, больше можно пока не погаснет подсветка полностью. В схеме применен первый вариант включения подсветки, поэтому на схеме устройства это не обозначено. Резистор R2 подтягивает положительное напряжение на вывод микроконтроллера Atmega8 PC6 или reset. это необходимо для предотвращения самопроизвольного перезапуска схемы часов. Номинал в районе кОм можно варьировать при отсутствии заданного на схеме номинала.
Статусный светодиод LED1 подключен к микроконтроллеру через токоограничительный резистор для предотвращения порчи при превышении тока через светодиод. Номинал этого резистора можно изменять в соответствии с используемым светодиодом, а именно его параметров — падении напряжения. Чем меньше падение напряжения на диоде, тем больший номинал резистора нужно использовать для фиксированного тока (в большинстве случаев нельзя превышать ток в 20 мА). Звуковой сигнал снимается с вывода микроконтроллера PB1. Для усиления сигнала используется усилительный каскад на 2-х транзисторах. Транзисторы работают в ключевом режиме, поэтому компенсировать смещение базы не нужно. Конденсатор C6 ограничивает ток через динамик, когда ШИМ не работает. Номинал этого конденсатора можно изменять в широких пределах. Катушка L1 и конденсатор C7 образуют LC-фильтр, необходимый, чтобы убрать шумы. В зависимости от необходимого уровня громкости, коллектор Т1 можно подключать или к 5 вольтам (воpможно потребуется более мощный стабилизатор VR1 в этом случае) или к источнику напряжения 12 вольт.
Аудио файлы хранятся и считываются с карты памяти micro SD. Объем карты можно использовать от стареньких на несколько десятков мегабайт до 32 Гб. Заостряю ваше внимание на то что качество звука может зависеть от качества самой карты памяти. При применении карты памяти на 8 Гб фирмы mirex почему-то было больше шумов по сравнению с картой памяти фирмы kingston. Для воспроизведения звука можно использовать любые динамики. Управление настройками происходит при помощи тактовых кнопок. Их можно заменить на любые другие кнопки. Мощность всех резисторов 0,25 Вт. Номиналы всех конденсаторов можно варьировать в разумных пределах. В качестве резервного питания микросхемы часов используется батарейка типа CR2032. Ее можно заменить на любой другой источник резервного питания. Если не применять резервное питание для микросхемы часов, то при выключении питания время и дата будет сбиваться. Для большей точности ходя часов кварц рекомендуется применять наиболее точный, например, можно использовать кварцы из материнских плат. Нужно также отметить контакт RF — к нему подключается выход модуля переключения на радиобрелках /me/review/review8.php. Необходимо использовать модуль на 12 вольт. При нажатии кнопки брелка произойдет замыкание вывода RF схемы говорящих часов на землю, при этом будет воспроизведено текущее время. Модуль переключения оптимальнее всего настроить в режим «Toggle» — кнопка брелка нажата, контакт RF замкнут на землю, кнопка брелка отжата, исходное положение.
Традиционно схема собиралась на макетной плате для контроллера Atmega8 собственного производства:
Устройство тестировалось в таком виде — проблем обнаружено не было. В качестве источника информации о времени был использован модуль «tiny RTC I2C module». Этот модуль содержит микросхему часов реального времени DS1307z, кварц для этой микросхемы частотой 32,768 кГц и необходимую обвязку для питания от батарейки и линий I2C. Важной информацией может быть то, что микросхемы DS1307 стоят дешевле чем DS1307z. В первом случае за дешевизну можем расплачиваться качеством хода часов, во втором случае более менее все хорошо.
Помимо качества микросхемы часов DS1307 на ход часов влияет кварц, а точнее его частота — погрешность никто не отменял. Если же у Вас не имеется очень хорошего кварца, то немного скорректировать частоту имеющегося можно при помощи подстроечного конденсатора, подсоединенного одним выводом к кварцу, а другим к земле схемы. Вращая движок переменного конденсатора можно будет подстраивать точность хода времени. Вторым вариантом может быть все тоже самое, лишь поставить конденсатор постоянной емкости. В этом случае частота кварца будет скорректирована лишь на фиксированное значение. Эти схемотехнические решения в схему не вносились, но имеют право на жизнь.
Характеристики устройства:
- отображение времени в формате hh:mm:ss
- воспроизведение времени при нажатии на кнопку или радиобрелок при условии его использования
- включение светодиода на время воспроизведения аудио файла
- отображение дня недели
- отображение даты в формате dd/mm/yy
- отображение температуры окружающей среды
- воспроизведение будильника
- отображение включенности будильника
- ежечасное воспроизведение сигнала по трем профилям
- отображение выбранного профиля
- сохранение настроек будильника при выключении питания (сохранение в eeprom)
- хранение текущего времени при выключении питания в микросхеме часов DS1307 за счет резервного питания
Назначение кнопок устройства и настройка:
- для вход в меню настроек необходимо нажать кнопку S5, перелистывание меню настроек осуществляется этой же кнопкой
- для изменения настроек необходимо нажать кнопку S4, например указатель стоит на меню изменения минут, нажатием этой кнопки минуты увеличатся на единицу, при длительном нажатии изменение пойдет быстрее, при достижении 59 минут, следующая цифра будет ноль, для всех настроек предусмотрена защита от переполнения
- находясь в любом уровне меню настроек при нажатии кнопки S1 сражу выйдем в главное меню
- в главном меню при нажатии кнопки S2 будет озвучено текущее время
- при сработке будильника, чтобы остановить сигнал нужно удерживать кнопку S1
- в случае, если трек для будильника очень длинный, можно сбросить сигнал кнопкой S3 — ресет (все потому что устройство при нажатии и удержании кнопки S1 ждет конца трека)
- кнопка S3 — reset всего устройства
В меню настроек будильника необходимо установить непосредственно само время будильника, разрешение на сигнал или просто включить будильник и установить профиль циклического сигнала (0 — не использовать, 1 — в начале каждого часа воспроизвести файл, 2 — воспроизводить в начале каждого часа с 7 утра до 9 вечера). В настройках времени и даты все стандартно — установка непосредственно этих параметров.
Для того чтобы устройство могло воспроизводить ваши собственные записи аудио, при создании нужно знать следующее:
Без соблюдения этих параметров при создании аудио файлов микроконтроллер просто не обнаружит их на флешке.
Для программирования микроконтроллера необходимо использовать программатор, а также задать конфигурацию фьюз битов:
К статье прилагается прошивка для микроконтроллера для схемы говорящих часов, проект proteus (для корректного моделирования необходимо иметь мощный компьютер, иначе симуляция будет тормозить), архив с аудио файлами для проекта, а также небольшое демонстрационное видео (в начале озвучено текущее время, далее сработало ежечасное оповещение — сколько сейчас часов для простоты, далее настраиваем будильник и через минуту активируется сигнал, он повторяется до тех пор пока не будет удержана кнопка S1 или пока не нажать ресет).
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
IC1
МК AVR 8-битATmega81
IC2
Часы реального времени (RTC)DS13071
IC3
Датчик температурыLM75B1
VR1
Линейный регуляторL7805AB1
T1
Биполярный транзисторBD1391
или др. npnT2
Биполярный транзисторBD1401
или др. pnpVD1
СтабилитронBZX55C3V31
VD2
Выпрямительный диод1N41481
L1
Катушка индуктивности20 мкГн1
C1, C3, C5, C8
Конденсатор100 нФ4
C6, C7
Конденсатор47 мкФ2
R1
Подстроечный резистор10 кОм1
3296W-1-103LFR2, R9-R12
Резистор10 кОм5
R3, R4, R8
Резистор390 Ом3
R6
Резистор1.5 МОм1
R7
Резистор200 Ом1
R5
Резистор470 кОм1
C2, C4
Электролитический конденсатор220 мкФ2
S1-S5
Тактовая кнопкаTC-A1095
Z1
Кварц32768 Гц1
LED1
Светодиод1
HG1
LCD-дисплейSC16021
На базе HD44780Speaker
Динамик1
Элемент питания3 В1
CR2032
Карта памятиmicro SD1
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- 21.hex (23 Кб)
- proteus 4b.rar (28 Кб)
- алена 44 кГц.rar (1641 Кб)
1 comment on “Говорящие часы — термометр с календарем”
не читается карта микро сд,нет озвучки. Вроде все правильно спаяно.Прошу помощи