Site Loader

Содержание

Простые часы на светодиодных матрицах – LightPortal

Многие  радиолюбители, начинающие и не только любят «изобретать велосипед» –  строить  СВОИ электронные часы.  Не обошла эта участь и меня.  Конструкций часов в инете сегодня конечно предостаточно,   но вот  часов на светодиодных матрицах  почему-то среди них единицы.  В русскоговорящем интернете я нашел только одну полностью законченную конструкцию.  В тоже время, светодиодные матрицы сейчас очень сильно подешевели,  и их стоимость  не выше,  а то и ниже,  чем у семисегментных индикаторов  такого же размера.     Например  примененные мной GNM23881AD  при размере  60х60мм были куплены за 1,5уе  (3 индикатора обошлись в 4,5уе)    за  эти  деньги вы вряд ли   купите  четыре семисегментника  таких-же  размеров).   А вот  информации, разместить  на матричном индикаторе, можно намного больше.  Кроме цифр на них можно отображать   буквы,  знаки, а с помощью  бегущей строки еще и текст.    Исходя  из  этого, появилось  желание  построить   часы   на светодиодных матрицах,   но  чтоб схема при этом   получилась  не сложнее чем  на  семисегментниках.

  Также хотелось чтоб она была   достаточно функциональна и не похожа на другие.     Так родилась следующая схема.

Функционал у часов такой:

  • Отсчет времени,  календарь,  день недели.  (високосный год учитывается,  переход  на летнее/зимнее время не осуществляется).
  • Сохранение хода часов при пропадании внешнего питания (потребление составляет 15мка).
  • Коррекция хода + –  59,9сек\сутки,  с шагом 0,1сек.
  • 9 будильников.  3 из которых «одноразовые», и  6 «постоянных»,  индивидуально настраиваемых по дням недели.
  • Индивидуально настраиваемая длительность звукового сигнала каждого будильника (1-15мин).
  • Звуковое подтверждение нажатия кнопок  (возможно отключить).
  • Ежечасный звуковой сигнал (возможно отключить).   С 00-00  до  08-00  сигнал не подаётся. 
  • 1 или 2  датчика температуры (Улица и дом).
  • Настраиваемая бегущая строка, посредством которой выводится вся информация (кроме времени)
  • Значение коррекции хода, и настройки «бегущей  строки» –  сохраняются даже при пропадании резервного питания.

«Сердцем» часов выбрана AtMega16A, из-за её доступности, дешевизны и «ногастости».  Схему хотелось максимально упростить,  поэтому все что можно, было возложено на контроллер.  В результате удалось обойтись всего двумя микросхемами,  контроллером и регистром с мощными выходами TPIC6B595.   Если кому то недоступен TPIC6B595,  то можно его заменить на  74НС595 + ULN2803. Оба варианта были опробованы.   Так же можно попробовать применить  TPIC6С595,  она немного слабовата, и  слегка грелась,  но в целом работала стабильно.  Отсчет времени  производится   с помощью асинхронного тайме – Т2.     Ход  часов продолжается и  при пропадании  питания.  В это время бОльшая часть  схемы  обесточена,  и  только  контроллер  получает питание  от батарейки, аккумулятора , или от ионистора.  Мне было интересно «по играться» с ионистором,   поэтому применил его.  Ток потребления часами в дежурном режиме составляет  15мка.   При питании от ионистора на 1Ф,  часы «продержались»   четверо суток.   Этого вполне достаточно для поддержания хода во время перебоев питания.   Если применить батарейку СR2032,  то теоретически, по расчетам  заряда должно хватить на 1,5года.    Наличие сетевого напряжения контроллер «слушает»  через  вывод РВ.3.  Напряжение питания,  через делитель R2-R3 подается на вывод  РВ.3,    и в нормальном состоянии равно примерно 1,5в.  Если внешнее напряжение упадет ниже  4,1 вольта,  то напряжение на выводе РВ.3    станет   меньше 1,23вольта,  при этом  сгенерируется прерывание от компаратора, и в обработчике этого прерывания  выключаются все «лишние»  узлы контроллера   и сам контроллер усыпляется.  В этом режиме продолжает работать только отсчитывающий время таймер Т2.  При появлении внешнего питания, напряжение на  РВ.3  сново  подымится выше 1,23в,  контроллер «увидев» это, переведет все узлы в рабочее состояние.  Если  вместо ионистора, будет использоваться батарейка СR2032,  то её нужно подключить через диод(предпочтительно диод шоттки).  Анод  диода подключается к + батарейки,  а катод к катоду VD1. 

В обычном режиме на экране отображается время в формате часы-минуты.  С интервалом в одну  минуту происходит запуск бегущей строки.  Бегущей строкой отображается день недели,  дата,  год,  темп.  дома, и темп. на улице.  Бегущая строка настраиваемая,  т.е.  можно включить/выключить отображение любого из элементов.  (я например всегда отключаю отображение года).  При выключении отображения всех  элементов  бегущей строки, она  не запускается вовсе,  и часы постоянно отображают только время.

9 будильников разделены на 3 одноразовых и 6 многоразовых.  При включении будильников   1-3, они  срабатывают только один раз.  Для того чтоб они сработали еще раз, их нужно повторно включать вручную.  А будильники 4-9  многоразовые,  т.е. они будут срабатывать ежедневно, в установленное время.  Кроме того эти будильники можно настроить  на сработку только в определенные  дни недели.  Это  удобно, например если не хотите чтоб будильник разбудил Вас в выходные.  Или  например Вам нужно просыпаться в будние дни в 7-00,  а в четверг в 8-00, а на выходных будильник не нужен.  Тогда настраиваем один многоразовый  на 7-00 в  понедельник-среду и пятницу,  а второй на 8-00 в четверг…..      Кроме того все будильники имеют настройку длительности сигнала,  и если Вам, для того чтоб проснуться,  мало сигнала в течении 1 минуты,  то можно увеличить его на  время от 1 до 15мин.

Коррекция хода производится один раз в сутки, в 00-00.  Если часы спешат к примеру на 5 сек в сутки,  то в 00-00-00 время  установится в 23-59-55,  если же часы отстают на 5 сек,  то в 00-00-00  время установится в 00-00-05.    Шаг коррекции – 0,1 сек.  Максимальная коррекция – 59,9 сек/сутки.     С исправным кварцем больше вряд ли понадобиться.   Коррекция осуществляется и в дежурном режиме при питании от батареи.

Светодиодные матрицы  можно использовать любые 8*8 светодиодов с общим катодом.  Как уже было указано, я применил GNM23881AD.  В принципе можно «набрать» матрицу и из отдельных светодиодов.   Микроконтроллер AtMega16a  можно заменить на «старый»  AtMega16 с буквой L.  При этом, теоретически должен немного увеличится ток потребления от батарейки.  Наверное будет работать и просто  AtMega16, но могут возникнуть проблемы при работе от 3х вольтовой  батарейки.   Диод  D1  – желательно любой диод  шоттки.   С обычным выпрямительным тоже работает,  но чтоб обезопасить себя от различных глюков,  связанных с тем что часть схемы питается напряжением «до диода»,  а часть «после диода»  лучше поискать шоттки.  Транзистор VT1 – любой   n-p-n.

Управление часами осуществляется двумя кнопками.  Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок,   но захотелось  попробовать «выкрутится» всего двумя.   Кнопки условно названы «ОК» и «ШАГ».  Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню,  а кнопкой «ОК» изменение параметров  текущего меню.    Сигнал  сработавшего  будильника  также выключается   кнопками  «ОК» или «ШАГ».    Нажатие  любой  кнопки  во время сигнала будильника  отключает  его.     Схема управления получилась такой:

Конструктивно часы выполнены на одной ПП.  Размер ПП соответствует размеру индикаторов.    Минимальная ширина дорог ПП – 0,4мм,  расстояние между – 0,4мм.   Так что любители «ЛУТа»  смогут без труда изготовить плату самостоятельно.

Все элементы – в SMD  исполнении, и расположены с одной стороны платы.  А индикаторы с другой.  Получается  миниатюрный монолитный блок, который легко встроить в какой ни будь небольшой плоский корпус.

Корпус   спаян из стеклотекстолита,  прошпаклеван и покрашен в цвет «спелая вишня».   Стекло передней панели – обычное  тонированное стекло.

Финальный результат.

V1_07 

Добавлена регулировка яркости. Схема не меняется. Регулировка яркости производится либо по времени, либо в зависимости от освещенности. Тип регулировки выбирается автоматически. Если подключен фоторезистор, то яркость индикаторов меняется в зависимости от освещенности, а если фоторезистор не подключен, то вручную устанавливаем время когда снижать яркость экрана, и когда восстанавливать обратно. 

Настройка по времени производится так. В меню “НАСТРОЙКИ” после переопределения датчиков температуры (если датчик один, или вовсе нет, то после настройки скорости строки) мы попадаем в меню где устанавливаем время снижения яркости, и время восстановления, а также желаемый уровень снижения яркости.

Если фото датчик (фоторезистор) подключен, то после переопределения датчиков температуры мы попадем в меню “калибровки фоторезистора” В это время на экран выводится результат измерения напряжения на фоторезисторе. Нужно осветить датчик чем нибудь очень ярким и нажать кнопку “ОК”. Программа запомнит это значение. Это делается для того чтоб отсечь “мертвую зону”.

Фоторезистор подключается к выводу РА.7 Подойдет любой фоторезистор у которого световое и темновое сопротивление изменяется в 50 и более раз(у современных фоторезисторов как правило 500-2000). Резистор R4 должен быть примерно в 10 раз больше чем световое сопротивление фоторезистора. Если у вашего фоторезистора световое сопротивление меньше 0,5ком, нужно последовательно с ним включить обычный резистор, чтоб общее сопротивление стало 0,5ком.

СХЕМА ПОДКЛЮЧЕНИЯ ФОТОРЕЗИСТОРА.

V1_08

Убрал глюки в работе датчиков ds18b20. периодически один, а то и два датчика “пропадали” (было не у всех)

Добавил контроль аварии датчиков температуры. Теперь если в течении 5 минут не удалось ни разу считать с датчика показания, то выводится температура -99″. 

Добавил “запоминание” уличный/домашним датчик. Данные сохраняются в еепром, и теперь после ресета контроллера, или смены батарейки, настройки где какой датчик не сбиваются.

vlego обнаружил глюк. Если в 23часа 59минут и более 40 секунд обнулить секунды, то время перескакивало на 24:00. И далее соответственно 25ч.26ч… Поправил.

V1_09

Добавлена настройка интервала между запуском бег строки. В меню “НАСТРОЙКИ” , после установки яркости ночного режима, попадаем в меню настройки интервала запуска бег. строки. Можно установить интервал – от 1сек до 3мин 59сек.

Добавил возможность включать/отключать отображение десятых долей температуры в исходнике

Код:

//_________/

//поставьте единичку если нужно отображать температуру с десятыми долями градуса

#define   TENTH_HOUSE       0         // для температуры дома

#define   TENTH_STREET      0         // для температуры на улице

//_________/

Часто задаваемые вопросы (FAQ)

Цитата:

Спаял часы, они заработали, но 4 столбца матрицы не работают. что делать?….

Скорее всего забыли снять фьюз JTAGEN. Новые контроллеры идут с завода с уже установленным фьюзом JTAGEN

Цитата:

Что то собрал я часы. Прошил. А они не пошли. что может быть??

Для начала, тщательно промойте плату, проверьте монтаж на предмет замыканий и обрывов, проверьте правильность установленных номиналов деталей. Проверьте качество источника питания(зарядки от сотовых могут не “тянуть” часы). Еще раз прошейте контроллер, с проверкой качества записи(верификация). судя по отзывам в форуме, 99% не запустившихся часов, начинают работать после удаления всех косяков.

Собранные без ошибок, и из исправных деталей часы, начинают работать сразу! 

***********************************************************

Статья на сайте автора – http://mdoga.ru/Designs/Matrix%20clock%20mega16/Matrix%20clock%20mega16.htm

Эта же статья на “Радиокоте” – http://radiokot.ru/circuit/digital/home/103/

Актуальный форум с последними прошивками и активным обсуждением – http://radiokot.ru/forum/viewtopic.php?f=20&t=50199

P.S. От автора портала. Собрал двое часов, одни на круглых, другие на квадратных сегментах. Очень доволен. Спасибо автору и пожелание творческих успехов, весьма удачная конструкция!

Простые часы на светодиодных матрицах.

Простые часы на светодиодных матрицах.

Многие  радиолюбители, начинающие и не только любят «изобретать велосипед» —  строить  СВОИ электронные часы.  Не обошла эта участь и меня.  Конструкций часов в инете сегодня конечно предостаточно,   но вот  часов на светодиодных матрицах  почему-то среди них единицы.  В русскоговорящем интернете я нашел только одну полностью законченную конструкцию.  В тоже время, светодиодные матрицы сейчас очень сильно подешевели,  и их стоимость  не выше,  а то и ниже,  чем у семисегментных индикаторов  такого же размера.     Например  примененные мной GNM23881AD  при размере  60х60мм были куплены за 1,5уе  (3 индикатора обошлись в 4,5уе)    за  эти  деньги вы вряд ли   купите  четыре семисегментника  таких-же  размеров).   А вот  информации, разместить  на матричном индикаторе, можно намного больше.  Кроме цифр на них можно отображать   буквы,  знаки, а с помощью  бегущей строки еще и текст.    Исходя  из  этого, появилось  желание  построить   часы   на светодиодных матрицах,   но  чтоб схема при этом   получилась  не сложнее чем  на  семисегментниках.   Также хотелось чтоб она была   достаточно функциональна и не похожа на другие.     Так родилась следующая схема.

 

Функционал у часов такой:

  • Отсчет времени,  календарь,  день недели.  (високосный год учитывается,  переход  на летнее/зимнее время не осуществляется).
  • Сохранение хода часов при пропадании внешнего питания (потребление составляет 15мка).
  • Коррекция хода + —  59,9сексутки,  с шагом 0,1сек.
  • 9 будильников.  3 из которых «одноразовые», и  6 «постоянных»,  индивидуально настраиваемых по дням недели.
  • Индивидуально настраиваемая длительность звукового сигнала каждого будильника (1-15мин).
  • Звуковое подтверждение нажатия кнопок  (возможно отключить).
  • Ежечасный звуковой сигнал (возможно отключить).   С 00-00  до  08-00  сигнал не подаётся.  
  • 1 или 2  датчика температуры (Улица и дом).
  • Настраиваемая бегущая строка, посредством которой выводится вся информация (кроме времени)
  • Значение коррекции хода, и настройки «бегущей  строки» —  сохраняются даже при пропадании резервного питания.

«Сердцем» часов выбрана AtMega16A, из-за её доступности, дешевизны и «ногастости».  Схему хотелось максимально упростить,  поэтому все что можно, было возложено на контроллер.  В результате удалось обойтись всего двумя микросхемами,  контроллером и регистром с мощными выходами TPIC6B595.   Если кому то недоступен TPIC6B595,  то можно его заменить на  74НС595 + ULN2803. Оба варианта были опробованы.   Так же можно попробовать применить  TPIC6С595,  она немного слабовата, и  слегка грелась,  но в целом работала стабильно.  Отсчет времени  производится   с помощью асинхронного тайме – Т2.     Ход  часов продолжается и  при пропадании  питания.  В это время бОльшая часть  схемы  обесточена,  и  только  контроллер  получает питание  от батарейки, аккумулятора , или от ионистора.  Мне было интересно «по играться» с ионистором,   поэтому применил его.  Ток потребления часами в дежурном режиме составляет  15мка.   При питании от ионистора на 1Ф,  часы «продержались»   четверо суток.   Этого вполне достаточно для поддержания хода во время перебоев питания.   Если применить батарейку СR2032,  то теоретически, по расчетам  заряда должно хватить на 1,5года.    Наличие сетевого напряжения контроллер «слушает»  через  вывод РВ.3.  Напряжение питания,  через делитель R2-R3 подается на вывод  РВ.3,    и в нормальном состоянии равно примерно 1,5в.  Если внешнее напряжение упадет ниже  4,1 вольта,  то напряжение на выводе РВ.3    станет   меньше 1,23вольта,  при этом  сгенерируется прерывание от компаратора, и в обработчике этого прерывания  выключаются все «лишние»  узлы контроллера   и сам контроллер усыпляется.  В этом режиме продолжает работать только отсчитывающий время таймер Т2.  При появлении внешнего питания, напряжение на  РВ.3  сново  подымится выше 1,23в,  контроллер «увидев» это, переведет все узлы в рабочее состояние.  Если  вместо ионистора, будет использоваться батарейка СR2032,  то её нужно подключить через диод(предпочтительно диод шоттки).  Анод  диода подключается к + батарейки,  а катод к катоду VD1.  

В обычном режиме на экране отображается время в формате часы-минуты.  С интервалом в одну  минуту происходит запуск бегущей строки.  Бегущей строкой отображается день недели,  дата,  год,  темп.  дома, и темп. на улице.  Бегущая строка настраиваемая,  т.е.  можно включить/выключить отображение любого из элементов.  (я например всегда отключаю отображение года).  При выключении отображения всех  элементов  бегущей строки, она  не запускается вовсе,  и часы постоянно отображают только время.

9 будильников разделены на 3 одноразовых и 6 многоразовых.  При включении будильников   1-3, они  срабатывают только один раз.  Для того чтоб они сработали еще раз, их нужно повторно включать вручную.  А будильники 4-9  многоразовые,  т.е. они будут срабатывать ежедневно, в установленное время.  Кроме того эти будильники можно настроить  на сработку только в определенные  дни недели.  Это  удобно, например если не хотите чтоб будильник разбудил Вас в выходные.  Или  например Вам нужно просыпаться в будние дни в 7-00,  а в четверг в 8-00, а на выходных будильник не нужен.  Тогда настраиваем один многоразовый  на 7-00 в  понедельник-среду и пятницу,  а второй на 8-00 в четверг…..      Кроме того все будильники имеют настройку длительности сигнала,  и если Вам, для того чтоб проснуться,  мало сигнала в течении 1 минуты,  то можно увеличить его на  время от 1 до 15мин.

Коррекция хода производится один раз в сутки, в 00-00.  Если часы спешат к примеру на 5 сек в сутки,  то в 00-00-00 время  установится в 23-59-55,  если же часы отстают на 5 сек,  то в 00-00-00  время установится в 00-00-05.    Шаг коррекции – 0,1 сек.  Максимальная коррекция – 59,9 сек/сутки.     С исправным кварцем больше вряд ли понадобиться.   Коррекция осуществляется и в дежурном режиме при питании от батареи.

Светодиодные матрицы  можно использовать любые 8*8 светодиодов с общим катодом.  Как уже было указано, я применил GNM23881AD.  В принципе можно «набрать» матрицу и из отдельных светодиодов.   Микроконтроллер AtMega16a  можно заменить на «старый»  AtMega16 с буквой L.  При этом, теоретически должен немного увеличится ток потребления от батарейки.  Наверное будет работать и просто  AtMega16, но могут возникнуть проблемы при работе от 3х вольтовой  батарейки.   Диод  D1  — желательно любой диод  шоттки.   С обычным выпрямительным тоже работает,  но чтоб обезопасить себя от различных глюков,  связанных с тем что часть схемы питается напряжением «до диода»,  а часть «после диода»  лучше поискать шоттки.  Транзистор VT1 – любой   n-p-n.

Управление часами осуществляется двумя кнопками.  Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок,   но захотелось  попробовать «выкрутится» всего двумя.   Кнопки условно названы «ОК» и «ШАГ».  Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню,  а кнопкой «ОК» изменение параметров  текущего меню.    Сигнал  сработавшего  будильника  также выключается   кнопками  «ОК» или «ШАГ».    Нажатие  любой  кнопки  во время сигнала будильника  отключает  его.     Схема управления получилась такой:

 

Конструктивно часы выполнены на одной ПП.  Размер ПП соответствует размеру индикаторов.    Минимальная ширина дорог ПП – 0,4мм,  расстояние между – 0,4мм.   Так что любители «ЛУТа»  смогут без труда изготовить плату самостоятельно. 

 

Все элементы — в SMD  исполнении, и расположены с одной стороны платы.  А индикаторы с другой.  Получается  миниатюрный монолитный блок, который легко встроить в какой ни будь небольшой плоский корпус.

  

Корпус   спаян из стеклотекстолита,  прошпаклеван и покрашен в цвет «спелая вишня».   Стекло передней панели – обычное  тонированное стекло.   

Финальный результат.

 

>>> Видео работы часов

 

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

Ну вот в принципе и все.  Ниже есть все необходимое для повторения часов.   Вопросы  можно задавать  на  форуме .   Если у кого появятся интересные идеи,  так же  пишите не стесняйтесь.  Удачи, и спасибо за внимание.

************************************************************* ************************************************************

АПГРЕЙД  …….

Судя по отзывам после публикации статьи  проектом заинтересовались.  Многие  повторили.  Значит нужно развиваться   дальше.  )))   На  данный момент  самая свежая прошивка —   V1_06.   В ней добавлены —   «скроллинг»  цифр,  полностью  переписана работа  будильников(были глюки при одновременном использовании нескольких будильников),  названия дней недели в настройках будильников сделаны привычные двухбуквенные (было – пон, вто, сре….)  и неделя начинается с понедельника (было на американский манер с воскресенья).    Также добавлена поддержка  AtMega32  (нужна перекомпиляция),    новые шрифты цифр (выбор пока на этапе компиляции),    переназначение  датчиков температуры (можно программно определить какой датчик является домашним,  а какой уличным),    регулировка скорости бегущей строки,   и   кое что по мелочи.   Также отловлены мелкие  глюки,  и конечно же добавлены большие новые )))).    

Регулировка скорости бегущей строки находится в пункте «НАСТРОЙКА».  Теперь после настройки    звукового сигнала   клавиатуры,  по нажатию кнопки    «ШАГ»  мы не возвращаемся  в основной режим,  а переходим к настройке скорости.    На экране  в это время бежит  текст,   а кнопкой «ОК»  можно  регулировать  его  скорость.    Когда    выставите желаемую скорость,   нажмите  «ШАГ» и выйдите из этого пункта меню.   Теперь   везде скорость  текста  будет  такой, как вы установили.      

Если в часах установлено два датчика температуры  ds18b20,  то после настройки скорости строки,  мы попадаем в меню   «переопределения»   датчиков.   В этом меню можно  указать какой датчик у нас находится дома,  а какой на улице.   На  экране в это время  выводится  буква «д»  и температура одного из датчиков.  Нажатием  кнопки   «ОК»  переключаем датчики  так, чтоб на экране отображалась  «домашняя»  температура.   После чего кнопкой «ШАГ»  выходим из этого меню.   Если в часах установлен один датчик,  или не установлено вовсе,  то в пункт переопределения датчиков мы не попадаем,  и сразу после  настройки скорости строки переходим в основной режим.  

Больше всего  вопросов поступило по  применению  матриц   с ОА в строке,  и замене регистра  TPIC6B595.      Самый  простой и дешевый вариант заменыTPIC6B595 это регистр  74HC595 +  ULN2803.   Также можно заменить  на  74HC595 +  восемь  ключей на отдельных  транзисторах.   Транзисторы подойдут и биполярные структуры NPN,   и  полевики (мосфеты)    N-канальные.      

 

СХЕМА   74HC595 +  ULN2803

 

СХЕМА  74HC595 +  восемь   NPN транзисторов.

 

СХЕМА  74HC595 +  восемь   N-канальных полевых транзистора (практически повторяет предыдущую схему). 

Для  того чтоб в часах  применить  матрицы  с «ОА» в строке  их нужно  немного доработать.   Для этого нам понадобится крупный напильник (рашпиль)   и станок лазерной резки…….  ))))))     Шучу, я шучу,   ничего для этого нам не понадобится,   Достаточно просто развести печатную плату по другому.      Вы  спросите, а как это матрица с ОА  будет работать в схеме с ОК?     Легко!    Дело в том, что понятие  «ОК»  или «ОА»   для светодиодной матрицы   довольно условное,   и  для того чтобы «превратить»   матрицу   с ОА   в строке в матрицу   с ОК,   достаточно  всего лишь повернуть её на 90 градусов влево или вправо.

 

Матрица ОА

 

Поворачиваем на 90 градусов и получаем матрицу ОК

Попутно давайте разберемся   с «путаницей»  в маркировке.   Многие наверное заметили что  матрицы   с  общим катодом в строке,  в  прайсах   продавцов  значатся   матрицами с общим анодом.  А все потому,  что производители   маркируют матрицы не по строкам,  как многие привыкли ,  а по столбцам.    По мне, это как то нелогично,  но производителям как говорится  видней….      Давайте будем  называть  матрицы у которых в нормальном положении  в строке катоды диодов – матрицами с ОК,  а у которых в строке аноды – матрицами  с ОА.       Ну а для данной конструкции  можно  с этим вообще  не заморачиваться,   и сначала,  приобрести  матрицы,  а потом  изготовить нужный вариант  платы.     

 

 

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

Напротив   FONT  вместо нолика поставьте  номер желаемого шрифта от 0  до 6.      (0 –   «родной» шрифт).    Компилируйте и прошивайтесь.   

(шрифты рисовал  форумчанин   sirgio  с сайта радиокот).   

 

Для    применения   AtMega32   также понадобится перекомпиляция.    В начале исходника найдите строчки

Напротив    #define   ATMEGA16   поставьте ноль,  а напротив    #define   ATMEGA32      поставьте единичку.   Компилируйте и прошивайтесь.

 

 

Вариант замены  TPIC6B595  на    74нс595+8 транзисторов ВС817 был опробован в железе.    Работает нормально.   Корпус новых часов сделал из  оргстекла.   На матрицы наклеил тонировочную автомобильную пленку зеленого цвета.   Это немного снижает яркость,  зато здорово добавляет контрастности, и улучшает эстетическое восприятие ))).   Но главное — на солнце читаемость становится лучше.    Вообще, я если честно разочарован зелеными матрицами.    При той же заявленной яркости что и красные, и при большем закаченном в них токе чем у красных – читаемость на солнце у них гораздо хуже.  

 

74нс595+8 транзисторов ВС817  вместо TPIC6B595.  Места много, все прекрасно помещается. 

Индикаторы без светофильтра.  Яркость хороша, но читается плохо. 

Индикаторы со светофильтром.  Менее ярко,  но читаемость лучше. 

Корпус из оргстекла.  

Контроль за соблюдением тех. норм и допусков,  осуществлялся серьёзными специалистами высокого уровня. 

Ну и напоследок  >>>видео   новых возможностей часиков.

(«старые» возможности смотрите на видео выше),  и


>>>видео двух часов рядом.  (В этот раз взял у друга камеру получше,  теперь мерцаний и прочей ерунды невидно.)

Вот, вроде пока и все. В ближайших планах  добавить всякие спецэффекты при смене информации,  сделать пины контроллера к которым подключены  столбцы  программно переназначаемыми (идея  форумчанина ВНН),    В далеких планах,  — очень хочется сделать голосовое проговаривание времени  каждый час, и при сработке будильников.  Пока понятия не имею как к этому подступится,  и реально ли это сделать  на данном железе,  но самый «жирный» таймер контроллера   Т1  специально нигде не использовал,  берегу  для этой задачи.

Принимаю интересные идеи для реализации.

Коммерческое использование конструкции без разрешения автора — запрещено

Файлы:
01.rar
02.rar
03.rar
04.rar
05.rar
06.rar
07.rar
12.jpg


Все вопросы в Форум.

Часы на светодиодных матрицах

Простые часы на светодиодных матрицах. Многие радиолюбители, начинающие и не только любят «изобретать велосипед» — строить СВОИ электронные часы. Не обошла эта участь и меня. Конструкций часов в инете сегодня конечно предостаточно, но вот часов на светодиодных матрицах почему-то среди них единицы. В русскоговорящем интернете я нашел только одну полностью законченную и описанную конструкцию. В тоже время, светодиодные матрицы сейчас очень сильно подешевели, и их стоимость не выше, а то и ниже, чем у семисегментных индикаторов такого же размера. Например примененные мной GNM23881AD при размере 60х60мм были куплены за 1,5уе (3 индикатора обошлись в 4,5уе), за эти деньги врядли можно купить четыре семисегментника таких-же размеров. А вот информации, разместить на матричном индикаторе, можно намного больше. Кроме цифр на них можно отображать любые буквы, знаки, а с помощью бегущей строки еще и текст.

 

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

 

Скачать в полном размере

Функционал у часов такой: 

 

  •  Отсчет времени, календарь, день недели. (високосный год учитывается, переход на летнее/зимнее время не осуществляется).
  • Сохранение хода часов при пропадании внешнего питания (потребление составляет 15мка).
  • Коррекция хода + — 59,9сек\сутки, с шагом 0,1сек. 9 будильников. 3 из которых «одноразовые», и 6 «постоянных», индивидуально настраиваемых по дням недели.
  • Индивидуально настраиваемая длительность звукового сигнала каждого будильника (1-15мин).
  • Звуковое подтверждение нажатия кнопок (возможно отключить).
  • Ежечасный звуковой сигнал (возможно отключить).
  • С 00-00 до 08-00 сигнал не подаётся.
  • 1 или 2 датчика температуры (Улица и дом).
  • Настраиваемая бегущая строка, посредством которой выводится вся информация (кроме времени)
  • Значение коррекции хода, и настройки «бегущей строки» — сохраняются даже при пропадании резервного питания.

«Сердцем» часов выбрана AtMega16A, из-за её доступности, дешевизны и «ногастости». Схему хотелось максимально упростить, поэтому все что можно, было возложено на контроллер. В результате удалось обойтись всего двумя микросхемами, контроллером и регистром TPIC6B595. Если кому то недоступен TPIC6B595, то можно его заменить на 74НС595 + ULN2803. Оба варианта были опробованы. Так же можно попробовать применить TPIC6С595, она немного слабовата, и слегка грелась, но в целом работала стабильно. Отсчет времени производится с помощью асинхронного тайме – Т2. Ход часов сохраняется и при пропадании питания. В это время бОльшая часть схемы обесточивается, а контроллер питается от батарейки, аккумулятора , или от ионистора. Мне было интересно «по играться» с ионистором, поэтому применил его. Ток потребления часами в дежурном режиме составляет 15мка. При питании от ионистора на 1Ф, часы «продержались» четверо суток. Этого вполне достаточно для поддержания хода во время перебоев питания. Если применить батарейку СR2032, то теоретически, по расчетам заряда должно хватить на 1,5года. Наличие сетевого напряжения контроллер «слушает» через вывод РВ.3 Этот вывод является инвертирующем входом компаратора. Напряжение питания, через делитель R2-R3 подается на вывод РВ.3, и в нормальном состоянии равно примерно 1,5в. Если внешнее напряжение упадет ниже 4,1 вольта, то напряжение на выводе РВ.3 станет меньше 1,23вольта, при этом сгенерируется прерывание от компаратора, и в обработчике этого прерывания выключаются все «лишние» узлы контроллера и сам контроллер усыпляется. В этом режиме продолжает работать только отсчитывающий время таймер Т2. При появлении внешнего питания, напряжение на РВ.3 снова подымится выше 1,23в, контроллер «увидев» это, переведет все узлы в рабочее состояние. Если вместо ионистора, будет использоваться батарейка СR2032, то её нужно подключить через диод(предпочтительно диод шоттки). Анод диода подключается к + батарейки, а катод к катоду VD1. В обычном режиме на экране отображается время в формате часы-минуты. С интервалом в одну минуту происходит запуск бегущей строки. Бегущей строкой отображается день недели, дата, год, темп. дома, и темп. на улице. Бегущая строка настраиваемая, т.е. можно включить/выключить отображение любого из элементов. (я например всегда отключаю отображение года). При выключении всех элементов, бегущая строка не запускается, и часы постоянно отображают текущее время. 9 будильников разделены на 3 одноразовых и 6 многоразовых. При включении будильников 1-3, они срабатывают только один раз. Для того чтоб они сработали еще раз, их нужно повторно включать вручную. А будильники 4-9 многоразовые, т.е. они будут срабатывать ежедневно, в установленное время. Кроме того эти будильники можно настроить на сработку только в определенные дни недели. Это удобно, например если не хотите чтоб будильник разбудил Вас в выходные. Или например Вам нужно просыпаться в будние дни в 7-00, а в четверг в 8-00, а на выходных будильник не нужен. Тогда настраиваем один многоразовый на 7-00 в понедельник-среду и пятницу, а второй на 8-00 в четверг….. Кроме того все будильники имеют настройку длительности сигнала, и если Вам, для того чтоб проснуться, мало сигнала в течении 1 минуты, то можно увеличить его на время от 1 до 15мин. Коррекция хода производится один раз в сутки, в 00-00. Если часы спешат к примеру на 5 сек в сутки, то в 00-00-00 время установится в 23-59-55, если же часы отстают, то в 00-00-00 время установится в 00-00-05. Шаг коррекции – 0,1 сек. Максимальная коррекция – 59,9 сек/сутки. С исправным кварцем больше вряд ли понадобиться. Коррекция осуществляется и в дежурном режиме при питании от батареи. Светодиодные матрицы можно использовать любые 8*8 светодиодов с общим катодом. Как уже было указано, я применил GNM23881AD. В принципе можно «набрать» матрицу и из отдельных светодиодов. Микроконтроллер AtMega16a можно заменить на «старый» AtMega16 с буквой L. При этом, теоретически должен немного увеличится ток потребления от батарейки. Наверное будет работать и просто AtMega16, но могут возникнуть проблемы при работе от батарейки. Диод D1 — желательно любой диод шоттки. С обычным выпрямительным тоже работает, но чтоб обезопасить себя от различных глюков, связанных с тем что часть схемы питается напряжением «до диода», а часть «после диода» лучше поискать шоттки. Транзистор VT1 – любой n-p-n. Управление часами осуществляется двумя кнопками. Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок, но захотелось попробовать «выкрутится» всего двумя. Кнопки условно названы «ОК» и «ШАГ». Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню, а кнопкой «ОК» изменение параметров текущего меню. Сигнал сработавшего будильника также выключается кнопками «ОК» или «ШАГ». Нажатие любой кнопки во время сигнала будильника отключает его. Схема управления получилась такой:

Скачять в полном размере

 

Все элементы — в SMD  исполнении, и расположены с одной стороны платы.  А индикаторы с другой.  Получается  миниатюрный монолитный блок, который легко встроить в какой ни будь небольшой плоский корпус.

Корпус «спаян» из стеклотекстолита,  прошпаклеван и покрашен в цвет «спелая вишня».   Стекло передней панели – обычное  тонированное стекло.

 

Финальный результат.

Видео как все работает!

Фюзы для программирования

 matrix_clock_mega16.rar

 pecytka.zip

Схема часы термометр календарь с бегущей строкой. Схема. Часы-будильник и термометр с бегущей строкой на шестнадцатиэлементных индикаторах. Базовые модели уличных электронных часов «Импульс»

Простые часы на светодиодных матрицах. Многие радиолюбители, начинающие и не только любят «изобретать велосипед» — строить СВОИ электронные часы. Не обошла эта участь и меня. Конструкций часов в инете сегодня конечно предостаточно, но вот часов на светодиодных матрицах почему-то среди них единицы. В русскоговорящем интернете я нашел только одну полностью законченную и описанную конструкцию. В тоже время, светодиодные матрицы сейчас очень сильно подешевели, и их стоимость не выше, а то и ниже, чем у семисегментных индикаторов такого же размера. Например примененные мной GNM23881AD при размере 60х60мм были куплены за 1,5уе (3 индикатора обошлись в 4,5уе), за эти деньги врядли можно купить четыре семисегментника таких-же размеров. А вот информации, разместить на матричном индикаторе, можно намного больше. Кроме цифр на них можно отображать любые буквы, знаки, а с помощью бегущей строки еще и текст.

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

Функционал у часов такой:

  • Отсчет времени, календарь, день недели. (високосный год учитывается, переход на летнее/зимнее время не осуществляется).
  • Сохранение хода часов при пропадании внешнего питания (потребление составляет 15мка).
  • Коррекция хода + — 59,9сек\сутки, с шагом 0,1сек. 9 будильников. 3 из которых «одноразовые», и 6 «постоянных», индивидуально настраиваемых по дням недели.
  • Индивидуально настраиваемая длительность звукового сигнала каждого будильника (1-15мин).
  • Звуковое подтверждение нажатия кнопок (возможно отключить).
  • Ежечасный звуковой сигнал (возможно отключить).
  • С 00-00 до 08-00 сигнал не подаётся.
  • 1 или 2 датчика температуры (Улица и дом).
  • Настраиваемая бегущая строка, посредством которой выводится вся информация (кроме времени)
  • Значение коррекции хода, и настройки «бегущей строки» — сохраняются даже при пропадании резервного питания.

«Сердцем» часов выбрана AtMega16A, из-за её доступности, дешевизны и «ногастости». Схему хотелось максимально упростить, поэтому все что можно, было возложено на контроллер. В результате удалось обойтись всего двумя микросхемами, контроллером и регистром TPIC6B595. Если кому то недоступен TPIC6B595, то можно его заменить на 74НС595 + ULN2803. Оба варианта были опробованы. Так же можно попробовать применить TPIC6С595, она немного слабовата, и слегка грелась, но в целом работала стабильно. Отсчет времени производится с помощью асинхронного тайме – Т2. Ход часов сохраняется и при пропадании питания. В это время бОльшая часть схемы обесточивается, а контроллер питается от батарейки, аккумулятора, или от ионистора. Мне было интересно «по играться» с ионистором, поэтому применил его. Ток потребления часами в дежурном режиме составляет 15мка. При питании от ионистора на 1Ф, часы «продержались» четверо суток. Этого вполне достаточно для поддержания хода во время перебоев питания. Если применить батарейку СR2032, то теоретически, по расчетам заряда должно хватить на 1,5года. Наличие сетевого напряжения контроллер «слушает» через вывод РВ.3 Этот вывод является инвертирующем входом компаратора. Напряжение питания, через делитель R2-R3 подается на вывод РВ.3, и в нормальном состоянии равно примерно 1,5в. Если внешнее напряжение упадет ниже 4,1 вольта, то напряжение на выводе РВ.3 станет меньше 1,23вольта, при этом сгенерируется прерывание от компаратора, и в обработчике этого прерывания выключаются все «лишние» узлы контроллера и сам контроллер усыпляется. В этом режиме продолжает работать только отсчитывающий время таймер Т2. При появлении внешнего питания, напряжение на РВ.3 снова подымится выше 1,23в, контроллер «увидев» это, переведет все узлы в рабочее состояние. Если вместо ионистора, будет использоваться батарейка СR2032, то её нужно подключить через диод(предпочтительно диод шоттки). Анод диода подключается к + батарейки, а катод к катоду VD1. В обычном режиме на экране отображается время в формате часы-минуты. С интервалом в одну минуту происходит запуск бегущей строки. Бегущей строкой отображается день недели, дата, год, темп. дома, и темп. на улице. Бегущая строка настраиваемая, т.е. можно включить/выключить отображение любого из элементов. (я например всегда отключаю отображение года). При выключении всех элементов, бегущая строка не запускается, и часы постоянно отображают текущее время. 9 будильников разделены на 3 одноразовых и 6 многоразовых. При включении будильников 1-3, они срабатывают только один раз. Для того чтоб они сработали еще раз, их нужно повторно включать вручную. А будильники 4-9 многоразовые, т.е. они будут срабатывать ежедневно, в установленное время. Кроме того эти будильники можно настроить на сработку только в определенные дни недели. Это удобно, например если не хотите чтоб будильник разбудил Вас в выходные. Или например Вам нужно просыпаться в будние дни в 7-00, а в четверг в 8-00, а на выходных будильник не нужен. Тогда настраиваем один многоразовый на 7-00 в понедельник-среду и пятницу, а второй на 8-00 в четверг….. Кроме того все будильники имеют настройку длительности сигнала, и если Вам, для того чтоб проснуться, мало сигнала в течении 1 минуты, то можно увеличить его на время от 1 до 15мин. Коррекция хода производится один раз в сутки, в 00-00. Если часы спешат к примеру на 5 сек в сутки, то в 00-00-00 время установится в 23-59-55, если же часы отстают, то в 00-00-00 время установится в 00-00-05. Шаг коррекции – 0,1 сек. Максимальная коррекция – 59,9 сек/сутки. С исправным кварцем больше вряд ли понадобиться. Коррекция осуществляется и в дежурном режиме при питании от батареи. Светодиодные матрицы можно использовать любые 8*8 светодиодов с общим катодом. Как уже было указано, я применил GNM23881AD. В принципе можно «набрать» матрицу и из отдельных светодиодов. Микроконтроллер AtMega16a можно заменить на «старый» AtMega16 с буквой L. При этом, теоретически должен немного увеличится ток потребления от батарейки. Наверное будет работать и просто AtMega16, но могут возникнуть проблемы при работе от батарейки. Диод D1 — желательно любой диод шоттки. С обычным выпрямительным тоже работает, но чтоб обезопасить себя от различных глюков, связанных с тем что часть схемы питается напряжением «до диода», а часть «после диода» лучше поискать шоттки. Транзистор VT1 – любой n-p-n. Управление часами осуществляется двумя кнопками. Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок, но захотелось попробовать «выкрутится» всего двумя. Кнопки условно названы «ОК» и «ШАГ». Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню, а кнопкой «ОК» изменение параметров текущего меню. Сигнал сработавшего будильника также выключается кнопками «ОК» или «ШАГ». Нажатие любой кнопки во время сигнала будильника отключает его. Схема управления получилась такой:

Видео как все работает!

Уличные электронные часы широко используются в дизайне современной инфраструктуры Москвы и других городов как эффективное средство привлечения внимания людей.

Производственная компания «РусИмпульс» выпускает большой ассортимент уличных светодиодных часов: с высотой цифр от 80мм и выше и любым цветом свечения.

Серийные модели уличных настенных часов «Импульс» стандартно отображают текущее временя, дату и температуру воздуха в попеременном режиме. Опционально такие часы-термометр способны также показывать широкий спектр метеоданных: температуру воды, относительную влажность воздуха, атмосферное давление, скорость ветра, уровень радиационного фона. Время отображения каждого из параметров может быть установлено пользователем самостоятельно.

Электронные табло «Импульс» работают в широком температурном диапазоне (от -40 до +50 °С), имеют специальную защиту от коррозии, попадания пыли и влаги внутрь корпуса (IP 65) и могут эксплуатироваться в любых погодных условиях.

Электронные уличные часы с термометром «Импульс» выпускаются, как правило, в одностороннем исполнении и устанавливаются на стену здания. Возможно двустороннее исполнение часов с вертикальным или боковым креплением.

В зависимости от предполагаемого места установки уличные электронные часы-термометр можно выбрать для теневой или солнечной стороны. Для размещения в тени подойдут часы-термометр с менее яркими светодиодами красного цвета — 1,5Кд, тогда как для солнечной стороны, а также установки в витринах рекомендуются часы с более яркими светодиодами (3,0Кд для красного свечения / не менее 2Кд для иного цвета)

Уличные электронные часы с термометром стандартно управляются при помощи пульта дистанционного управления на ИК–лучах с дальностью действия до 10 м. Пульт позволяет менять яркость свечения и длительность индикации отображаемых параметров. Крупногабаритные часы-термометр с высотой шрифта от 700 мм управляются с помощью радиопульта дальностью действия до 50 м.

Базовые модели уличных электронных часов «Импульс»

отображаемые параметрытекущее время (ЧЧ:ММ), дата (ДД.ММ), температура воздуха (-88 °С или 88 °С)
формат индикаторов88:88
тип индикаторовсветодиоды
яркость индикаторов
управлениепульт ДУ на ИК-лучах (расстояниес действия до 10м)
питание220В/ 50Гц, кабель питания 1,5м.
условия эксплуатацииулица, температура от-40° до 50° С
тип и цвет корпусастальной штампованные корпус, окрашенный черной порошковой краской, декоративный профиль, акриловое стекло, крепление — петли на задней стороне корпуса
метеодатчикидатчик температуры воздуха – выносной, провод датчика 1,5м.
опционально возможно оснащение табло другими метеодатчиками
гарантийный срок2 года



  • Второй вариант, DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

Общая схема.


— При нажатии Кн2 Кн2


Кн1 Кн3 Кн2


UA-EN-RU .


ds 18 b 20 №1 или №2.

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

Схема в протеусе

прошивкой загрузчика ATmega328.)


FUSE, если кто будет использовать ICSP программатор для прошивки ATmega328 в этой схеме.

С помощью перемычек Jp -1, Jp -2, Jp RF

1сек.

2сек.

4сек.

8сек.

16сек.

32сек.

64сек.

128сек.

Jp -1

Jp -2

Jp -3

FUSE, ATtiny24а устанавливаются на внутренний генератор МК — 8МГц.



в архиве .

Радиодатчик для матричных часов, от батарейного питания, схема и прошивка в форуме.

DS18b20 , RTC DS1307 , датчик освещения, кнопки управления, комплект RF -модулей, и блок питания 5 вольт (потребление схемы в пиковых моментах, при максимальной яркости, составляет до 0.6А, а в среднем это 0.3А, можно использовать и лишнюю зарядку от мобилки, если имеется с подходящими параметрами) ).
В чем интерес применения Arduino Nano Atmega328 .
В том, что на борту этой платки уже имеется модем с выходом на мини USB, прошить такой контроллер можно без особого труда через bootloader, с помощью вашего компьютера и телефонного шнура для зарядки мобильного телефона с разъемом под мини USB.
Все это несложно делается с помощью простенькой программки XLoader .
Чуть подробней про опыт прошивки через bootloader, описывал здесь «Nano вольт — амперметр 2 канала. «.
При желании все необходимые модули можно по выгодной цене купить на Aliexpress.

MAX7219 dot matrix

Nano Atmega328

DS1307

DS18b20

Датчик освещения

Блок питания

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


В общем, с элементарной базой, думаю вопросов не должно возникнуть, так все здесь стандартно.


Оформление отображения вида работы часов — термометра, это уже любительский вариант исполнения.
В программе имеется три варианта оформления работы часов термометра.

  • Первый вариант это, поочередное отображение времени (часы и минуты), уличной температуры и температуры помещения (два датчика DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

  • Второй вариант, отображение времени (часы и минуты), температуры окружающего воздуха (один датчик DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

  • Третий вариант, просто часы, отображение времени (часы и минуты),

отображение в режиме бегущей строки — дата, месяц, год и день недели (отображение температуры отключено).

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


Схема.


— В схеме использованы три кнопки управления, при кратковременном нажатии на эти кнопки, одноразово вызываем ротацию показаний на основном экране часы – дату — день недели – температура.


— При нажатии Кн2 более 2х сек., осуществляется вход в меню установок (при нахождении в меню, нажатие Кн2 более 2х сек., выход из меню установок).


— После входа в меню, кнопками Кн1 Кн3 можно сделать коррекцию даты и времени, движение по меню осуществляется Кн2 , изменяемый параметр будет находиться в инверсном свечении.


— Также в меню, возможно, если в этом есть необходимость, установить коррекцию неточности хода часов, в течение суток ±9сек.


— Следующий пункт в меню будет, это выбор используемого языка, в одной прошивке предусмотрено использование языков UA-EN-RU .


— Пункт варианта анимации на экране, один из трех, что описан в начале статьи.


— Радиодатчик, при выборе значение «0» , радиодатчик в программе не задействован, при выборе 1 или 2, показания температуры с радиодатчика займут место на дисплее, вместо ds 18 b 20 №1 или №2.

Фото часов в процессе отладки на макетной плате.

Схема в протеусе

Схема передатчика для этих часов.

С помощью перемычек Jp -1, Jp -2, Jp -3, можно выбрать, частоту передачи RF -модулем пакетов информации с температурой от датчика №3.

1сек.

2сек.

4сек.

8сек.

16сек.

32сек.

64сек.

128сек.

Jp -1

Jp -2

Jp -3

(1 – перемычка замкнута, 0 – нет)

Печатная плата для часов, и радиодатчика.

FUSE для работы ATmega328 с загрузчиком (архив с прошивкой загрузчика ATmega328. )

FUSE, если кто будет использовать ICSP программатор для прошивки ATmega328 в этой схеме.

Прошивка “Часы – термометр на матричных модулях ” , печатные платы, proteus, в архиве .

Эта бегущая строка позволяет читать текст объемом не более 8192 буквы включая пробелы. Текст вводится в память 24С64 бегущей строки при помощи клавиатуры от компьютера без подключения самого компьютера. Во время ввода текста есть возможность стирания букв при помощи клавиши (Backspace) наблюдая за этим действием удаления букв на табло.

Есть возможность регулировки скорости бега букв при помощи двух клавиш рядом с цифрами клавиатуры (+ и -). Скорость бега строки записывается в самую последнюю ячейку памяти 24С64 поэтому при первом включении без регулировки скорости будет наблюдаться медленный бег букв и поэтому нужно сделать первую регулировку. Скорость бега очень сильно меняется при регулировки записи числа в последнюю ячейку 24С64 числа от 1….30 в десятичном измерении или в шестнадцатиричном1..1Е в чем можно убедиться с помощи программатора PICKIT2, но это не обязательно.

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

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

Микросхемы табло 74НС595 выполняют роль зажигания горизонтали табло или строки из 160 светодиодов, а транзисторы дают возможность менять горизонтали или строки от верхних до нижних по очереди то есть зажигание табло происходит построчно с верху вниз по очереди со скоростью 300 кадров в секунду.

Сама микросхема 74НС595 представляет из себя обычный сдвиговый регистр с выводом каждого регистра на светодиодную матрицу но есть большое НО матрица с регистрами соединяется не на прямую а через фиксирующие логическое состояние регистрами.

Зачем это нужно? Это нужно для того чтобы пока идет загрузка от МК сдвиговых регистров по цепочке от одного к другому с каждым тактовым сигналом на выводе 11 и при этом наблюдалось на светодиодных матрицах чего нам вовсе не нужно так как картинка при этом засвечивалась светодиодами не в нужных местах. Поэтому дополнительные фиксирующие регистры блокируют во время загрузки данных вывод информации на матрицы и обновляют только после того как на выводах 12 появиться тактовый сигнал передовая от сдвиговых регистров к фиксирующим данные, а фиксирующие передают на матрицы.

Данные табло создающие все картинку строки поступают от МК с вывода 34 на вход регистра 14 микросхемы 74НС595 от первой микросхемы 74НС595 ко второй данные передаются с выхода 9 на вход 14 и так по цепочке до последней 20 микросхемы.

Повторюсь данные двигаются с каждым тактом на входе 11 всех микросхем 74НС595 по цепочке к самой последней микросхеме 74НС595 и после загрузки все 20 микросхем появляется такт на фиксирующих регистрах вывод 12 тем самым обновляя изображение всей строки, а не всего изображения табло. Строки каждый раз обновляются после перехода на более нижнюю строку.

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

Чтобы проверить первую плату дисплея нужно подключить клавиатуру к плате МК подать питание нажать одну или несколько букв подать команду конца строки, что текст введен нажав клавишу ENTER после этого пойдет бег строки с низкой скоростью так как скорость бега тоже нужно отрегулировать нажимая клавишу (-) до тех пор пока не запишется константа от 5..1Е в шестнадцатиричном виде в память 24С64.

Если вам не нужна строка такой большой длинны состоящая из 20 матриц 8х8, то я могу вам выслать прошивку с меньшим количеством от 2 до 19 это делается просто и быстро ответ вам вышлю письмо с прошивкой мой адрес evgen100777(sobaka)rambler.ru.

Платы дисплея разведены для матриц 6х6 сантиметров красного цвета свечения с маркировкой QFT 2388ASR плата микроконтроллера сделана с условием модернизации добавления строке часов и термометра но так как прошивка под это дело не доделана не рекомендую добавлять кнопки, чтобы не спалить порт МК.

Командные кнопки.

(Shift ) – кнопка переключения на большие буквы, нажав на нее и отпустив нажимается буква и выводиться на табло заглавная буква если нажать следующую букву без предварительного нажатия Shift выводиться маленькая буква, то есть перед каждым вводом заглавной буквы нужно нажать и отпустить Shift.

(+ и) — эти клавиши работают при включении бегущей строки до набора текста и регулируют скорость перемещения букв по табло + увеличивает скоростьуменьшает скорость перемещения букв.

Backspace — клавиша стирания текста во время набора, работает только в режиме набора текста отображая на табло удаленную букву смещением текста налево.

Enter эта клавиша запускает бег строки после набора текста обозначая конец текста в памяти 24С64 и говорит о том что нужно с этого места текста начать бег строки с начала.

Для нового набора текста бегущую строку нужно выключить и снова включить с подключенной клавиатурой выбрать скорость бега текста клавишами плюс и минус и при первом нажатии на букву табло очищается с отображением в правой части строки первой буквы набирая текст он продвигается в левую сторону после этого нажимается клавиша Enter и строка уходит в рабочий режим бега не реагируя на клавиатуру.

Для повторного вода текста нужно не забывать включить и выключить строку.

Бегущая строка с часами, календарем и набором текста на клавиатуре PS/2

Бегущая строка показывает время часы минуты секунды день цифрами, а месяц и день недели словами например ВРЕМЯ 12.30.10 20 ЯНВАРЯ СРЕДА.

Точно такая же бегущая строка с набором текста на клавиатуре только имеет еще часы с календарем. В этой строке нельзя менять количество светодиодных матриц так как они все 20 штук задействованы в настройке времени даты и месяца и дня недели.

Во время набора текста нажатием клавиши левого CTRL вставляются часы с календарем в текст бегущей строки. Эта строка имеет все те же функции что и прошлые строки на PIC16F628 и PIC16F877 и управляется она точно также.

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

В настройках времени день недели и месяц отображается в виде цифр.

Вот чуть измененная схема этой строки тут добавилось две кнопки с подтягивающими резисторами изменения времени и часовым кварцем на 32768 Гц и еще один резистор подтягивающий вход контролера отвечающий за ввод клавиатуру.

Для более стабильной работы PIC16F877 лучше запитывать через резистор 11 ом 0.25 Ватт по плюсовому питанию для понижения помех идущих от транзисторов которые коммутируют строки табло.

Бегущая строка с часами и термометром для улицы и дома.

Бегущая строка работает на датчиках DS1820 и показывает температуру в доме и на улице путем вставки в текст бегущей строки вывода показаний на табло.

Показания выводиться в виде надписи ТЕМПЕРАТУРА ДОМ 25,2 УЛИЦА -12,4 показания температуры имеют младший показатель в виде десятой доли градуса.

Для вставки термометра в текст надо нажать клавишу левый ALT на компьютерной клавиатуре, подключенной к бегущей строке.

Диапазон температур выводимым термометром -55 до 99 градусов но не рекомендуется нагревать датчик выше 70 градусов во избежание его порче.

Длина провода идущего к датчику на улице должен быть не более 4 метров.

Есть прошивка с тремя Украинскими буквами.
Сигнал будильника снимается в виде лог 0 во время сигнала с 38 вывода PIC16F877

Список радиоэлементов
ОбозначениеТипНоминалКоличествоПримечаниеМагазинМой блокнот
Схема 1
ICМК PIC 8-бит

PIC16F877

1В блокнот
IC1Микросхема памяти24C641В блокнот
IC2, IC3Сдвиговый регистр

CD74HC595

20В блокнот
VT1-VT8Биполярный транзистор

BD140

8В блокнот
C1, C2Конденсатор100 нФ2В блокнот
C3, C4Конденсатор15 пФ2В блокнот
C5Конденсатор3.3 нФ1В блокнот
R1-R16, R18, R19, R21-R24, R30, R31Резистор

330 Ом

24В блокнот
Резистор

330 Ом

144В блокнот
R26, R27Резистор

5.1 кОм

2В блокнот
R28, R29Резистор

4.7 кОм

2В блокнот
Cr1Кварцевый резонатор20.000 МГц1В блокнот
Светодиодная матрица8х820В блокнот
РазъёмPS/21В блокнот
Схема 2
ICМК PIC 8-бит

PIC16F877

1В блокнот
IC1Микросхема памяти24C641В блокнот
Сдвиговый регистр

CD74HC595

20В блокнот
Биполярный транзистор

BD140

8В блокнот
C2Конденсатор100 нФ1В блокнот
C3, C4Конденсатор15 пФ2В блокнот
C5Конденсатор3.3 нФ1В блокнот
C6, C7Конденсатор33 пФ2В блокнот
C8Конденсатор электролитический47 мкФ1В блокнот
R18, R19, R21-R24, R30, R31Резистор

330 Ом

24В блокнот
Резистор

330 Ом

144В блокнот
R26, R27, R32, R33Резистор

5.1 кОм

4В блокнот
R29, R34, R35Резистор

4.7 кОм

3В блокнот
R36Резистор

11 Ом

1В блокнот
Cr1Кварцевый резонатор20.000 МГц1В блокнот
Cr2Кварцевый резонатор32768 Гц1В блокнот
S1, S2Кнопка тактовая2В блокнот
Светодиодная матрица8х820В блокнот
РазъёмPS/21В блокнот
Схема 3
ICМК PIC 8-бит

PIC16F877

1В блокнот
IC1Микросхема памяти24C641В блокнот
Сдвиговый регистр

CD74HC595

20В блокнот
Датчик температуры

DS18B20

2

Простые часы на светодиодных матрицах.

Многие  радиолюбители,начинающие и не только любят «изобретать велосипед» —  строить СВОИ электронные часы.  Не обошлаэта участь и меня.  Конструкций часов винете сегодня конечно предостаточно,   новот  часов на светодиодных матрицах  почему-то среди них единицы.  В русскоговорящем интернете я нашел толькоодну полностью законченную и описанную конструкцию.  В тоже время,светодиодные матрицы сейчас очень сильно подешевели,  и их стоимость  не выше, а то и ниже,  чем у семисегментныхиндикаторов  такого же размера.     Например примененные мной GNM23881AD  при размере 60х60мм были куплены за 1,5уе  (3индикатора обошлись в 4,5уе),    за этиденьги врядли  можно  купить четыре семисегментника  таких-же  размеров.  А вот  информации, разместить  на матричном индикаторе, можно намногобольше.  Кроме цифр на них можноотображать   любые буквы,  знаки, а с помощью  бегущей строки еще итекст.   Исходя  из этого, появилось  желание  построить  часы   на светодиодныхматрицах,   но  чтоб схема при этом   получилась не сложнее чем  на  семисегментниках.   Также хотелось чтоб она была   достаточно функциональная и не похожая надругие.     Так родилась следующая схема.

Функционал у часов такой:

Отсчет времени,  календарь, день недели.  (високосный годучитывается,  переход  на летнее/зимнее время не осуществляется).

Сохранение хода часов припропадании внешнего питания (потребление составляет 15мка).

Коррекция хода + —  59,9сек\сутки,  с шагом 0,1сек.

9 будильников.  3 из которых «одноразовые», и  6 «постоянных»,  индивидуально настраиваемых по дням недели.

Индивидуально настраиваемаядлительность звукового сигнала каждого будильника (1-15мин).

Звуковое подтверждение нажатиякнопок  (возможно отключить).

Ежечасный звуковой сигнал(возможно отключить).   С 00-00  до 08-00  сигнал не подаётся. 

1 или 2  датчика температуры (Улица и дом).

Настраиваемая бегущая строка,посредством которой выводится вся информация (кроме времени)

Значение коррекции хода, и настройки«бегущей  строки» —  сохраняются даже при пропадании резервногопитания.

«Сердцем» часов выбрана AtMega16A,из-за её доступности, дешевизны и «ногастости». Схему хотелось максимально упростить, поэтому все что можно, было возложено на контроллер.  В результате удалось обойтись всего двумямикросхемами,  контроллером и регистром TPIC6B595.  Если кому то недоступен TPIC6B595,  то можно его заменить на  74НС595 + ULN2803. Оба варианта были опробованы.   Так же можно попробовать применить  TPIC6С595,  она немногослабовата, и  слегка грелась,  но в целом работала стабильно.  Отсчет времени  производится  с помощью асинхронного тайме – Т2.    Ход  часов сохраняется и  при пропадании  питания. В это время бОльшая часть схемы  обесточивается,  а контроллер питается  от батарейки,аккумулятора , или от ионистора.  Мнебыло интересно «по играться» с ионистором,  поэтому применил его.  Токпотребления часами в дежурном режиме составляет 15мка.   При питании от ионисторана 1Ф,  часы «продержались»   четверо суток.   Этого вполне достаточно для поддержания ходаво время перебоев питания.   Еслиприменить батарейку СR2032,  то теоретически, по расчетам  заряда должно хватить на 1,5года.    Наличие сетевого напряжения контроллер«слушает»  через  вывод РВ.3      Этот вывод является инвертирующем входомкомпаратора.  Напряжение питания,  через делитель R2-R3 подается на вывод РВ.3,    и в нормальном состоянииравно примерно 1,5в.  Если внешнеенапряжение упадет ниже  4,1 вольта,  то напряжение на выводе РВ.3    станет  меньше 1,23вольта,  при этом  сгенерируется прерывание от компаратора, и вобработчике этого прерывания  выключаютсявсе «лишние»  узлы контроллера   и сам контроллер усыпляется.  В этом режиме продолжает работать толькоотсчитывающий время таймер Т2.  Припоявлении внешнего питания, напряжение на РВ.3  снова  подымится выше 1,23в,  контроллер «увидев» это, переведет все узлы врабочее состояние.  Если  вместо ионистора, будет использоватьсябатарейка СR2032,  то её нужно подключить через диод(предпочтительнодиод шоттки).  Анод  диода подключается к + батарейки,  а катод к катоду VD1. 

В обычном режиме на экране отображается время в форматечасы-минуты.  С интервалом в одну  минуту происходит запуск бегущей строки.  Бегущей строкой отображается деньнедели,  дата,  год, темп.  дома, и темп. наулице.  Бегущая строканастраиваемая,  т.е.  можно включить/выключить отображение любогоиз элементов.  (я например всегдаотключаю отображение года).  Привыключении всех  элементов,  бегущая строка не запускается,  и часы постоянно отображают текущее время.

9 будильников разделены на 3 одноразовых и 6многоразовых.  При включениибудильников   1-3, они  срабатывают только один раз.  Для того чтоб они сработали еще раз, их нужноповторно включать вручную.  А будильники4-9  многоразовые,  т.е. они будут срабатывать ежедневно, вустановленное время.  Кроме того этибудильники можно настроить  на сработкутолько в определенные  дни недели.  Это удобно, например если не хотите чтоб будильник разбудил Вас ввыходные.  Или  например Вам нужно просыпаться в будние дни в7-00,  а в четверг в 8-00, а на выходныхбудильник не нужен.  Тогда настраиваемодин многоразовый  на 7-00 в  понедельник-среду и пятницу,  а второй на 8-00 в четверг…..      Кроме того все будильники имеют настройкудлительности сигнала,  и если Вам, длятого чтоб проснуться,  мало сигнала втечении 1 минуты,  то можно увеличить егона  время от 1 до 15мин.

Коррекция хода производится один раз в сутки, в 00-00.  Если часы спешат к примеру на 5 сек всутки,  то в 00-00-00 время  установится в 23-59-55,  если же часы отстают,  то в 00-00-00 время установится в 00-00-05.   Шаг коррекции – 0,1 сек. Максимальная коррекция – 59,9 сек/сутки.     С исправным кварцем больше вряд липонадобиться.   Коррекция осуществляетсяи в дежурном режиме при питании от батареи.

Светодиодные матрицы можно использовать любые 8*8 светодиодов с общим катодом.  Как уже было указано, я применил GNM23881AD. В принципе можно «набрать» матрицу и из отдельных светодиодов.   Микроконтроллер AtMega16a можно заменить на «старый»  AtMega16 с буквой L.  При этом, теоретически должен немногоувеличится ток потребления от батарейки. Наверное будет работать и просто  AtMega16, но могут возникнутьпроблемы при работе от батарейки.  Диод  D1 — желательно любой диод шоттки.   С обычным выпрямительнымтоже работает,  но чтоб обезопасить себяот различных глюков,  связанных с тем чточасть схемы питается напряжением «до диода», а часть «после диода»  лучшепоискать шоттки.  Транзистор VT1 – любой   n-p-n.

Управление часами осуществляется двумя кнопками.  Их количество можно было довести до 8шт, недобавляя больше вообще ни одного компонента, кроме самих кнопок,   но захотелось  попробовать «выкрутится» всего двумя.   Кнопки условно названы «ОК» и «ШАГ».  Кнопкой «ШАГ» как правило происходит переходк следующему пункту меню,  а кнопкой «ОК»изменение параметров  текущего меню.    Сигнал сработавшего  будильника  также выключается   кнопками «ОК» или «ШАГ».    Нажатие  любой кнопки  во время сигналабудильника  отключает  его.    Схема управления получилась такой:

Конструктивно часывыполнены на одной ПП.  Размер ППсоответствует размеру индикаторов.   Минимальная ширина дорог ПП – 0,4мм, расстояние между – 0,4мм.   Такчто любители «ЛУТа»  смогут без трудаизготовить плату самостоятельно.
Все элементы — в SMD исполнении, и расположены с одной стороныплаты.  А индикаторы с другой.  Получается миниатюрный монолитный блок, который легко встроить в какой ни будьнебольшой плоский корпус.

Корпус «спаян» изстеклотекстолита,  прошпаклеван ипокрашен в цвет «спелая вишня».   Стеклопередней панели – обычное  тонированноестекло.

Финальный результат.

Проект в протеусе у меня почему то не заработал,  так что отлаживал в железе.  Если кто соберет в протеусе,  и у него нормально заработает — присылайте,обязательно выложу.

Обсуждение и вопросы можно задавать  на форуме  http://radiokot.ru/forum/viewtopic.php?f=25&t=50199   Если у кого появятся интересные идеи что ещеможно добавить в часы – пишите не стесняйтесь, реализую все, что смогу (правда кодер я слабенький..…).  

Видео работы часов — http://www.youtube.com/watch?v=kYM-qe5YGf0    (что то не получается у меня нормальноснять видео.  Изображение в реальностиплавное и четкое,  а на видео выходит  дерганное и «рваное»….)

Прошивка и исходникна си (CodeVision_AVR_2.05)

Плата Lay


Прошивка на українській мові — скачать 

Часы термометр на бегущей строке. Схема. Часы-будильник и термометр с бегущей строкой на шестнадцатиэлементных индикаторах. Базовые модели уличных электронных часов «Импульс»

Простые часы на светодиодных матрицах. Многие радиолюбители, начинающие и не только любят «изобретать велосипед» — строить СВОИ электронные часы. Не обошла эта участь и меня. Конструкций часов в инете сегодня конечно предостаточно, но вот часов на светодиодных матрицах почему-то среди них единицы. В русскоговорящем интернете я нашел только одну полностью законченную и описанную конструкцию. В тоже время, светодиодные матрицы сейчас очень сильно подешевели, и их стоимость не выше, а то и ниже, чем у семисегментных индикаторов такого же размера. Например примененные мной GNM23881AD при размере 60х60мм были куплены за 1,5уе (3 индикатора обошлись в 4,5уе), за эти деньги врядли можно купить четыре семисегментника таких-же размеров. А вот информации, разместить на матричном индикаторе, можно намного больше. Кроме цифр на них можно отображать любые буквы, знаки, а с помощью бегущей строки еще и текст.

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

Функционал у часов такой:

  • Отсчет времени, календарь, день недели. (високосный год учитывается, переход на летнее/зимнее время не осуществляется).
  • Сохранение хода часов при пропадании внешнего питания (потребление составляет 15мка).
  • Коррекция хода + — 59,9сек\сутки, с шагом 0,1сек. 9 будильников. 3 из которых «одноразовые», и 6 «постоянных», индивидуально настраиваемых по дням недели.
  • Индивидуально настраиваемая длительность звукового сигнала каждого будильника (1-15мин).
  • Звуковое подтверждение нажатия кнопок (возможно отключить).
  • Ежечасный звуковой сигнал (возможно отключить).
  • С 00-00 до 08-00 сигнал не подаётся.
  • 1 или 2 датчика температуры (Улица и дом).
  • Настраиваемая бегущая строка, посредством которой выводится вся информация (кроме времени)
  • Значение коррекции хода, и настройки «бегущей строки» — сохраняются даже при пропадании резервного питания.

«Сердцем» часов выбрана AtMega16A, из-за её доступности, дешевизны и «ногастости». Схему хотелось максимально упростить, поэтому все что можно, было возложено на контроллер. В результате удалось обойтись всего двумя микросхемами, контроллером и регистром TPIC6B595. Если кому то недоступен TPIC6B595, то можно его заменить на 74НС595 + ULN2803. Оба варианта были опробованы. Так же можно попробовать применить TPIC6С595, она немного слабовата, и слегка грелась, но в целом работала стабильно. Отсчет времени производится с помощью асинхронного тайме – Т2. Ход часов сохраняется и при пропадании питания. В это время бОльшая часть схемы обесточивается, а контроллер питается от батарейки, аккумулятора, или от ионистора. Мне было интересно «по играться» с ионистором, поэтому применил его. Ток потребления часами в дежурном режиме составляет 15мка. При питании от ионистора на 1Ф, часы «продержались» четверо суток. Этого вполне достаточно для поддержания хода во время перебоев питания. Если применить батарейку СR2032, то теоретически, по расчетам заряда должно хватить на 1,5года. Наличие сетевого напряжения контроллер «слушает» через вывод РВ.3 Этот вывод является инвертирующем входом компаратора. Напряжение питания, через делитель R2-R3 подается на вывод РВ.3, и в нормальном состоянии равно примерно 1,5в. Если внешнее напряжение упадет ниже 4,1 вольта, то напряжение на выводе РВ.3 станет меньше 1,23вольта, при этом сгенерируется прерывание от компаратора, и в обработчике этого прерывания выключаются все «лишние» узлы контроллера и сам контроллер усыпляется. В этом режиме продолжает работать только отсчитывающий время таймер Т2. При появлении внешнего питания, напряжение на РВ.3 снова подымится выше 1,23в, контроллер «увидев» это, переведет все узлы в рабочее состояние. Если вместо ионистора, будет использоваться батарейка СR2032, то её нужно подключить через диод(предпочтительно диод шоттки). Анод диода подключается к + батарейки, а катод к катоду VD1. В обычном режиме на экране отображается время в формате часы-минуты. С интервалом в одну минуту происходит запуск бегущей строки. Бегущей строкой отображается день недели, дата, год, темп. дома, и темп. на улице. Бегущая строка настраиваемая, т.е. можно включить/выключить отображение любого из элементов. (я например всегда отключаю отображение года). При выключении всех элементов, бегущая строка не запускается, и часы постоянно отображают текущее время. 9 будильников разделены на 3 одноразовых и 6 многоразовых. При включении будильников 1-3, они срабатывают только один раз. Для того чтоб они сработали еще раз, их нужно повторно включать вручную. А будильники 4-9 многоразовые, т.е. они будут срабатывать ежедневно, в установленное время. Кроме того эти будильники можно настроить на сработку только в определенные дни недели. Это удобно, например если не хотите чтоб будильник разбудил Вас в выходные. Или например Вам нужно просыпаться в будние дни в 7-00, а в четверг в 8-00, а на выходных будильник не нужен. Тогда настраиваем один многоразовый на 7-00 в понедельник-среду и пятницу, а второй на 8-00 в четверг….. Кроме того все будильники имеют настройку длительности сигнала, и если Вам, для того чтоб проснуться, мало сигнала в течении 1 минуты, то можно увеличить его на время от 1 до 15мин. Коррекция хода производится один раз в сутки, в 00-00. Если часы спешат к примеру на 5 сек в сутки, то в 00-00-00 время установится в 23-59-55, если же часы отстают, то в 00-00-00 время установится в 00-00-05. Шаг коррекции – 0,1 сек. Максимальная коррекция – 59,9 сек/сутки. С исправным кварцем больше вряд ли понадобиться. Коррекция осуществляется и в дежурном режиме при питании от батареи. Светодиодные матрицы можно использовать любые 8*8 светодиодов с общим катодом. Как уже было указано, я применил GNM23881AD. В принципе можно «набрать» матрицу и из отдельных светодиодов. Микроконтроллер AtMega16a можно заменить на «старый» AtMega16 с буквой L. При этом, теоретически должен немного увеличится ток потребления от батарейки. Наверное будет работать и просто AtMega16, но могут возникнуть проблемы при работе от батарейки. Диод D1 — желательно любой диод шоттки. С обычным выпрямительным тоже работает, но чтоб обезопасить себя от различных глюков, связанных с тем что часть схемы питается напряжением «до диода», а часть «после диода» лучше поискать шоттки. Транзистор VT1 – любой n-p-n. Управление часами осуществляется двумя кнопками. Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок, но захотелось попробовать «выкрутится» всего двумя. Кнопки условно названы «ОК» и «ШАГ». Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню, а кнопкой «ОК» изменение параметров текущего меню. Сигнал сработавшего будильника также выключается кнопками «ОК» или «ШАГ». Нажатие любой кнопки во время сигнала будильника отключает его. Схема управления получилась такой:

Видео как все работает!

  • Второй вариант, DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

Общая схема.


— При нажатии Кн2 Кн2


Кн1 Кн3 Кн2


UA-EN-RU .


ds 18 b 20 №1 или №2.

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

Схема в протеусе

прошивкой загрузчика ATmega328.)


FUSE, если кто будет использовать ICSP программатор для прошивки ATmega328 в этой схеме.

С помощью перемычек Jp -1, Jp -2, Jp RF




1сек.

2сек.

4сек.

8сек.

16сек.

32сек.

64сек.

128сек.

Jp -1

Jp -2

Jp -3

FUSE, ATtiny24а устанавливаются на внутренний генератор МК — 8МГц.



в архиве .

Радиодатчик для матричных часов, от батарейного питания, схема и прошивка в форуме.

DS18b20 , RTC DS1307 , датчик освещения, кнопки управления, комплект RF -модулей, и блок питания 5 вольт (потребление схемы в пиковых моментах, при максимальной яркости, составляет до 0.6А, а в среднем это 0.3А, можно использовать и лишнюю зарядку от мобилки, если имеется с подходящими параметрами) ).
В чем интерес применения Arduino Nano Atmega328 .
В том, что на борту этой платки уже имеется модем с выходом на мини USB, прошить такой контроллер можно без особого труда через bootloader, с помощью вашего компьютера и телефонного шнура для зарядки мобильного телефона с разъемом под мини USB.
Все это несложно делается с помощью простенькой программки XLoader .
Чуть подробней про опыт прошивки через bootloader, описывал здесь «Nano вольт — амперметр 2 канала. «.
При желании все необходимые модули можно по выгодной цене купить на Aliexpress.

MAX7219 dot matrix

Nano Atmega328

DS1307

DS18b20

Датчик освещения

Блок питания

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


В общем, с элементарной базой, думаю вопросов не должно возникнуть, так все здесь стандартно.


Оформление отображения вида работы часов — термометра, это уже любительский вариант исполнения.
В программе имеется три варианта оформления работы часов термометра.

  • Первый вариант это, поочередное отображение времени (часы и минуты), уличной температуры и температуры помещения (два датчика DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

  • Второй вариант, отображение времени (часы и минуты), температуры окружающего воздуха (один датчик DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

  • Третий вариант, просто часы, отображение времени (часы и минуты),

отображение в режиме бегущей строки — дата, месяц, год и день недели (отображение температуры отключено).

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


Схема.


— В схеме использованы три кнопки управления, при кратковременном нажатии на эти кнопки, одноразово вызываем ротацию показаний на основном экране часы – дату — день недели – температура.


— При нажатии Кн2 более 2х сек., осуществляется вход в меню установок (при нахождении в меню, нажатие Кн2 более 2х сек., выход из меню установок).


— После входа в меню, кнопками Кн1 Кн3 можно сделать коррекцию даты и времени, движение по меню осуществляется Кн2 , изменяемый параметр будет находиться в инверсном свечении.


— Также в меню, возможно, если в этом есть необходимость, установить коррекцию неточности хода часов, в течение суток ±9сек.


— Следующий пункт в меню будет, это выбор используемого языка, в одной прошивке предусмотрено использование языков UA-EN-RU .


— Пункт варианта анимации на экране, один из трех, что описан в начале статьи.


— Радиодатчик, при выборе значение «0» , радиодатчик в программе не задействован, при выборе 1 или 2, показания температуры с радиодатчика займут место на дисплее, вместо ds 18 b 20 №1 или №2.

Фото часов в процессе отладки на макетной плате.

Схема в протеусе

Схема передатчика для этих часов.

С помощью перемычек Jp -1, Jp -2, Jp -3, можно выбрать, частоту передачи RF -модулем пакетов информации с температурой от датчика №3.

1сек.

2сек.

4сек.

8сек.

16сек.

32сек.

64сек.

128сек.

Jp -1

Jp -2

Jp -3

(1 – перемычка замкнута, 0 – нет)

Печатная плата для часов, и радиодатчика.

FUSE для работы ATmega328 с загрузчиком (архив с прошивкой загрузчика ATmega328. )

FUSE, если кто будет использовать ICSP программатор для прошивки ATmega328 в этой схеме.

Прошивка “Часы – термометр на матричных модулях ” , печатные платы, proteus, в архиве .

Эта бегущая строка позволяет читать текст объемом не более 8192 буквы включая пробелы. Текст вводится в память 24С64 бегущей строки при помощи клавиатуры от компьютера без подключения самого компьютера. Во время ввода текста есть возможность стирания букв при помощи клавиши (Backspace) наблюдая за этим действием удаления букв на табло.

Есть возможность регулировки скорости бега букв при помощи двух клавиш рядом с цифрами клавиатуры (+ и -). Скорость бега строки записывается в самую последнюю ячейку памяти 24С64 поэтому при первом включении без регулировки скорости будет наблюдаться медленный бег букв и поэтому нужно сделать первую регулировку. Скорость бега очень сильно меняется при регулировки записи числа в последнюю ячейку 24С64 числа от 1….30 в десятичном измерении или в шестнадцатиричном1..1Е в чем можно убедиться с помощи программатора PICKIT2, но это не обязательно.

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

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

Микросхемы табло 74НС595 выполняют роль зажигания горизонтали табло или строки из 160 светодиодов, а транзисторы дают возможность менять горизонтали или строки от верхних до нижних по очереди то есть зажигание табло происходит построчно с верху вниз по очереди со скоростью 300 кадров в секунду.

Сама микросхема 74НС595 представляет из себя обычный сдвиговый регистр с выводом каждого регистра на светодиодную матрицу но есть большое НО матрица с регистрами соединяется не на прямую а через фиксирующие логическое состояние регистрами.

Зачем это нужно? Это нужно для того чтобы пока идет загрузка от МК сдвиговых регистров по цепочке от одного к другому с каждым тактовым сигналом на выводе 11 и при этом наблюдалось на светодиодных матрицах чего нам вовсе не нужно так как картинка при этом засвечивалась светодиодами не в нужных местах. Поэтому дополнительные фиксирующие регистры блокируют во время загрузки данных вывод информации на матрицы и обновляют только после того как на выводах 12 появиться тактовый сигнал передовая от сдвиговых регистров к фиксирующим данные, а фиксирующие передают на матрицы.

Данные табло создающие все картинку строки поступают от МК с вывода 34 на вход регистра 14 микросхемы 74НС595 от первой микросхемы 74НС595 ко второй данные передаются с выхода 9 на вход 14 и так по цепочке до последней 20 микросхемы.

Повторюсь данные двигаются с каждым тактом на входе 11 всех микросхем 74НС595 по цепочке к самой последней микросхеме 74НС595 и после загрузки все 20 микросхем появляется такт на фиксирующих регистрах вывод 12 тем самым обновляя изображение всей строки, а не всего изображения табло. Строки каждый раз обновляются после перехода на более нижнюю строку.

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

Чтобы проверить первую плату дисплея нужно подключить клавиатуру к плате МК подать питание нажать одну или несколько букв подать команду конца строки, что текст введен нажав клавишу ENTER после этого пойдет бег строки с низкой скоростью так как скорость бега тоже нужно отрегулировать нажимая клавишу (-) до тех пор пока не запишется константа от 5..1Е в шестнадцатиричном виде в память 24С64.

Если вам не нужна строка такой большой длинны состоящая из 20 матриц 8х8, то я могу вам выслать прошивку с меньшим количеством от 2 до 19 это делается просто и быстро ответ вам вышлю письмо с прошивкой мой адрес evgen100777(sobaka)rambler.ru.

Платы дисплея разведены для матриц 6х6 сантиметров красного цвета свечения с маркировкой QFT 2388ASR плата микроконтроллера сделана с условием модернизации добавления строке часов и термометра но так как прошивка под это дело не доделана не рекомендую добавлять кнопки, чтобы не спалить порт МК.

Командные кнопки.

(Shift ) – кнопка переключения на большие буквы, нажав на нее и отпустив нажимается буква и выводиться на табло заглавная буква если нажать следующую букву без предварительного нажатия Shift выводиться маленькая буква, то есть перед каждым вводом заглавной буквы нужно нажать и отпустить Shift.

(+ и) — эти клавиши работают при включении бегущей строки до набора текста и регулируют скорость перемещения букв по табло + увеличивает скоростьуменьшает скорость перемещения букв.

Backspace — клавиша стирания текста во время набора, работает только в режиме набора текста отображая на табло удаленную букву смещением текста налево.

Enter эта клавиша запускает бег строки после набора текста обозначая конец текста в памяти 24С64 и говорит о том что нужно с этого места текста начать бег строки с начала.

Для нового набора текста бегущую строку нужно выключить и снова включить с подключенной клавиатурой выбрать скорость бега текста клавишами плюс и минус и при первом нажатии на букву табло очищается с отображением в правой части строки первой буквы набирая текст он продвигается в левую сторону после этого нажимается клавиша Enter и строка уходит в рабочий режим бега не реагируя на клавиатуру.

Для повторного вода текста нужно не забывать включить и выключить строку.

Бегущая строка с часами, календарем и набором текста на клавиатуре PS/2

Бегущая строка показывает время часы минуты секунды день цифрами, а месяц и день недели словами например ВРЕМЯ 12.30.10 20 ЯНВАРЯ СРЕДА.

Точно такая же бегущая строка с набором текста на клавиатуре только имеет еще часы с календарем. В этой строке нельзя менять количество светодиодных матриц так как они все 20 штук задействованы в настройке времени даты и месяца и дня недели.

Во время набора текста нажатием клавиши левого CTRL вставляются часы с календарем в текст бегущей строки. Эта строка имеет все те же функции что и прошлые строки на PIC16F628 и PIC16F877 и управляется она точно также.

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

В настройках времени день недели и месяц отображается в виде цифр.

Вот чуть измененная схема этой строки тут добавилось две кнопки с подтягивающими резисторами изменения времени и часовым кварцем на 32768 Гц и еще один резистор подтягивающий вход контролера отвечающий за ввод клавиатуру.

Для более стабильной работы PIC16F877 лучше запитывать через резистор 11 ом 0.25 Ватт по плюсовому питанию для понижения помех идущих от транзисторов которые коммутируют строки табло.

Бегущая строка с часами и термометром для улицы и дома.

Бегущая строка работает на датчиках DS1820 и показывает температуру в доме и на улице путем вставки в текст бегущей строки вывода показаний на табло.

Показания выводиться в виде надписи ТЕМПЕРАТУРА ДОМ 25,2 УЛИЦА -12,4 показания температуры имеют младший показатель в виде десятой доли градуса.

Для вставки термометра в текст надо нажать клавишу левый ALT на компьютерной клавиатуре, подключенной к бегущей строке.

Диапазон температур выводимым термометром -55 до 99 градусов но не рекомендуется нагревать датчик выше 70 градусов во избежание его порче.

Длина провода идущего к датчику на улице должен быть не более 4 метров.

Есть прошивка с тремя Украинскими буквами.
Сигнал будильника снимается в виде лог 0 во время сигнала с 38 вывода PIC16F877

Список радиоэлементов
ОбозначениеТипНоминалКоличествоПримечаниеМагазинМой блокнот
Схема 1
ICМК PIC 8-бит

PIC16F877

1В блокнот
IC1Микросхема памяти24C641В блокнот
IC2, IC3Сдвиговый регистр

CD74HC595

20В блокнот
VT1-VT8Биполярный транзистор

BD140

8В блокнот
C1, C2Конденсатор100 нФ2В блокнот
C3, C4Конденсатор15 пФ2В блокнот
C5Конденсатор3.3 нФ1В блокнот
R1-R16, R18, R19, R21-R24, R30, R31Резистор

330 Ом

24В блокнот
Резистор

330 Ом

144В блокнот
R26, R27Резистор

5.1 кОм

2В блокнот
R28, R29Резистор

4.7 кОм

2В блокнот
Cr1Кварцевый резонатор20.000 МГц1В блокнот
Светодиодная матрица8х820В блокнот
РазъёмPS/21В блокнот
Схема 2
ICМК PIC 8-бит

PIC16F877

1В блокнот
IC1Микросхема памяти24C641В блокнот
Сдвиговый регистр

CD74HC595

20В блокнот
Биполярный транзистор

BD140

8В блокнот
C2Конденсатор100 нФ1В блокнот
C3, C4Конденсатор15 пФ2В блокнот
C5Конденсатор3.3 нФ1В блокнот
C6, C7Конденсатор33 пФ2В блокнот
C8Конденсатор электролитический47 мкФ1В блокнот
R18, R19, R21-R24, R30, R31Резистор

330 Ом

24В блокнот
Резистор

330 Ом

144В блокнот
R26, R27, R32, R33Резистор

5.1 кОм

4В блокнот
R29, R34, R35Резистор

4.7 кОм

3В блокнот
R36Резистор

11 Ом

1В блокнот
Cr1Кварцевый резонатор20.000 МГц1В блокнот
Cr2Кварцевый резонатор32768 Гц1В блокнот
S1, S2Кнопка тактовая2В блокнот
Светодиодная матрица8х820В блокнот
РазъёмPS/21В блокнот
Схема 3
ICМК PIC 8-бит

PIC16F877

1В блокнот
IC1Микросхема памяти24C641В блокнот
Сдвиговый регистр

CD74HC595

20В блокнот
Датчик температуры

DS18B20

2



  • Второй вариант, DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

Общая схема.


— При нажатии Кн2 Кн2


Кн1 Кн3 Кн2


UA-EN-RU .


ds 18 b 20 №1 или №2.

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

Схема в протеусе

прошивкой загрузчика ATmega328.)


FUSE, если кто будет использовать ICSP программатор для прошивки ATmega328 в этой схеме.

С помощью перемычек Jp -1, Jp -2, Jp RF

1сек.

2сек.

4сек.

8сек.

16сек.

32сек.

64сек.

128сек.

Jp -1

Jp -2

Jp -3

FUSE, ATtiny24а устанавливаются на внутренний генератор МК — 8МГц.



в архиве .

Радиодатчик для матричных часов, от батарейного питания, схема и прошивка в форуме.

DS18b20 , RTC DS1307 , датчик освещения, кнопки управления, комплект RF -модулей, и блок питания 5 вольт (потребление схемы в пиковых моментах, при максимальной яркости, составляет до 0.6А, а в среднем это 0.3А, можно использовать и лишнюю зарядку от мобилки, если имеется с подходящими параметрами) ).
В чем интерес применения Arduino Nano Atmega328 .
В том, что на борту этой платки уже имеется модем с выходом на мини USB, прошить такой контроллер можно без особого труда через bootloader, с помощью вашего компьютера и телефонного шнура для зарядки мобильного телефона с разъемом под мини USB.
Все это несложно делается с помощью простенькой программки XLoader .
Чуть подробней про опыт прошивки через bootloader, описывал здесь «Nano вольт — амперметр 2 канала. «.
При желании все необходимые модули можно по выгодной цене купить на Aliexpress.

MAX7219 dot matrix

Nano Atmega328

DS1307

DS18b20

Датчик освещения

Блок питания

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


В общем, с элементарной базой, думаю вопросов не должно возникнуть, так все здесь стандартно.


Оформление отображения вида работы часов — термометра, это уже любительский вариант исполнения.
В программе имеется три варианта оформления работы часов термометра.

  • Первый вариант это, поочередное отображение времени (часы и минуты), уличной температуры и температуры помещения (два датчика DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

  • Второй вариант, отображение времени (часы и минуты), температуры окружающего воздуха (один датчик DS18b20 ) .

Отображение в режиме бегущей строки — дата, месяц, год и день недели.

  • Третий вариант, просто часы, отображение времени (часы и минуты),

отображение в режиме бегущей строки — дата, месяц, год и день недели (отображение температуры отключено).

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


Схема.


— В схеме использованы три кнопки управления, при кратковременном нажатии на эти кнопки, одноразово вызываем ротацию показаний на основном экране часы – дату — день недели – температура.


— При нажатии Кн2 более 2х сек., осуществляется вход в меню установок (при нахождении в меню, нажатие Кн2 более 2х сек., выход из меню установок).


— После входа в меню, кнопками Кн1 Кн3 можно сделать коррекцию даты и времени, движение по меню осуществляется Кн2 , изменяемый параметр будет находиться в инверсном свечении.


— Также в меню, возможно, если в этом есть необходимость, установить коррекцию неточности хода часов, в течение суток ±9сек.


— Следующий пункт в меню будет, это выбор используемого языка, в одной прошивке предусмотрено использование языков UA-EN-RU .


— Пункт варианта анимации на экране, один из трех, что описан в начале статьи.


— Радиодатчик, при выборе значение «0» , радиодатчик в программе не задействован, при выборе 1 или 2, показания температуры с радиодатчика займут место на дисплее, вместо ds 18 b 20 №1 или №2.

Фото часов в процессе отладки на макетной плате.

Схема в протеусе

Схема передатчика для этих часов.

С помощью перемычек Jp -1, Jp -2, Jp -3, можно выбрать, частоту передачи RF -модулем пакетов информации с температурой от датчика №3.

1сек.

2сек.

4сек.

8сек.

16сек.

32сек.

64сек.

128сек.

Jp -1

Jp -2

Jp -3

(1 – перемычка замкнута, 0 – нет)

Печатная плата для часов, и радиодатчика.

FUSE для работы ATmega328 с загрузчиком (архив с прошивкой загрузчика ATmega328. )

FUSE, если кто будет использовать ICSP программатор для прошивки ATmega328 в этой схеме.

Прошивка “Часы – термометр на матричных модулях ” , печатные платы, proteus, в архиве .


В предлагаемом устройстве используются символьные светодиодные шестнадцатиэлементные индикаторы PSA08-11 с общими анодами. Выбор пал именно на них из-за невысокой стоимости, большого размера отображаемого символа и высокой яркости. Для того чтобы выводить максимум полезной информации, текст перемещается справа налево. На шести знакоместах поочерёдно отображаются текущее время, температура в помещении, температура вне его, число, день недели и месяц прописью, например, “18 МАРТА ЧЕТВЕРГ.

Счёт времени ведёт микросхема DS1307. Она представляет собой часы реального времени (Real Time Clock -RTC) со встроенным календарём. При выключенном общем питании эта микросхема продолжает работать от резервного источника — литиевого элемента CR2032 напряжением 3 В. Поскольку при отсутствии внешних обращений потребляемый микросхемой DS1307 ток не превышает 300 нА, счёт времени в таком режиме может продолжаться до десяти лет. Тактовый генератор этой микросхемы построен с применением внешнего кварцевого резонатора частотой 32768 Гц, что обеспечивает высокую точность хода. Микросхема отсчитывает секунды, минуты, часы, дни месяца (с учётом високосных лет), месяцы, дни недели и годы. Её календарь действителен до 2100 г. Более подробную информацию о ней можно получить в .

Для измерения температуры в устройстве применены цифровые термодатчики LM75, имеющие погрешность не более 2 °С в интервале температуры от -25 до +100°С. Более подробную информацию о них можно найти в .
Схема часов и термометра с бегущей строкой показана на рис. 1. Все функции, за исключением счёта времени, выполняет микроконтроллер DD2 (PIC16F873A-20I/P), тактируемый встроенным генератором с кварцевым резонатором ZQ2. Для управления устройством предназначены кнопки SB1-SB5. Когда их контакты разомкнуты, резисторы R4-R8 обеспечивают высокий логический уровень на соответствующих входах микроконтроллера. Резистор R11 поддерживает высокий уровень на входе начальной установки микроконтроллера, предотвращая перезапуск программы случайными помехами.

Для питания часов необходим стабилизированный источник напряжения 5 В с максимальным током нагрузки не менее 600 мА. Его подключают к разъёму XS1. В авторском варианте используется зарядное устройство от сотового телефона. Конденсаторы С1 и С2 — сглаживающие, причём ёмкость конденсатора С1 должна быть не менее 1000 мкФ.
В часах предусмотрен будильник. Его звуковой сигнал подаёт пьезоизлучатель со встроенным генератором НА1 (НРА24АХ). По сигналам микроконтроллера им управляет ключ на транзисторе VT7. Подбирая резистор R18 в цепи базы этого транзистора, можно в некоторых пределах регулировать громкость звука.

Для индикации режимов работы предназначены светодиоды HL1-HL3 красного цвета свечения. Их яркость изменяют, подбирая резисторы R15- R17.
Для программирования микроконтроллера, установленного на плату, на ней имеется разъём ХР1. На время выполнения этой операции к нему присоединяют программатор, например, PICkit2, EXTRAPIC или другой подобный . В действующем устройстве этот разъём не нужен. Его можно не устанавливать, если до монтажа на плату запрограммировать микроконтроллер в панели программатора.


Программирование микроконтроллера заключается в загрузке программного кода из НЕХ-файла в его FLASH-память. Для этого требуется управляющая программатором программа, например WinPic800, которая находится в свободном доступе по адресу www.winpic800.com/descargas/WinPic800.zip в сети Интернет. Подробную инструкцию по программированию микроконтроллера также можно прочитать в .
Для упрощения программы микроконтроллера и устройства в целом микросхема RTC DD1 и датчики температуры ВК1 и ВК2 связаны с микроконтроллером по одной и той же шине I2C. Датчик ВК2 подключают к разъёму ХР2 кабелем длиной до нескольких метров по схеме, изображённой на рис. 2.

Резисторы R2 и R9 соединяют линии SCL и SDA шины I 2 C с плюсом питания, поддерживают на них высокий уровень в паузах передачи информации, как того требует спецификация шины. Более подробно об использовании этой шины можно узнать из . Адресные входы датчиков температуры ВК1 и ВК2 по-разному соединены с плюсом питания и общим проводом, что даёт микроконтроллеру возможность программно различать датчики.

Шестнадцатиразрядные параллельные коды для вывода информации на индикаторы образуются на выходах микросхем DD3 и DD4. Микроконтроллер DD2 заносит информацию в эти микросхемы последовательным кодом, используя для этого всего три линии своих портов В и С. Установив на линии RC6 и информационном входе сдвигового регистра микросхемы DD3 уровень, соответствующий значению (0 или 1) очередного разряда кода, он формирует на линии RC7 и тактовых входах обеих микросхем нарастающий перепад уровня. При этом уже содержащийся в соединённых последовательно сдвиговых регистрах код перемещается на одну позицию в сторону старшего разряда регистра DD4, а в освободившийся младший разряд регистра DD3 записывается значение, установленное микроконтроллером на его входе.

После шестнадцати таких операций весь код записан в образованный микросхемами DD3 и DD4 шестнадцатиразрядный сдвиговый регистр. Однако на выходах микросхем этот код ещё не появился, на них продолжает действовать тот, что был выведен в предыдущем цикле. Чтобы обновить состояние выходов, микроконтроллер формирует нарастающий перепад уровня на своей линии RB0 и входах записи кода из сдвиговых регистров микросхем DD3 и DD4 в их регистры хранения. Более подробно с работой микросхемы преобразователя последовательного кода в параллельный 74НС595 можно ознакомиться, прочитав .

После записи кода в микросхемы DD3 и DD4 микроконтроллер подаёт команду включить тот из шести индикаторов, для катодов элементов которого этот код предназначен. Чтобы не перегружать выходы микроконтроллера, аноды индикаторов соединены с ними через ключи на транзисторах VT1-VT6. Схема платы индикаторов показана на рис. 3, а условные обозначения элементов индикатора PSA08-11SRW – – на рис. 4. Разъёмы ХР1 и ХР2 платы индикаторов соединяют соответственно с разъёмами XS3 и XS2 основной платы.

Чертежи основной платы и размещения элементов на ней приведены на рис. 5. Она изготовлена из фольгированного с одной стороны стеклотекстолита. Плата рассчитана на установку датчика температуры ВК1 в корпусе DIP8, однако датчик LM75AD выпускают в корпусе SO8 для поверхностного монтажа, поэтому устанавливать его следует через плату-переходник (рис. 6). На рис. 5 контур переходника показан штрихпунктирной линией. В соответствующие отверстия переходника и платы вставляют и пропаивают с обеих сторон отрезки провода. Можно, конечно, изменив топологию печатных проводников на основной плате, обойтись и без переходника.

Двусторонняя печатная плата индикаторов показана на рис. 7. Обратите внимание, что разъёмы на ней устанавливают со стороны, противоположной той, где находятся индикаторы. При сочленении разъёмов обе платы располагаются одна над другой “этажеркой”, как можно видеть на фотоснимке рис. 8.
Транзисторы КТ502Б можно заменить любыми той же серии. Вместо светодиодов АЛ307БМ подойдут и другие маломощные красного цвета свечения, например АЛ310А.
Правильно собранное устройство с корректно запрограммированным микроконтроллером в налаживании не нуждается и начинает работать сразу после включения.

После подачи питания первым на индикаторы выводится приветственное сообщение. За ним следует время в 12- или 24-часовом формате, который можно выбрать в соответствующем пункте меню. Далее бегущая строка с текущим временем на 10с останавливается. По их истечении выводятся температура в помещении (показания датчика ВК1), температура на улице (показания датчика ВК2) и выдерживается ещё одна десятисекундная пауза, в течение которой индикатор показывает уличную температуру. После этого выводится число, за ним месяц и день недели прописью, после чего цикл (за исключением приветственного сообщения) повторяется.

Для установки текущего времени и других параметров переходят в режим “Меню” кратковременным нажатием на кнопку SB3 “М”. Включается светодиод HL2, показывая, что этот режим включён. На индикаторе после сообщения “НАСТРОЙКА” выводится и останавливается строка “ЧАС XX”, где XX — текущее значение часа, которое можно увеличить нажатием на кнопку SB1 “+” или уменьшить нажатием на кнопку SB5 “-“.
Для того чтобы перейти к следующему пункту меню, нажимают на кнопку SB2 “>”. С её помощью меню можно “листать” в указанном далее порядке, с помощью кнопки SB4 “” выводится строка “МИН XX”, затем “ГОД 20ХХ” (по умолчанию 2011), далее “МЕСЯЦ XX”, “ЧИСЛО XX”, “ДЕНЬ НЕДЕЛИ XX”, “БУД_ЧАС XX” (час срабатывания будильника), “БУД_МИН XX” (минуты срабатывания будильника).

Затем на индикаторе появляется одна из строк “БУД ВЫКЛ” или “БУД ВКЛ”, отображая текущее состояние будильника. Его можно менять, нажимая на кнопку SB1 “+” или SB5 “-“. Когда будильник включён, горит светодиод HL1, сигнализируя об этом.
Далее выводится строка “ФОРМАТ XX”, где XX равно 12 или 24 в зависимости от выбранного нажатиями на кнопку SB1 “+” или SB5 ” формата отображения времени. После очередного нажатия на SB2 “>” выводится строка “ПОКА”, выключается светодиод HL2, часы переходят в обычный рабочий режим.


Когда текущее время совпадает с заданным временем срабатывания будильника, включаются светодиод HL3 и излучатель звука НА1. Чтобы отключить световую и звуковую сигнализацию, достаточно нажать на любую кнопку. Электрический сигнал для управления внешним исполнительным устройством при необходимости можно снять с выхода RB5 микроконтроллера, к которому через резистор R17 подключён светодиод HL3.
При выключенном внешнем питании устройство продолжает счёт времени — микросхема DD1 работает от литиевого элемента G1.

Прилагаемые файлы: source.zip

ЛИТЕРАТУРА
1. DS1307 – 64 X 8 часы реального времени с последовательным интерфейсом. – www.piclist.ru/D-DS-DSB1 “+”307-RUS/D-DS-DS1307-RUS.html
2. LM75A Digital tem- perature sensor and thermal watchdog. www.alldatasheet.com/datasheet-pdf/pdf/100962/PHILIPS/LM75AD.html
3. Долгий А. Программаторы и программирование микроконтроллеров. – Радио, 2004, № 1, с. 53.
4. Семёнов Б. Ю. Шина I2C в радиотехнических конструкциях. – М.: “СОЛОН-Р”, 2002.
5. 74НС595; 74НСТ595 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state. — www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

В. БАЛАНДИН, с. Петровское Тамбовской обл.
“Радио” №9 2012г.

Подключение HD44780 Работа с алфавитно-цифровым ЖКИ инициализация

Рассмотрим взаимодействие пользователя и устройства на базе микроконтроллера. Очень часто пользователю нужно чем-то вводить информацию, и с чего-то ее считывать. Для этих целей очень хорошо подходит клавиатура и дисплей (заметка про считывание клавиши).Рассмотрим взаимодействие пользователя и устройства на базе микроконтроллера. Очень часто пользователю нужно чем-то вводить информацию, и с чего-то ее считывать. Для этих целей очень хорошо подходит клавиатура и дисплей (заметка про считывание клавиши). В этой заметке рассмотрим поподробнее отображение информации на символьном ЖКИ со знакосинтезирующим контроллером HD44780.

Такие индикаторы часто используются при проектировании цифровых устройств, поэтому с ним необходимо уметь работать.
Рассмотрим типовое внутреннее строение знакосинтезирующего ЖКИ:

Внутренняя структура HD44780


В основе ЖКИ лежит матрица из жидких кристаллов, подавая напряжение на элемент которой мы можем «зажечь» точку на экране. В нашем случае матрица состоит из знакомест (чаще всего 8х5 пикселей), сгруппированых в несколько рядков. Этим всем управляет встроенный контроллер HD44780. У контроллера есть однобайтные ячейки памяти (DDRAM), содержимое которых собственно отображается на экране согласно таблице записанной в CGRAM. Ячеек памяти обычно больше чем знакомест в ЖКИ, поэтому адресацию знакомест нужно смотреть в даташите. То есть нам необходимо только в нужную позицию записать код нужного знака, а все остальное HD44780 сделает сам.

Для выбора позиции существует виртуальный курсор (номер текущей ячейки памяти, АС), которым можно управлять посредством команд, курсор можно сделать видимым. По умолчанию при записи символа в ячейку, курсор сдвигаеться вперед на одну позицию. Коды символов для ЖКИ поддерживающего кириллицу можно увидеть в таблице:

Старшая тетрада кода будет равна ряду выбранного символа, а младшая – строке. Можно создать свою таблицу символов, записав ее в CGRAM. На каждый символ требуется 5 байт, где единицы отвечают за «зажженные» пиксели. Например, цифра «8» кодируется последовательностью 0x6c,0x92,0x92,0x92,0x6c.
Коды команд приведены в таблице.

Таблица символов HD44780


Значения флагов:

Остается открытым вопрос: «как записать в нужную позицию код требуемого символа»? Для этого рассмотрим за что отвечают выводы ЖКИ. Выводы DB0-DB7 отвечают за входящие/исходящие данные. Высокий уровень на выводе RS дает индикатору понять, что сигнал на выводах DB0-DB7 является данными, а низкий – командой. Вывод W/R отвечает за направление данных, пишутся ли данные в память или читаются из нее (обычно чтение из ЖКИ не используется, можем смело на него подать низкий уровень). Импульс на выводе Е (длительностью не менее 500 нс) используется как сигнал для записи/чтения данных с выводов DB0-DB7, RS и W/R.

Вывод V0 используется для задания контраста изображения, вывода А,К – для питания подсветки (если она есть в вашей модели ЖКИ). Оставшиеся 2 вывода – собственно питание ЖКИ. То есть, для управления ЖКИ потребуется 8+1+1=10 выводов. Но можно работать в режиме 4-х битного интерфейса. При этом, сперва будет передавать старшая тетрада команды/данных на выводах DB4-DB7, а после – младшая. Выводы при DB0-DB3 при этом не используются. Итого для управления требуется 6 выводов микроконтроллера.
Теперь рассмотрим живой пример. Напишем программу для вывода текста «avrlab.com» на имеющийся у меня в наличии Wh2602А (2 строки по 16 символов).

Для других ЖКИ следует сверить соответствие ячеек DDRAM знакоместам. Схема подключения ЖКИ к контроллеру выглядит так.

Схема подключения к микроконтроллеру AVR


Резистор R3 — 17 Ом ограничивает ток через подсветку, а переменный VR1 задает контраст (если все правильно подключено и запрограммировано, но индикатор молчит, покрутите VR1, чтобы изображения стало видимым). Также не в коем случае не следует путать полярность ЖКИ, питать его выше 5,5В, со своего опыта могу сказать, что горят они моментально. Назначение всех остальных деталей такое же как в макетной платы для ATtiny2313.
Теперь перейдем к написанию программы. Для контроля индикатора напишем программу с несколькими ключевыми функциями работы с ЖКИ: lcd_dat(unsigned char x) – для записи данных х, lcd_com(unsigned char x) – для записи команды х, lcd_init(void) – для начальной инициализации индикатора:

  1. #include <avr/io.h> //библиотека ввода/вывода

  2.  

  3. #define RS 2 //RS=PD2 - сигнал управления ЖКИ

  4. #define E 3 //E=PD3 - сигнал управления ЖКИ

  5.  

  6. #define TIME 10 //Константа временной задержки для ЖКИ

  7. //Частота тактирование МК - 4Мгц

  8.  

  9. //Программа формирвоания задержки

  10. void pause (unsigned int a)

  11. { unsigned int i;

  12.  

  13. for (i=a;i>0;i--);

  14. }

  15.  

  16. //Программа передачи команд в ЖКИ

  17. void lcd_com (unsigned char lcd)

  18. { unsigned char temp;

  19.  

  20. temp=(lcd&~(1<<RS))|(1<<E); //RS=0 – это команда

  21. PORTD=temp; //Выводим на portD старшую тетраду команды, сигналы RS, E

  22. asm("nop"); //Небольшая задержка в 1 такт МК, для стабилизации

  23. PORTD=temp&~(1<<E); //Сигнал записи команды

  24.  

  25. temp=((lcd*16)&~(1<<RS))|(1<<E); //RS=0 – это команда

  26. PORTD=temp; //Выводим на portD младшую тетраду команды, сигналы RS, E

  27. asm("nop"); //Небольшая задержка в 1 такт МК, для стабилизации

  28. PORTD=temp&~(1<<E); //Сигнал записи команды

  29.  

  30. pause (10*TIME); //Пауза для выполнения команды

  31. }

  32.  

  33. //Программа записи данных в ЖКИ

  34. void lcd_dat (unsigned char lcd)

  35. { unsigned char temp;

  36.  

  37. temp=(lcd|(1<<RS))|(1<<E); //RS=1 – это данные

  38. PORTD=temp; //Выводим на portD старшую тетраду данных, сигналы RS, E

  39. asm("nop"); //Небольшая задержка в 1 такт МК, для стабилизации

  40. PORTD=temp&~(1<<E); //Сигнал записи данных

  41.  

  42. temp=((lcd*16)|(1<<RS))|(1<<E); //RS=1 – это данные

  43. PORTD=temp; //Выводим на portD младшую тетраду данных, сигналы RS, E

  44. asm("nop"); //Небольшая задержка в 1 такт МК, для стабилизации

  45. PORTD=temp&~(1<<E); //Сигнал записи данных

  46.  

  47. pause(TIME); //Пауза для вывода данных

  48. }

  49.  

  50. //Программа иниализации ЖКИ

  51. void lcd_init (void)

  52. {

  53. lcd_com(0x2c); //4-проводный интерфейс, 5x8 размер символа

  54. pause(100*TIME);

  55. lcd_com(0x0c); //Показать изображение, курсор не показывать

  56. pause(100*TIME);

  57. lcd_com(0x01); //Очистить DDRAM и установить курсор на 0x00

  58. pause (100*TIME);

  59. }

  60.  

  61. //Основная программа

  62. int main(void)

  63. {

  64. DDRD=0xfc; //Инициализация portD

  65. PORTD=0x00;

  66.  

  67. pause(1000); //Задержка, чтобы ЖКИ успел включиться

  68. lcd_init(); //Инициализация ЖКИ

  69.  

  70.  

  71. lcd_dat('w'); //Вывод "www.avrlab.com"

  72. lcd_dat('w');

  73. lcd_dat('w');

  74. lcd_dat('.');

  75. lcd_dat('a');

  76. lcd_dat('v');

  77. lcd_dat('r');

  78. lcd_dat('l');

  79. lcd_dat('a');

  80. lcd_dat('b');

  81. lcd_dat('.');

  82. lcd_dat('c');

  83. lcd_dat('o');

  84. lcd_dat('m');

  85.  

  86. lcd_com(0xc0); //Ставим курсор на начало 2-й строки ЖКИ

  87.  

  88. lcd_dat('I'); //Записываем "It's so easy"

  89. lcd_dat('t');

  90. lcd_dat('"');

  91. lcd_dat('s');

  92. lcd_dat(' ');

  93. lcd_dat('s');

  94. lcd_dat('o');

  95. lcd_dat(' ');

  96. lcd_dat('e');

  97. lcd_dat('a');

  98. lcd_dat('s');

  99. lcd_dat('y');

  100.  

  101.  

  102. while(1) //бесконечный цикл

  103. ;

  104.  

  105. return 1;

  106. }

Программа очень проста, разобраться в ней не составит труда любому, кто хоть немного владеет C для AVR. Для латиницы и цифр ASCII коды совпадают с зашитыми в знакогенератор ЖКИ, поэтому позволительно использовать lcd_dat(‘A’). Можно создать свою библиотеку для работы с ЖКИ, выделив функции lcd_dat(unsigned char x), lcd_com(unsigned char x), lcd_init(void) в отдельный модуль LCD.h и подключать его за надобностью.

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

  1. int main(void)

  2. { unsigned char data [14]= {'w','w','w','.','a','v','r','l','a','b','.','c','o','m'};

  3. unsigned char i;

  4. DDRD=0xfc; //Инициализация portD

  5. PORTD=0x00;

  6.  

  7. pause(1000); //Задержка, чтобы ЖКИ успел включиться

  8. lcd_init(); //Инициализация ЖКИ

  9.  

  10. for (i=0;i<14;i++) //Вывод записи побуквенно

  11. lcd_dat(data[i]);

Только не стоит забывать, что нумерация массивов в С начинается с нуля. Существующую программу можно без существенных изменений использовать совместно с контроллером ATtiny2313, подключив ЖКИ к PORTB, та как PORTD у ATtiny2313 имеет всего 7 выводов, а не 8, как у ATmega8.

Также советую подключать ЖКИ с помощью разъемных соединений. Очень удобно при отладке программы, когда нужно вывести некоторые промежуточные данные. Подсоединил один разъем и всего дела. В продолжение этой заметки в ближайшее время рассмотрю ввод с матричной клавиатуры 4х4 и отображение считанной информации на ЖКИ.
Всем хорошего дня 😉

Скачать исходный код библиотеки HD44780 под AVR Studio

Скачать исходный код библиотеки HD44780 и модели для Proteus

GPS 64×16 Dual LED точечно-матричные часы [AVR ATmega16]

GPS 64×16 Dual LED точечно-матричные часы [AVR ATmega16] Видеоклипы. Продолжительность: 6,08 мин.

GPS 64×16 Dual LED Dot Matrix Clock Технические характеристики оборудования: — Модель процессора: Atmel ATmega16 — Системные часы: 14,7456 МГц — RTC: Dallas DS1307 — Питание: 5 В, 3 А SMPS — Резервное копирование: 2032 3 В кнопочная батарея — Двухцветная матрица 64 * 16 (совместимый режим Active Low / Active High) — Встроенный динамик — Датчик температуры (TCN75) — Приемник дистанционного управления (603LM) — Встроенные датчики освещенности (CdS) — 4 кнопки ( или сенсорный датчик) — 1 светодиодный индикатор состояния — Дополнительная спецификация программного обеспечения GPS: — Язык программирования: Сборка — Редактирование / Сборка: AVR Studio 4.18 — Используемый сегмент кода: 81% — Используемый сегмент данных: 81% — Используемый сегмент EEPROM: 8% Характеристики: — Часы, дата, температура, отображение ДНЯ — Простое в использовании меню пользователя. — Пульт дистанционного управления или сенсорная кнопка. — Режим GPS / RTC — 3 вида перехода отображения (прокрутка вниз, перевод строки, снег). — 4 вида будильника (один раз, каждый день, будний день, выходные). — 4 вида отображаемых шрифтов (жирный шрифт, тонкий шрифт, сегмент, фиксированная система). — Автоматика или ручная регулировка яркости. — Быстрая памятка. Мин Чжу, Ли (Южная Корея) Контактное лицо: soma9nice @ naver.com ————————————————- ———————— GPS 64 * 16 컬러 전광판 시계 하드웨어 정보: — CPU 모델: Atmel 社 ATmega16 — 클럭: 14,7456MHz — RTC: Dallas 社 DS1307 — 전원: 5V, 3A SMPS — 전원: 3V 2032 수은 전지 — 64 * 16 2 컬러 도트 메트릭스 (активный низкий / активный высокий 호환) — 스피커 내장 — 온도 센서 내장 (TCN75) — 리모컨 수신부 내장 (603LM ) — 센서 내장 (CdS) — 4 개의 버튼 (혹은 터치 센서) — 1 개의 상태


Теги: AVR, Atmel, RTC, DS1307, TCN75, LED, atmega16, GPS, Точечная матрица, матрица , Часы настенные, it-style.kr Отображение прокручиваемого текста

на светодиодной матрице 8×8 с использованием микроконтроллера AVR (ATmega32)

В этом уроке мы собираемся спроектировать прокручиваемый светодиодный матричный дисплей 8×8 с использованием ATMEGA32 , который будет отображать алфавиты прокрутки.

Светодиодная матрица 8×8 содержит 64 светодиода (светоизлучающие диоды), которые расположены в виде матрицы, отсюда и название — светодиодная матрица. Мы собираемся сделать эту матрицу, припаяв 64 светодиода к монтажной плате или DOT PCB. Светодиоды могут быть любого цвета, выбирайте те, которые есть в наличии. Затем мы напишем программу на языке C для микроконтроллера ATmega32 AVR для управления этой матрицей из 64 светодиодов. ATmega, согласно программе, включает соответствующие светодиоды для отображения символов в режиме прокрутки.Ранее мы делали тот же проект с прокруткой текста с Arduino.

Требуется компонентов:

  • ATMEGA32
  • Блок питания (5в)
  • 64 светодиода
  • Резисторы 1КОм (8 шт.),
  • AVR Программист ISP
  • Перфорированная плита с другими паяльными инструментами
  • АТМЕЛ СТУДИЯ 6.1

Схема и объяснение работы:

Имеется 64 светодиода, расположенных в виде матрицы. Итак, у нас 8 столбцов и 8 строк.В этих строках и столбцах собраны все положительные клеммы в ряду. В каждой строке имеется одна общая положительная клемма для всех 8 светодиодов в этой строке. Это показано на рисунке ниже,

.

Итак, на 8 рядов у нас есть 8 общих положительных выводов. Рассмотрим первый ряд, как показано на рисунке, 8 светодиодов от D57 до D64 имеют общий положительный вывод и обозначены «POSITIVE0». Теперь, если мы хотим зажечь один или все светодиоды в первом РЯДЕ матрицы, мы должны запитать A0 светодиодной матрицы.Точно так же, если мы хотим зажечь какой-либо светодиод (или все) в любом РЯДЕ, нам нужно запитать соответствующий общий положительный контактный вывод этого соответствующего ряда.

Это еще не конец, и просто оставление МАТРИЧНЫХ РЯДОВ с положительным запасом ничего не даст. Нам нужно заземлить негативы светодиодов, чтобы они светились. Таким образом, в светодиодной матрице 8×8 все отрицательные клеммы светодиодов в любом столбце объединены в восемь общих отрицательных клемм , , как и все отрицательные клеммы в первом столбце, соединены вместе с C7 (ОТРИЦАТЕЛЬНЫЙ7).Это показано на рисунке ниже:

На эти контакты следует обращать внимание при пайке светодиодов на Perfboard.

Теперь, если нам нужно заземлить любой светодиод в первом столбце, мы заземлим PIN-C7 (NEGATIVE7) МАТРИЦЫ, и он заземлит все светодиоды в первом столбце. То же самое касается всех остальных семи общих отрицательных столбцов.

Теперь вы знаете, как работает общий положительный и общий отрицательный. Давайте соберем их вместе, чтобы увидеть, как они работают вместе, и окончательная схема для прокрутки светодиодного матричного дисплея 8×8 будет выглядеть так:

Управление светодиодной матрицей 8×8 с использованием мультиплексирования:

Теперь предположим, что мы хотим включить LED57, затем нам нужно запитать PORTA0 ATMEGA32 и заземлить PORTC0 ATMEGA32.Теперь, чтобы включить LED57 и LED50, нам нужно запитать PINA0, PINA1 и заземлить PINC0, PINC1. Но при этом будут включены не только D57, D50, но и D49, D58. Чтобы избежать этого, мы используем метод под названием Multiplexing . Мы уже подробно обсуждали эту технику мультиплексирования в светодиодной матрице 8×8; прочтите эту статью для подробного объяснения. Здесь мы кратко объясняем мультиплексирование.

Человеческий глаз не может уловить частоту более 30 Гц. То есть, если светодиод постоянно горит и гаснет с частотой 30 Гц или более.Глаз видит, что светодиод постоянно включен. Однако это не так, и светодиод будет постоянно включаться и выключаться. Этот метод называется Multiplexing .

Скажем, например, мы хотим включить только LED57 и LED50, не включая D49 и D58. Хитрость в том, что сначала мы подадим питание на первый ряд, чтобы включить LED57 и подождать 1 мсек, а затем выключим его. Затем мы подадим питание на второй ряд, чтобы включить LED50 и подождать 1 мсек, а затем выключим его.Цикл идет непрерывно с высокой частотой, и LED57 и LED50 будут быстро включаться и выключаться, и нам будет казаться, что оба светодиода постоянно горят. Это означает, что мы обеспечиваем питание только одного ряда за раз, что исключает возможность включения других светодиодов в других рядах. Мы будем использовать эту технику, чтобы показать всех персонажей.

Мы запишем десятичное значение для каждого символа и запрограммируем эти значения в ATMEGA32. Программа сдвигает эти значения слева направо, непрерывно показывая символы прокрутки.

Обычно микросхема MAX7219 используется для управления светодиодной матрицей 8×8, мы использовали эту микросхему в нашем предыдущем проекте с Arduino: проверьте здесь.

Объяснение программирования:

Полный код приведен под статьей, мы написали программу на C для ATmega32 для горизонтальной прокрутки символов на светодиодной матрице 8×8.

Чтобы изменить отображаемые символы, просто замените значение в массиве char ALPHA [] в соответствии со значениями символов, приведенными ниже,

{0,0b01111111,0b11111111,0b11001100,0b11001100,0b11001100,0b11111111,0b01111111}, // A
{0,0b00111100,0b01111110,0b11011011,0b11011011,0b11011011,0b11111111,0b11111111}, // B
{0,0b11000011,0b11000011,0b11000011,0b11000011,0b11100111,0b01111110,0b00111100}, // C
{0,0b01111110,0b10111101,0b11000011,0b11000011,0b11000011,0b11111111,0b11111111}, // D
{0,0b11011011,0b11011011,0b11011011,0b11011011,0b11011011,0b11111111,0b11111111}, // E
{0,0b11011000,0b11011000,0b11011000,0b11011000,0b11011000,0b11111111,0b11111111}, // F
{0b00011111,0b11011111,0b11011000,0b11011011,0b11011011,0b11011011,0b11111111,0b11111111}, // G
{0,0b11111111,0b11111111,0b00011000,0b00011000,0b00011000,0b11111111,0b11111111}, // H
{0b11000011,0b11000011,0b11000011,0b11111111,0b11111111,0b11000011,0b11000011,0b11000011}, // I
{0b11000000,0b11000000,0b11000000,0b11111111,0b11111111,0b11000011,0b11001111,0b11001111}, // J
{0,0b11000011,0b11100111,0b01111110,0b00111100,0b00011000,0b11111111,0b11111111}, // К
{0b00000011,0b00000011,0b00000011,0b00000011,0b00000011,0b00000011,0b11111111,0b11111111}, // L
{0b11111111,0b11111111,0b01100000,0b01110000,0b01110000,0b01100000,0b11111111,0b11111111}, // М
{0b11111111,0b11111111,0b00011100,0b00111000,0b01110000,0b11100000,0b11111111,0b11111111}, // N
{0b01111110,0b11111111,0b11000011,0b11000011,0b11000011,0b11000011,0b11111111,0b01111110}, // O
{0,0b01110000,0b11111000,0b11001100,0b11001100,0b11001100,0b11111111,0b11111111}, // П
{0b01111110,0b11111111,0b11001111,0b11011111,0b11011011,0b11000011,0b11111111,0b01111110}, // Q
{0b01111001,0b11111011,0b11011111,0b11011110,0b11011100,0b11011000,0b11111111,0b11111111}, // R
{0b11001110,0b11011111,0b11011011,0b11011011,0b11011011,0b11011011,0b11111011,0b01110011}, // S
{0b11000000,0b11000000,0b11000000,0b11111111,0b11111111,0b11000000,0b11000000,0b11000000}, // T
{0b11111110,0b11111111,0b00000011,0b00000011,0b00000011,0b00000011,0b11111111,0b11111110}, // U
{0b11100000,0b11111100,0b00011110,0b00000011,0b00000011,0b00011110,0b11111100,0b11100000}, // V
{0b11111110,0b11111111,0b00000011,0b11111111,0b11111111,0b00000011,0b11111111,0b11111110}, // W
{0b01000010,0b11100111,0b01111110,0b00111100,0b00111100,0b01111110,0b11100111,0b01000010}, // X
{0b01000000,0b11100000,0b01110000,0b00111111,0b00111111,0b01110000,0b11100000,0b01000000}, // Y
{0b11000011,0b11100011,0b11110011,0b11111011,0b11011111,0b11001111,0b11000111,0b11000011} // Z 

Например, если вы хотите, чтобы отображал DAD на светодиодной матрице , сначала замените значения символов в массиве char ALPHA [] , поместив значения для символов D, A и D из приведенного выше списка:

char ALPHA [] = {0,0,0,0,0,0,0,0,0,0,0,
0,0b01111110,0b10111101,0b11000011,0b11000011,0b11000011,0b11111111,0b11111111,
0,0b01111111,0b11111111,0b11001100,0b11001100,0b11001100,0b11111111,0b01111111,
0,0b01111110,0b10111101,0b11000011,0b11000011,0b11000011,0b11111111,0b11111111,
0,0,0,0,0,0,0,0,0,0,0}; 

Всего значений теперь 5 * 10 = 50 значений, поэтому

Заменять,
  for (int x = 0; x <142; x ++) // 150-8 (чтобы остановить переполнение)
  {……..
  
С,
  for (int x = 0; x <42; x ++) // 50-8 (чтобы остановить переполнение)
  {…… .. 

Значит, вам просто нужно изменить номер.

На этом вы выполнили программирование и теперь можете Прокручивать любой текст на светодиодной матрице 8x8 с помощью AVR , проверить Полный код ниже с демонстрацией Видео .

Создайте часы реального времени на Proteus, используя точечно-матричный светодиодный дисплей

Разработка часов реального времени с использованием точечно-матричного дисплея на Proteus

Объектив - время отображения на матричном дисплее 8X32

В этой статье часы реального времени RTC DS 1307 связаны с микроконтроллером, а время отображается на матричном дисплее.Схема моделируется с помощью программного обеспечения Proteus. Мы обсудим проект в двух частях: одна - это , взаимодействующая с матричным дисплеем , а другая - , взаимодействующая с RTC DS 1307 . Любая ИС RTC, например DS 3232, поставляется со встроенным кристаллом, с которым могут быть связаны сигналы тревоги.

В этой статье последовательно объясняется часть программирования с использованием программного обеспечения « mikro C PRO для AVR» . Логика разрабатывается поэтапно, чтобы, следуя статье, можно было проектировать дисплеи разных размеров и форматов.Давайте сначала обсудим точечные матричные дисплеи. Отображение текста или символов на матричном дисплее выполняется путем обновления дисплея фреймами данных. Теперь обсудим обновление столбца. Для этого собираются и обновляются кадры данных для столбцов.

Выбор матричного отображения матрицы

Массив 32 X 8 содержит 8 строк и 32 столбца. Это выбрано, потому что мы должны отображать время с точностью до секунд, и оно состоит из 6 цифр. Каждая цифра оформлена как матрица 5 X 7 i.е .., 5 столбцов и 7 рядов. Итак, для шести цифр нам нужно 5 * 6 = 30 столбцов и два столбца для разделения часов, минут и секунд. Из дисплеев, доступных в виде модуля, достаточно 4 * 8X8 светодиодных матричных дисплеев. Однако мы можем изменить матрицу отображения в соответствии с нашими требованиями, внося соответствующие исправления в программную часть.

Обрамление персонажей

Теперь давайте представим цифры в виде матрицы 5X7. Для этого нам нужно объявить двумерный массив типа « char » на 10 цифр.На изображении ниже показано обрамление цифры « 0 » для модуля с общим катодом столбца, что означает, что столбцы активируются, давая сигнал low , а соответствующие светодиоды строки включаются с сигналом high

Кадрирование данных для цифры «0»

Из приведенного выше изображения каждая точка в цифре рассматривается как High , т.е. логика 1. Поскольку существует 5 столбцов, для каждого отдельного столбца светодиоды строк, которые должны светиться, хранятся в массиве.Таким образом, нам нужно 5 байтов на каждую цифру. Шрифт или стиль - по нашему выбору. Стиль также может быть сегментным. Мы должны обрамить цифру в соответствии с формой. Аналогичным образом обрамлены и другие цифры. На изображении ниже показаны рамки цифры «0» общего типа анода Column, поскольку он легко доступен в Proteus. Просто отрицая данные, символы в рамке можно поменять местами.

Рамки цифры «0»

Поскольку цифры заключены в рамки, самое время отобразить их. Для отображения цифр в матричных массивах в этом случае требуются 5-контактные разъемы для управления отдельными столбцами и 7-контакты для управления строками .Последовательность выполнения программы выглядит следующим образом: включить столбец-1 и передать данные соответствующих строк в строки. Подождите несколько миллисекунд и отключите столбец-1. Теперь удалите данные строк, включите столбец-2 и выдайте данные строк столбца-2. Повторяйте предыдущие шаги непрерывно в виде цикла, чтобы показать цифру.

Отображение цифр

Для одной цифры возможно управление с помощью одного микроконтроллера. Но если несколько матриц объединяются в массив, приведенная выше схема изменяется, оставляя тот же поток программы.Чтобы уменьшить количество выводов столбцов, Столбец-1 всех матриц 8X8 соединяется вместе, образуя единый узел, и, как и другие, остальные столбцы. Таким образом, для управления всеми столбцами массива требуется только 8 контактов.

Как уже обсуждалось, столбцы просто обновляются в определенной и единственной последовательности, которая представляет собой смещение сигнала HIGH из одного столбца в следующий столбец . Для этого можно использовать декадный счетчик IC. Теперь мы используем матрицу 8X8, поэтому нам нужно управлять 8 столбцами.«Сбросив» декадный счетчик с выходом 9 , мы можем достичь требуемой последовательности. Микроконтроллер должен послать тактовый сигнал через один из своих выводов ввода / вывода на декадный счетчик, и еще один вывод требуется для Master Reset счетчика при запуске дисплея, чтобы избежать повреждения данных. Итак, теперь мы уменьшили количество контактов управления колонкой с 5 до 2 контактов . Это применимо для обновления массивов до 10 столбцов (в случае, если вы проектируете панель дисплея без использования готовых модулей).

Последовательная передача данных от микроконтроллера

Теперь уменьшим количество контрольных штифтов ряда. Для этой цели мы используем регистры Serial-In, Serial-Out и Parallel-Out с Load / Store и O utput E nable входами. Микроконтроллер должен иметь интерфейс SPI-S erial P eripheral I . Данные строк из микроконтроллера последовательно сдвигаются в эти регистры для каждого кадра всей дисплейной платы.Затем данные загружаются на параллельный выход этих регистров путем выдачи микроконтроллером сигналов включения нагрузки и вывода. В этом проекте мы постоянно включили вывод нагрузки / STB, подключив его к Vcc. Итак, для передачи строковых данных нам нужны два контакта для последовательной передачи и два контакта для сигналов загрузки и включения. Для одной матрицы требуется один регистр. Итак, мы должны увеличить матрицы и регистры как пару, чтобы увеличить размер массива. Ниже представлена ​​измененная принципиальная схема.

Схема с использованием сдвигового регистра

Процедура построения схемы и код включения SPI показаны на следующем видео.

Построение схемы - демонстрация

Последовательность выполнения программы и результаты моделирования представлены в следующем видео. До сих пор мы использовали только 5 столбцов матрицы 8X8 для отображения одной цифры.

Выходные данные моделирования

Не принимайте эти выходы как окончательные.Наша цель - отобразить время на матричном массиве, состоящем из шести цифр. Чтобы отобразить это множество символов, мы должны изменить нашу схему, расширив модули отображения матрицы и регистры сдвига.

Изменение схемы

Обрамление текста

Сложно отобразить эти шесть цифр с указанным выше форматом программы, лучше сгруппировать все данные строки для каждого столбца в одну переменную. Предположим, что нам нужно показать цифры от 0 до 5.Теперь нам нужно сформировать массив, в котором данные строки всех этих цифр хранятся одна за другой. Чтобы сократить пояснение, давайте обозначим цифры так, как будто мы показываем время. Для этого мы должны определить массив с именем « time» типа char, который содержит фактическое время, которое мы собираемся считать с часов реального времени. Поскольку наш массив содержит 32 столбца, массив данных должен хранить 32 байта.

Фрагмент программы для Framing

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

Положение столбца разделителей

При подсчете цифр в столбцах мы получаем разделители в 10 столбцах и 21 -й столбец . Измененный код для включения разделителей показан ниже.

Код для обрамления с разделителями

Перенос данных из микроконтроллера в регистры сдвига

Пора отображать символы.Мы должны посылать данные, хранящиеся в массиве строковых данных, кадр за кадром из микроконтроллера в регистры сдвига. Поскольку для каждой матрицы есть 8 столбцов, и мы объединили уникальные столбцы всех модулей матрицы, получается 8 кадров. Ниже приведен пример покадрового отображения.

Пример покадрового отображения

Из приведенного выше изображения ясно, что мы должны отправлять данные в соответствии с кадрами. В первом кадре отправляются данные, соответствующие столбцу 1 всех матриц.Когда мы выдаем данные через регистры последовательного сдвига, сначала отправляются данные, соответствующие столбцу-1 матрицы 4 , затем 3-й матрице -й матрицы , 2-й матрице и, наконец, 1 матрице . Ниже показано соотношение «один-один» между столбцами и ранее созданным массивом данных строк.

Соотношение строк и столбцов - матричный дисплей

S. No. Столбец в терминах матриц Адрес массива данных строк
1. Матрица 1 - Столбец 1 (M1 C1) 0
2. M1 C2 1
3. M1 C3 2
4. M1 C4 3
5. M1 C5 4
6. M1 C6 5
7. M1 C7 6
8. M1 C8 7
9. м2 C1 8
10. M2 C2 9
11. M2 C3 10
12. M2 C4 11
13. M2 C5 12
14. M2 C6 13
15. M2 C7 14
16. M2 C8 15
17. M3 C1 16
18. M3 C2 17
19. M3 C3 18
20. M3 C4 19
21. M3 C5 20
22. M3 C6 21
23. M3 C7 22
24. M3 C8 23
25. M4 C1 24
26. M4 C2 25
27. M4 C3 26
28. M4 C4 27
29. M4 C5 28
30. M4 C6 29
31. M4 C7 30
32. M4 C8 31

Логика программы для отправки данных в соответствии с обсуждаемым форматом показана ниже.Перед запуском цикла while мы должны вызвать функцию кадрирования .

Программный код для посылки данных строк кадр за кадром

По умолчанию мы предварительно определили время как 12 00 00 , выдав соответствующие значения в массиве времени. Последовательность временного массива следующая: «время [0]» == десять часов и «время [5]» == секунды. Результат моделирования показан ниже.

Отображение 6 цифр времени по умолчанию

Связь с часами реального времени IC

К настоящему времени мы завершили матрицу сопряжения матричных дисплеев.Теперь мы обсудим вторую часть, которая касается взаимодействия с микросхемой RTC DS 1307 / DS 3232 IC, а затем считывания с нее времени. Для этого требуется TWI - T wo W ire serial I nterface feature в микроконтроллере. Мы используем микроконтроллер ATMEGA 8 . Согласно паспорту, программный код для передачи и приема данных следующий. Мы должны прочитать данные из ИС RTC и перенести их в наши ранее заявленные «временные» регистры .Прямоугольная волна с частотой 1 Гц генерируется микросхемой RTC с помощью подходящих настроек регистра. Эта прямоугольная волна используется в качестве внешнего источника прерывания для микроконтроллера, поэтому регистры времени обновляются каждую секунду. Ниже приведен код обсуждаемой процедуры.

Программный код для операции чтения RTC

Эта операция чтения выполняется каждую секунду. Функция read вызывается в подпрограмме прерывания внешнего прерывания, которое активируется входным прямоугольным сигналом с частотой 1 Гц.Пустой столбец разделителя можно заменить на обычные мигающие точки с помощью следующего фрагмента. Каждую секунду данные, соответствующие столбцу разделителя, изменяются с пустых данных на точки в подпрограмме прерывания ввода прямоугольной волны.

Программный код обновления мигающего разделителя

В зависимости от значения разделителя, равного «0» или «1», массив данных строк этих двух столбцов изменяется вместе со временем в функции кадрирования. Ниже приведен код для этого.

Программный код для кадрирования мигающего разделителя

Ниже приведены результаты моделирования проекта, закодированного до сих пор.

Результат моделирования, отображающий время

Редактирование времени

К настоящему времени у нас есть сопряженные матричные дисплеи и часы реального времени. Полученный результат в этом состоянии не позволяет пользователю редактировать время. В качестве последнего шага давайте создадим код для редактирования времени. Для этого мы используем 3 кнопки для установки / изменения , переключения между цифрами и настройки выбранной цифры.Внешнее прерывание микроконтроллера INT0 используется для редактирования времени. Схема разработана таким образом, что нажатие любой из кнопок вызовет прерывание. Таким образом, считывая фактическую кнопку, которая используется в подпрограмме прерывания, мы предпринимаем соответствующее действие для изменения времени. Ниже представлена ​​принципиальная схема.

Схема для редактирования времени

Программная логика для установки времени представлена ​​в программном файле. Чтобы указать выбранную цифру, дисплей ограничивается рамкой только до выбранной цифры.Для этого определяется функция set_framing, которая вызывается во время редактирования.

Вывод моделирования с возможностью редактирования

При аппаратной реализации лучше использовать драйверы для столбцов, так как один декадный счетчик не может управлять всем током. Если используются модули катодного типа столбца, удалите отрицание при загрузке SPDR с данными строки, и транзисторы NPN могут использоваться для управления столбцами, управляя их базами с выходами счетчика декад.

Загрузки

Загрузка - программный файл C и шестнадцатеричный двоичный файл

Итак, мы закончили наше руководство по созданию часов реального времени в среде Proteus с использованием матричного светодиодного дисплея.

Аналоговые часы | Hackaday

Есть ли какие-нибудь проекты в последнюю минуту, которые вы завершили незадолго до конца десятилетия? Чтобы помочь скоротать время, [Эрих Стайгер] решил создать мета-цифровые часы, состоящие из 24 отдельных аналоговых часов, - идеальный предмет для встречи в новом году. Шаговые часы управляются сетью микроконтроллеров LPC, отображающих время и температуру в помещении, а также несколько эстетически приятных анимаций загрузки.

Каждые часы работают от 5-вольтового блока питания USB, потребляя менее 2 А для полной 24-тактовой настройки.Мета-часы размещены в корпусе, вырезанном лазером, а стрелки на 3D-принтере показывают время. Хотя было бы проще реализовать одну доску на такт, [Эрих] решил использовать одну доску на четыре такта, расположенных рядами, чтобы сэкономить на затратах. Компоновка фиксирует расстояние между часами, хотя [Эрих] также для компенсации уменьшил размер часов.

«Шаговая» часть шаговых часов использует 360-градусную версию шагового двигателя VID28, чтобы уменьшить высоту конструкции и стоимость проекта.Помимо драйвера X12.017, который бесшумно управляет двигателями, шаговым двигателям также удобно использовать только штырьки «направления» и «шага», что сокращает количество контактов, необходимое для микроконтроллера. Неодимовые магниты и датчики на эффекте Холла используются для отслеживания положения стрелок при движении часов, а магниты встроены в стрелки часов.

Что касается связи, вместо использования общего протокола I2C был выбран более надежный RS-485. Мастер координирует все часы с помощью шины, обеспечивая интерфейс командной строки.Мастер также может связываться с главным компьютером через USB для поддержания времени RTC.

На этапе разработки программного обеспечения [Эрих] использовал мини-интерфейс командной строки SEGGER J-Link EDU для отслеживания информации о драйвере и каждом отдельном шаговом двигателе. Программное обеспечение, управляющее двигателями, написано на языке C, а платы работают под управлением FreeRTOS. Пошаговое выполнение обрабатывается с помощью прерывания таймера, но поскольку LPC845 не имеет достаточного количества каналов таймера, все функции выполняются в пределах одного канала.Это приводит к множеству обработчиков прерываний, флагов и обратных вызовов во всем коде, что доставляет удовольствие.

Говоря о часах, ознакомьтесь с некоторыми другими нашими прошлыми хитростями, включая эти часы с мини-VFD и эти забавные часы со светодиодной матрицей (они позволяют играть в тетрис!).

Читать далее «Создание гигантских мета-часов из меньших часов» →

Atmel ATmega Микроконтроллер VGA / PAL адаптер

> > Прототип видеоадаптера VGA

> > Вот как это выглядит на мониторе VGA...

> > ... и выводить на телек.

Предпосылки проекта.

Несколько месяцев назад я пытался подключить микроконтроллерную систему к Монитор VGA для вывода данных в виде текста.Я был удивлен, обнаружив немного по этой теме в Интернете, чтобы помочь мне в достижении этой цели. Конечно ничего простого новичка не может найти полезным.

Есть примеры, которые используют стандарты, такие как PC-104. или сложные реализации FGPA, найденные на www.opencores.org. Другие решения включают графические контроллеры Fujitsu или даже один локальный Русский человек, который выставлял на продажу проект за 5000 долларов на ACEX. Эти хорошо, но они мало помогают большинству любителей и т. д., которые хотят показать текст на VGA или подобном экране.

Что Я хотел получить «быстрое и грязное» решение, которое не стоило бы слишком дорого.

Первоначальные расчеты показали, что 8-битный микроконтроллер AVR от ATMEL, с его тактовой частотой 16 МГц, обеспечивающей примерно 16 MIPS, было хороший кандидат на дальнейшие исследования. Также обратите внимание, что более новые AVR, такие как Mega48, Mega88 и Mega168 будут официально поддерживать тактовую частоту до 20 МГц. Поэтому я пришел к выводу, что с тактовая частота 16 Mhz я мог добиться чего-то порядка 8 Mhz скорости передачи данных переводятся из порта.Я также выбрал AVR, поскольку у меня уже накопился большой опыт работы с ним, и так я начал работу над проектом.

После примерно два-три месяца исследований, представляю вам плоды моих труд!

Цель проекта:

Задача, которую я поставил перед собой, достаточно проста, чтобы перечислить. С общедоступными микроконтроллеры, такие как Mega8, Mega16 и аналогичные, и с минимальным внешние компоненты Мне нужен был дизайн, который можно было бы отображать на минимум 15x15 символов на мониторе VGA с использованием стандартных частот VGA.Сами данные должны быть получены микроконтроллер через его порт USART. Все используя тактовую частоту 16 МГц для AVR.

данная проблема на данный момент решена успешно.

Более того - проект немного расширен и дополнен введение формации обыкновенной

Видео монохромный (PAL / SECAM) сигнал. Т.е. в зависимости от положения перемычки тип сформированное видео сигнала VGA или композитного видео.

Первоначальная цель достигнута. Проект расширился за счет включения сингла Monochomatic Video (PAL / SECAM). В моей тестовой установке простая перемычка определяет, VGA или композитное видео.

>> Схема видеоадаптера VGA

Характеристика объекта:

VGA-терминал:

Количество символов: 20 строк по 20 знаков.

разрешение символьной матрицы: 8х12 точек

Поддерживается кодовая страница: WIN 1251

Сформировано сигнал: VGA

разрешение: 640x480

Частота вертикальной синхронизации: 60 Гц

Скорость обмена UART 19200 бит / с

Видеотерминал:

Количество символов: 20 строк по 38 знаков.

разрешение индивидуальной символьной матрицы: 8х12 точек

Поддерживается кодовая страница: WIN 1251

Сформировано сигнал: композитное видео (PAL / SECAM)

Разрешение: 625 строк (чересстрочная)

Частота вертикальной синхронизации: 50 Гц

Скорость обмена UART 19200 бит / с

Тип используемого микроконтроллера: Mega8, Mega16, Mega32, Mega8535 и др.

Часы частота микроконтроллера стандартная - 16Mhz.

Примечания:

1. Во избежание искажения изображения при получение данных через UART, для VGA рекомендуется сделать данные обмен с терминалом примерно через 300-600 мкс после сигнала вертикальная синхронизация (VSYNC).

2. Доступная внутренняя RAM Mega8535 (всего 512 байт) недостаточно для формирования видеосигнала с разрешение 38х20 символов.

Алгоритм программы:

Разъяснения по работе программы:

Алгоритм рендеринга изображения достаточно традиционный, основной ноу-хау проекта - это побитовое смещение изображения с использованием Регистр сдвига SPI SPDR через вывод MOSI. Таким образом, на заводе выполняются две работы. в то же время, когда отправляется следующий байт для рендеринга, предыдущий байт сдвигается через регистр сдвига (SPI SPDR MOSI).Различия между рисунки 2 и 3 демонстрируют это.

Заключение:

Учитывая, что проект был написан с WinAVR (GCC), он относительно легко увеличить разрешение и / или частоты, используемые при создании дисплея картинки. С предстоящим наличие микроконтроллеров AVR, таких как Mega48, Mega88 и Mega168 официально поддерживая тактовую частоту 20 МГц, можно добиться разрешение 20 строк по 25-30 знаков.Это возможно при использовании именно такая же схемотехника.

При необходимости код можно портировать на другие семейства современных RISC. микроконтроллеры с минимальными изменениями кода. Основные ограничения необходимы не менее 16 MIPS и пропускная способность через SPI не менее 8 мегабит в секунду.

Применение адаптера:

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

оставшейся мощности хватит на организацию обработки, например, нескольких цифровых и аналоговых сигналов и реакции на их, а также выдача результатов их измерений на дисплей в в реальном времени (Системы безопасности, Промышленная автоматика и т.п.). Автор имеет улучшенные варианты подобных систем с разрешение символьного дисплея 40x24 символа в режиме VGA, работа в коммерческие продукты.

Вы можете свободно использовать материалы этого проект для образовательных и некоммерческих целей. Все права этого проекта зарезервированы автором. Любая перепечатка, публикация, в том числе на Интернет, использование в коммерческих или аналогичных проектах материалов этого проекта категорически запрещено и только доступны с письменного согласия автора.

Файлы:

Исходники проекта, примеры

Эта статья в формате "PDF"

Полезные ссылки:

Теория Видео сигнал

Корнельский университет Электротехника 476 - Генерация видеосигнала на AVR

Теория сигнала VGA

Сигнал VGA поколения

на ПИК

Дальнейшее развитие проекта смотрите на http: // www.vga-avr.narod.ru/

Связаться с автором по электронной почте: [email protected]

Автор Ибрагимов Максим Рафикович Россия, Тольятти 20.10.2005

Обзор осциллятора

megaAVR® - Справка разработчика

8-битные микроконтроллеры Microchip megaAVR®

имеют несколько вариантов источника тактовой частоты, выбираемых посредством программирования битов предохранителя CKSEL Flash . Это обсуждение относится к микроконтроллеру ATmega328PB.

Для предохранителей можно выбрать одно из:

  • Кристаллический генератор малой мощности
  • Низкочастотный кварцевый генератор
  • Внутренний RC-генератор 128 кГц
  • Откалиброванный внутренний RC-генератор
  • и
  • Внешние часы.

Источник системных часов нельзя изменить во время работы, так как он устанавливается посредством программирования предохранителей.

Системная тактовая частота может быть изменена во время выполнения путем записи в регистр предделителя системных часов (CLKPR).


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

Максимальная рабочая частота megaAVR® зависит от V CC . Прикладное программное обеспечение должно гарантировать, что выбранная частота источника синхронизации находится в пределах безопасной рабочей области (см. Раздел 33.4 в техническом описании устройства ).

На следующем рисунке показаны основные системы синхронизации в устройстве и их распределение.Не обязательно, чтобы все часы были активными в определенное время. Чтобы снизить энергопотребление, тактовую частоту неиспользуемых модулей можно остановить, используя различные спящие режимы. Системы часов описаны в следующих разделах. Системная тактовая частота относится к частоте, генерируемой предделителем системной тактовой частоты. Все тактовые выходы блока управления тактовыми импульсами AVR работают с одинаковой частотой.

Устройство имеет следующие параметры источника синхронизации, выбираемые с помощью битов CKSEL Flash Fuse, как показано ниже.Тактовая частота от выбранного источника вводится в тактовый генератор AVR® и направляется в соответствующие модули.

Источник тактовой частоты по умолчанию

Устройство поставляется с внутренним RC-генератором, выбранным на 8,0 МГц, и с запрограммированным предохранителем CKDIV8, что обеспечивает системную частоту 1,0 МГц. Время запуска установлено на максимальное, и период ожидания включен: CKSEL = 0010, SUT = 10, CKDIV8 = 0. Эта настройка по умолчанию гарантирует, что все пользователи могут выполнить желаемую настройку источника синхронизации с помощью любого доступного интерфейса программирования.

Последовательность запуска часов

Любому источнику тактовых импульсов необходимо (i) V CC , достаточное для начала колебания и (ii) минимальное количество колебательных циклов, прежде чем его можно будет считать стабильным .

Vcc Стабильность

Для обеспечения достаточного V CC устройство выполняет внутренний сброс с задержкой тайм-аута ( t TOUT ) после того, как сброс устройства разрешен всеми другими источниками сброса:

Задержка ( t TOUT ) синхронизируется с генератором сторожевого таймера, а время задержки устанавливается битами предохранителя SUTx и CKSELx.Выбираемые задержки для t TOUT показаны в таблице ниже. Обратите внимание, что частота сторожевого генератора зависит от напряжения:

V CC не контролируется во время задержки, поэтому необходимо выбрать задержку больше, чем время нарастания V CC . Если это невозможно, следует использовать внутреннюю или внешнюю цепь обнаружения пониженного напряжения (BOD). Цепь BOD обеспечит достаточное количество V CC перед тем, как сбросить сброс, и задержку тайм-аута можно отключить.Не рекомендуется отключать задержку тайм-аута без использования цепи обнаружения пониженного напряжения.

Осциллятор стабильности

Генератор должен генерировать колебания в течение минимального количества циклов, прежде чем часы будут считаться стабильными. Внутренний счетчик пульсаций контролирует тактовую частоту на выходе генератора и поддерживает активный внутренний сброс в течение заданного количества тактов. Затем сброс выполняется, и устройство начинает работать. Рекомендуемое время запуска генератора зависит от типа часов и варьируется от 6 циклов для внешних часов до 32 К циклов для низкочастотного кристалла.

Кристаллический генератор малой мощности

Контакты XTAL1 и XTAL2 являются входом и выходом соответственно инвертирующего усилителя, который можно настроить для использования в качестве встроенного генератора, как показано на рисунке ниже. Можно использовать кварцевый кристалл или керамический резонатор:

Генератор малой мощности может работать в трех различных режимах, каждый из которых оптимизирован для определенного диапазона частот. Режим работы выбирается предохранителями CKSEL [3: 1], как показано в следующей таблице:

Предохранитель CKSEL0 вместе с предохранителями SUT [1: 0] выбирают время запуска (см. Раздел 11.3 в техническом описании устройства ).

Низкочастотный кварцевый генератор

Низкочастотный кварцевый генератор оптимизирован для использования с часовым кристаллом 32,768 кГц. Низкочастотный кварцевый генератор должен быть выбран путем установки предохранителей CKSEL на '0110' или '0111', а время запуска определяется Предохранители SUT.

Калиброванный внутренний RC-генератор

По умолчанию внутренний RC-генератор обеспечивает тактовую частоту 8,0 МГц. Хотя эти часы зависят от напряжения и температуры, пользователь может их очень точно откалибровать.Устройство поставляется с запрограммированным предохранителем CKDIV8, обеспечивающим системную тактовую частоту 1 МГц. Эти часы можно выбрать в качестве системных часов, запрограммировав предохранители CKSEL на «0010» :. Если этот параметр выбран, он не будет работать без внешних компонентов. Во время сброса оборудование загружает предварительно запрограммированное значение калибровки в регистр OSCCAL и тем самым автоматически калибрует RC-генератор.

См. Примечание приложения AVR053 , в котором описывается процедура повторной калибровки внутреннего RC-генератора.

Внутренний осциллятор 128 кГц

Внутренний генератор 128 кГц - это генератор малой мощности, обеспечивающий тактовую частоту 128 кГц. Эти часы можно выбрать в качестве системных часов, запрограммировав предохранители CKSEL на «0011».

Внешние часы

Чтобы управлять устройством от внешнего источника синхронизации, EXTCLK должен управляться, как показано на рисунке ниже. Чтобы устройство работало по внешним часам, предохранители CKSEL должны быть запрограммированы на «0000».

Буфер вывода часов

Устройство может выводить системные часы на вывод CLKO.Для включения выхода необходимо запрограммировать предохранитель CKOUT. Этот режим подходит, когда часы микросхемы используются для управления другими схемами в системе. Часы также будут выводиться во время сброса, и нормальная работа контакта ввода / вывода будет отменена при программировании предохранителя. Любой источник синхронизации, включая внутренний RC-генератор, может быть выбран, когда часы выводятся на CLKO. Если используется предделитель системных часов, выводятся разделенные системные часы.

Генератор таймера / счетчика

В устройстве используется один и тот же кварцевый генератор для низкочастотного генератора и генератора таймера / счетчика.См. «Низкочастотный кварцевый осциллятор» для получения подробной информации о требованиях к генератору и кристаллу.

На этом устройстве выводы генератора таймера / счетчика (TOSC1 и TOSC2) используются совместно с EXTCLK. При использовании генератора таймера / счетчика системные часы должны в четыре раза превышать частоту генератора. Из-за этого и совместного использования контактов генератор таймера / счетчика можно использовать только в том случае, если в качестве источника системных часов выбран калиброванный внутренний RC-генератор. Применение внешнего источника синхронизации к TOSC1 может быть выполнено, если бит Enable External Clock Input в регистре асинхронного состояния (ASSR.EXCLK) записывается в '1'. См. Описание асинхронной работы таймера / счетчика 2 для дальнейшего описания выбора внешних часов в качестве входа вместо часового кристалла 32,768 кГц.

Устройство имеет предварительный масштабатор системных часов, и системные часы можно разделить, настроив регистр предварительного масштабирования часов (CLKPR). Эта функция может использоваться для уменьшения системной тактовой частоты и энергопотребления, когда потребность в вычислительной мощности невысока. Это можно использовать со всеми вариантами источника тактовой частоты, и это повлияет на тактовую частоту ЦП и всех синхронных периферийных устройств.clk I / O , clk ADC , clk CPU и clk FLASH делятся на коэффициент, как показано в описании CLKPR:

Запись в CLKPR

При переключении между настройками предварительного делителя частоты предварительный делитель частоты системы обеспечивает отсутствие сбоев в работе системы синхронизации. Это также гарантирует, что никакая промежуточная частота не будет выше, чем ни тактовая частота, соответствующая предыдущей настройке, ни тактовая частота, соответствующая новой настройке.Счетчик пульсаций, реализующий предварительный делитель, работает на частоте нераздельных часов, которая может быть выше, чем тактовая частота процессора. Следовательно, невозможно определить состояние предделителя - даже если он был читаемым, точное время, необходимое для переключения с одного деления часов на другое, нельзя точно предсказать. С момента записи значений битов выбора предделителя тактовой частоты (CLKPS [3: 0]) проходит от T1 + T2 до T1 + 2 * T2, прежде чем новая тактовая частота станет активной.В этом интервале создаются два активных тактовых фронта. Здесь T1 - это предыдущий период тактовой частоты, а T2 - период, соответствующий новой настройке предварительного делителя частоты. Чтобы избежать непреднамеренного изменения тактовой частоты, необходимо выполнить специальную процедуру записи для изменения битов CLKPS:

  1. Запишите бит разрешения изменения предделителя тактовой частоты (CLKPCE) в «1», а все остальные биты в CLKPR в ноль: CLKPR = 0x80.
  2. В течение четырех циклов запишите желаемое значение в CLKPS [3: 0], записав ноль в CLKPCE: CLKPR = 0x0N

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

Образец кода

Следующая функция может использоваться для динамического обновления CLKPR, как указано выше. Обратите внимание на использование функций cli () и sei (), чтобы гарантировать непрерывность процедуры записи CLKPR.

CLKDIV8 Предохранитель и CLKPR

Предохранитель CKDIV8 определяет начальное значение битов CLKPS. Если CKDIV8 не запрограммирован, биты CLKPS будут сброшены на «0000». Если CKDIV8 запрограммирован, биты CLKPS сбрасываются на «0011», что дает коэффициент деления 8 при запуске.Эту функцию следует использовать, если выбранный источник синхронизации имеет более высокую частоту, чем максимальная частота устройства в текущих условиях эксплуатации. Обратите внимание, что любое значение может быть записано в биты CLKPS независимо от настройки предохранителя CKDIV8. Прикладное программное обеспечение должно гарантировать, что выбран достаточный коэффициент деления, если выбранный источник синхронизации имеет более высокую частоту, чем максимальная частота устройства в текущих рабочих условиях. Устройство поставляется с запрограммированным предохранителем CKDIV8.

Проекты 1402 at mega32 avr

Опубликовать 22-янв-2018

83 просмотра

Размер встраивания (px) 344 x 292429 x 357514 x 422599 x 487

TRANSCRIPT

  1. 1. 18.11.2017 Проекты - ATMega32 AVR http://atmega32-avr.com/projects/ 1/25 Искать здесь ... Обо мне Архивы Atmega Проекты AVR PDF Проекты AVR Свяжитесь с нами Политика конфиденциальности Проекты Карта сайта Условия использования Спасибо ГЛАВНАЯ ПРОЕКТЫ AVR ПРОЕКТЫ ATMEGA ПРОЕКТЫ AVR PDF СВЯЗАТЬСЯ С НАМИ TORPEDO: универсальный импульсный источник питания Создание счетчика Гейгера с таймером 555 IC на основе микроконтроллера LED- Монитор сигналов VU Meter RC с использованием Bargr Вы здесь: Главная Проекты Проекты 1.Arduino Mega 2560 2. Реализация дискретного преобразования Фурье в Atmega32 для создания анализатора звукового спектра 3. Генерация AUDIO ECHO с помощью микроконтроллера Atmega32 4. Запуск PYTHON (pymite-09) на Arduino MEGA 2560 с использованием микроконтроллера atmega16 5. Рисование геометрических фигур на PAL Телевизор с использованием ATmega32 (разрешение 12864) 6. Генерация монохромного сигнала на основе AVR для телевизора PAL с использованием микроконтроллера atmega16 7. Попытка показать изображения в градациях серого на светодиодном точечно-матричном дисплее с программным ШИМ с использованием PIC16F877A 8.Многозадачность в AVR (демонстрация для запуска 7 задач на atmega32) 9. Пульт дистанционного управления телевизором 160 кГц Высококачественный стерео MMC WAV-плеер с использованием ATMEGA32 10. Программаторы AVR своими руками 11. Интерфейс ЖК-дисплея NOKIA 3310 с ATmega8 12. 44 Матричный интерфейс клавиатуры с интерфейсом ATmega32 13. Мой собственный программатор AVR ISP, использующий PIC16f877a и python! 14. 4-битное сопряжение ЖК-дисплея 16X2 с PIC16F877A, Atmega16 / 32 и MSP430 15. Простое управление двигателем постоянного тока с ШИМ с использованием H-моста MOSFET с AVR ATmega8 16. Робот Delta с использованием микроконтроллера atmega32 17.Обновление 2 ЧПУ с использованием микроконтроллера atmega32 18. Дисплей EPROM с использованием микроконтроллера ULN2308A 19. Термометр с использованием DS1621 и ЖК-дисплея Nokia 3310, соединенный с ATmega8 20. 88 Двухцветная светодиодная матрица с использованием MAX6964 21. Устройство УФ-экспозиции и травление 22. Регистратор данных microSD ATmega32 23. 44 Светодиодный дисплей 24. Ультразвуковой дальномер с использованием ATMega8515 25. Тестирование microSD FAT32 с использованием Visual C ++ 26. LPH7319, управляемый через I2C 27. Взаимодействие карт SD / SDHC с ATmega8 / 32 (реализация FAT32) 28. Измеритель емкости и индуктивности с использованием Atmega8 29.Сделай сам ATmega32 Starters Kit с интерфейсами LCD, I2C, SPI, RTC, ADC 30. Цифровой вольтметр с микроконтроллером Atmega8 31. Цифровой диммер с микроконтроллером atmega8 32. Часы на базе DS1307 с ЖК-дисплеем 33. Плата ATTiny для микроконтроллеров AVR ATTiny 34. Светофор контроллер с использованием микроконтроллера AVR 35. Научный калькулятор с использованием микроконтроллера AVR 36. Термометр с часами с использованием ATmega16 37. Диктофон на основе ISD4004 38. Управление скоростью двигателя постоянного тока с использованием PWM 39. Измерьте отрицательную температуру с помощью Lm35 40.Коробка с музыкальным замком с использованием микроконтроллера ATMega328P 41. Picopter с использованием микроконтроллера ATmega128RFA1 42. Использование 8-контактного экрана программирования ATTINY с внешними часами 43. Взломайте тостерную печь для пайки оплавлением с помощью микроконтроллера ATmega32 44. Как управлять большим количеством светодиодов с нескольких выводы микроконтроллера. Поиск Выбрать категорию: Выбрать категорию Введите условия поиска: Искать ... Инструменты поиска Бесплатное программное обеспечение для проектирования печатных плат - EasyEDA Draw Schematic and Board здесь: https://easyeda.com/editor 2 доллара за прототип печатной платы - JLCPCB Online Instant PCB Quote Project Категории Полный список ИЗМЕРЕНИЕ - ПРИБОРНЫЕ ПРОЕКТЫ МОТОПРОЕКТЫ ТЕЛЕФОННЫЕ ПРОЕКТЫ РОБОТОТЕХНИКА - ПРОЕКТЫ АВТОМАТИЗАЦИИ Выделите наверх
  2. 2.18.11.2017 Проекты - ATMega32 AVR http://atmega32-avr.com/projects/ 25/2 45. Превратите TV-B-Gone в пульт для суперкамеры 46. Использование микроконтроллера AtTiny2313 Создайте электронный многогранный кристалл 47. Использование микроконтроллера max7219 Создайте электронный счетчик / ящик для хранения 48. Звездный потолок для детской спальни с использованием микроконтроллера AT90S8538 49. DIY TiX Clock с использованием микроконтроллера ATMEGA16 AVR 50. Использование микроконтроллера ATMega328 Custom Tron Disc Mod 51. USB PCB Business Card с использованием микроконтроллера ATtiny85 52.Ghetto Pixels Создание BlinkM с открытым исходным кодом с использованием микроконтроллера ATTiny45 53. Светодиодный индикатор ветра с использованием микроконтроллера atmega8 54. Сделайте автоматический свет растений с помощью микроконтроллера ATTiny26 55. Плата ATTiny2313 RS232 56. Преобразуйте дешевый RC-передатчик с помощью специальной прошивки с помощью микроконтроллера ATMEGA64 57. Простой калькулятор. с использованием микроконтроллера avr Atmega16 58. Графический ЖК-дисплей с контроллером KS108 59. Управление шаговым двигателем с помощью Atmega16 60. Цифровой проигрыватель мелодий с использованием микроконтроллера atmega16 61.Индикатор температуры на основе SMT160 62. Вентилятор с регулируемой температурой с использованием микроконтроллера PWM 63. ЖК-дисплей на интерфейсе на стекле с использованием AT2313 64. Частотомер 8 МГц с микроконтроллером AVR 65. Плата интерфейса ЖК-дисплея с использованием ATTiny2313 66. ЖК-дисплей сообщений с использованием микроконтроллера AT Mega8 67. Карта MMC на основе WAV-плеера с использованием atmega32 68. GPS-локатор AVR с использованием микроконтроллера avr 69. ЖК-термометр LM35 с использованием AT Mega8 70. ЖК-термометр TCN75 с использованием ATTiny2313 71. ЖК-термометр TCN77 с использованием микроконтроллера AVR 72.Драйвер шагового двигателя ПК с использованием контроллера AT2313 73. Термометр ПК с использованием ATTiny2313 74. Часы реального времени ATMega16 75. Мультипаттерн Бегущий свет с использованием микроконтроллера ATtiny2313 76. Умный дом на основе Bluetooth с использованием микроконтроллера atmega8 77. 88 Точечный прокручиваемый светодиодный дисплей с использованием микроконтроллера atmega8515 78. Реальное время Часы PCF8583 с использованием микроконтроллера AVR 79. Контроллер температуры DS1820 с использованием микроконтроллера atmega8515 80. Плата реле с использованием AT2313 81. Драйвер шагового двигателя с использованием микроконтроллера AT2313 82.Индикатор температуры Использование микроконтроллера attiny2313 83. Многорежимные светодиодные матричные часы ATTiny2313 84. Абсолютное руководство для новичков по программированию 8-битного AVR-AVR Dragon 85. Робот, управляемый мобильным телефоном, использующий микроконтроллеры 86. Как считывать данные с нескольких переключателей с одним выводом MCU 87. Как Использование цветного ЖК-дисплея Nokia с помощью AVR 88. Charlieplexing 7-сегментные дисплеи с помощью микроконтроллера 89. Радужный светящийся пинг-понг с использованием ATTing 13 90. Lampduino, напольная лампа 88 RGB 91. Как начать работу с Eclipse и AVR 92. Создайте свой собственный Wi-Fi радио с использованием микроконтроллера ATmega16 93.Еще один журнальный столик Daft Punk (55 светодиодных матриц) 94. Часы и термометр Numitron с использованием микроконтроллера atmega48 95. Механизированная фигурка Android с использованием микроконтроллера ATtiny44A 96. Тестер емкости аккумуляторной батареи с использованием микроконтроллера ATMega168 97. Будильник с воспроизведением музыки с использованием микроконтроллера AT90USB1286 98. Управление через USB. взлом домашней автоматизации с использованием микроконтроллера ATmega8 99. Подайте питание на Arduino / AVR с помощью батареи с ручным управлением 100. Отладка кода AVR в Linux с помощью simavr с использованием микроконтроллера ATTiny85 101.Светодиодный двоичный калькулятор с микроконтроллером ATtiny2313 102. Создайте светодиодную матрицу 810 с помощью Arduino и декадного счетчика 4017 103. Конкурс подарков многоформатных часов БЕЗОПАСНОСТЬ - ПРОЕКТЫ БЕЗОПАСНОСТИ ДРУГИЕ ПРОЕКТЫ ПРОЕКТЫ КАЛЬКУЛЯТОРОВ ПРОЕКТЫ АВТОМОБИЛЕЙ ПРОЕКТЫ СВЕТОДИОДНЫХ ПРОЕКТОВ ПРОЕКТЫ СТАНКОВ ЧПУ180 Самые последние проекты BMP. сенсор 17 ноября 2017 г. Крошечная беспроводная капсульная камера 16 ноября 2017 г. Двусторонний совет по разработке для начинающих 15 ноября 2017 г. Прокрутите вверх
  3. 3. 18/11/2017 Проекты - ATMega32 AVR http: // atmega32-avr.com / projects / 3/25 104. Модуль журнального столика с инфракрасным датчиком приближения и светящийся кран с изменением цвета с использованием микроконтроллера ATMEGA48 105. Светодиодный куб 4x4x4 с микроконтроллером Atmega16 106. Atmel Xmega USB / Генератор сигналов произвольной формы с последовательным интерфейсом 107. Цифровой контроллер вентилятора ПК с изменением цвета с использованием Микроконтроллер ATMega168 108. Светодиодный матричный генератор шрифтов и графики 58 57 88 с использованием AVR ATtiny2313 и AVRStudio 109. Сервоуправляемый лабиринт с использованием микроконтроллера ATmega32 110. Программирование в гетто: дешевое начало работы с микропроцессорами AVR.111. Лампа восхода и захода солнца со светодиодами 112. Создайте свой собственный (дешевый!) Многофункциональный контроллер беспроводной камеры с использованием микроконтроллера AVR ATMega8 113. AVRSH: командная интерпретаторная оболочка для Arduino / AVR. 114. Светодиодный микроконтроллерный витраж Firefly Pendant с микроконтроллером ATTiny45 chip 115. Как общаться с инопланетным артефактом или. . . 116. Швейцарский нож AVR с использованием микроконтроллера ATtiny84 117. Как выбрать микроконтроллер 118. Светодиод Ханукальная менора с использованием микроконтроллера ATtiny13 119.Багги - хитроумное программируемое светодиодное существо с использованием микроконтроллера Atmel Attiny44v 120. Электронные свечи на день рождения 121. Faraday For Fun: электронные безбатарейные кости с микроконтроллером ATTiny13 122. Домашняя плата разработки AVR32 123. Charlieplexing 7-сегментные дисплеи с использованием микроконтроллера Atmel Tiny26 124. Светодиод. матрица с использованием регистров сдвига 125. Светодиодный куб Arduino с использованием светодиодного микроконтроллера 126. Синхронизация светлячков с использованием микроконтроллера ATtiny13 127. Добавление заголовка ICSP к вашей плате Arduino / AVR с использованием микроконтроллера ISP10PIN 128.Светодиодный диммер 2 канала с использованием микроконтроллера Attiny13 129. Начало работы с ubuntu и AVR dragon с использованием микроконтроллера atmega8 130. Руководство по программированию uC AVR Dark Side Electronics с использованием микроконтроллера AVR 131. Как добавить больше выходов на ваш микроконтроллер с помощью микроконтроллера 74HC595 132. AVR mini плата с дополнительными платами с использованием микроконтроллера attiny2313 133. Низкоскоростной осциллограф AVR V2.00 (обновлено 19 марта 2011 г.) 134. Использование Arduino для связи со встроенным проектом с использованием микроконтроллера AVR ATMEGA 135.Создайте полную систему AVR и проявите себя как вдохновитель, используя микроконтроллеры 136. Stripboard Arduino с использованием микроконтроллера ATMega168 137. LoveBox Коробка любви с использованием микроконтроллера ATtiny2313 138. Изготовление светофоров с использованием Arduino 139. Подключите Arduino к машине с помощью микроконтроллера AVR 140. Значок ЖК-дисплея AVR с использованием ATtiny2313 141.

alexxlab

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

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