» » Универсальный контроллер управления 7-сегментными LED индикаторами по двум проводам (Atmega16)

 
 
 

Универсальный контроллер управления 7-сегментными LED индикаторами по двум проводам (Atmega16)

📆22.04.12 🙋химик 👀28 283 💬15
Универсальный контроллер управления 7-сегментными LED индикаторами по двум проводам (Atmega16)

Занялся я конструированием нового устройства и встал вопрос — на чем отображать данные. Жидкокристаллические индикаторы ставить не захотел, так как нужно чтобы цифры было видно в темноте и со стороны. Выбор пал на 7-сегментные LED-индикаторы, но при дальнейшей разработке оказалось, что с обработкой данных и выполнением динамической индикации на 9 разрядов микроконтроллер AVR справляется, но не успевает выполнять основную программу. И тогда вспомнив, что у всех много сегментных индикаторов есть управляющий контроллер, решил сделать свой - универсальный.
Универсальность его заключается в том, что для вывода информации на индикаторы, нужно указать адрес одного из трех трех разрядных индикаторов либо линейки из восьми светодиодов и вводимое число.
Ниже представлена схема индикатора. Ничего особенного в ней нету, все детали легкодоступны.
Исключён фрагмент. Наш журнал существует на пожертвования читателей. Полный вариант этой статьи доступен только меценатам и полноправным членам сообщества. Читай условия доступа!

Для передачи данных я написал маленькую библиотеку spi_led, состоящую всего лиш из одной функции с двумя параметрами - void Data_Write(unsigned char temp_ADDR, int data), которая передает по шине SPI три байта
- temp_ADDR — адрес;
- data — передаваемое число от 0 до 999, разложенное на MSB и LSB;

Точки

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

Светодиоды

Их мы как и точки определяем в байте и отравляем по адресу 0х10. Подробнее о них и о точках я написал в PDF файле.

Символы

Так как на эти индикаторы можно вывести некоторые символы, тем самым расширив возможности дисплея я сопоставил эти символы с цифрами. Для отображения, их нужно отправить по адресу 0х04, 0х05, 0х06 - соответственно индикаторам.

О конструкции


Исключён фрагмент. Наш журнал существует на пожертвования читателей. Полный вариант этой статьи доступен только меценатам и полноправным членам сообщества. Читай условия доступа!




Видео

Небольшой видео файл демонстрирующий работу платы. Здесь на первый индикатор с частотой 0,6 секунды выводятся числа со счетчика, а на второй и третий — символы.


Файлы

Прошивки для микроконтроллера, для индикаторов с OA и OK
hex.-led-displey-for-isp-ver-1.0.4.rar 🕗 13/04/12 ⚖️ 73,77 Kb ⇣ 92

Библиотека для передачи данных, компилятор CodeVisionAVR
spi_led.rar 🕗 13/04/12 ⚖️ 646 b ⇣ 86

Схема и печатная плата, уже отзеркаленная и готова к печати
shema-plata.rar 🕗 13/04/12 ⚖️ 123,52 Kb ⇣ 88

Описание передачи данных
opisanie.pdf 🕗 13/04/12 ⚖️ 138,04 Kb ⇣ 102
Сергей Романов (химик)
ЛНР, г. Брянка
Профиль химик
О себе автор ничего не сообщил.
 

Читательское голосование

Нравится

Статью одобрили 11 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Программная реализация протокола SPI на AVR в CodeVisionAVR... Всем коллегам и согражданам привет! Увлёкся я изучением протоколов. Про реализацию протокола I2C у...
Схема на Датагоре. Новая статья Программная реализация протокола I2C на AVR в CodeVisionAVR... Пару лет назад, изучая Atmega8, я захотел программно реализовать работу с устройствами на шине i2c,...
Схема на Датагоре. Новая статья Визуализация для микроконтроллера. Часть 1. OLED дисплей 0.96" (128х64) на SSD1306... Добрый день, друзья! Эта статья открывает цикл, посвящённый средствам визуального отображения...
Схема на Датагоре. Новая статья Трансивер 2,4 ГГц Nordic Semiconductor nRF24L01. Перевод таблиц даташита, пояснения и коды для организации сети... Wireless Transceiver Module NRF24L01+ 2.4GHz, 4 шт. на Али Привет, датагорцы! Выкладываю перевод...
Схема на Датагоре. Новая статья Несколько функций для програмной реализации протокола I2C на AVR... Добрый день, дорогие друзья! Решил поделиться с вами несколькими функция для работы по протоколу...
Схема на Датагоре. Новая статья Немного про шину 1-Wire и цифровой термометр DS18b20... Здравствуйте, друзья. Хочу предложить вашему вниманию несколько простых функций для работы с шиной...
Схема на Датагоре. Новая статья Библиотеки для подключения COG-индикаторов TIC-55 и TIC-3321 к микроконтроллерам AVR... …простите, а вы не подскажите, как пройти в библиотеку? Небольшая предысторияПрежде, я уже имел...
Схема на Датагоре. Новая статья Определение ёмкости конденсатора по цифровой маркировке из трёх знаков... Цифровая маркировка используется уже довольно давно. На малогабаритных конденсаторах чаще всего она...
Схема на Датагоре. Новая статья Микроконтроллер управляет дисплеем от телефона Siemens!... Многие радиолюбители собирают для себя какие-то конструкции. Иногда простейшие, иногда очень...
Схема на Датагоре. Новая статья Грызем микроконтроллеры. Урок 4.... Мигалки – это хорошо, по новогоднему… Но ведь нельзя останавливаться на достигнутом! Пора сделать...
Схема на Датагоре. Новая статья Грызем микроконтроллеры. Урок 2.... Предлагаю продолжить изучение микроконтроллеров… Второй урок будет посвящен по большей части...
Схема на Датагоре. Новая статья TDA7442D+ATmega8. Микропроцессорный регулятор громкости... Привет ВСЕМ!!! Интересно, кому бы не хотелось, чтобы его усь обладал сервисом промышленных...
<

Demiurg

Читатель Датагора
  • Прохожий
Комментарий # 1 от 22-04-12, 3:33.
Ответить
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
Пусть меня опять Datagor забанит, но покритикую. Так как кто-то будет повторять. Суммарный ток одного индикатора великоват для МК. Пусть даже по 5 мА. 5*8=40 мА. Нужно общие выводы индикаторов через транзисторы коммутировать.

<

Dust112

Михаил Читатель Датагора
  • Кандидат
Комментарий # 2 от 22-04-12, 8:33.
Ответить
  • С нами с 22.05.2011
  • 14 комментариев
  • 1 публикация
 
Demiurg, индикация динамическая, посему одновременно все индикаторы не горят. Но согласен, транзисторы лучше поставить.

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 3 от 22-04-12, 9:32.
Ответить
  • С нами с 26.02.2006
  • 2 174 комментария
  • 272 публикации
 
Demiurg,
не нужно делать из меня пугало, но если желаете - конечно могу устроить :cool:

Не следует терять за отсутствием транзисторных ключей САМУ ИДЕЮ и вполне рабочее воплощение.
Сергей (химик), спасибо!

<

Demiurg

Читатель Датагора
  • Прохожий
Комментарий # 4 от 22-04-12, 11:51.
Ответить
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
Dust112, понятно, что индикация динамическая, и индикаторы горят по одному. Но ведь в каждый конкретный момент одновременно работают сегменты одного индикатора. Поэтому ключи нужно ставить. Можно сборки. Например, TD62783 (общие аноды) или ULN2803 (общие катоды).
Идея, конечно хорошая. Разгружается основной МК.

<

andrew_spb

Андрей Читатель Датагора
  • Гражданин
Комментарий # 5 от 22-04-12, 13:53.
Ответить
  • С нами с 21.02.2009
  • 131 комментарий
  • 2 публикации
 
Идея и работа - хорошая, так как появляется универсальный модуль и индикаторы туда (не забыв про ключи) можно впихивать разные...

<

химик

Сергей Романов Читатель Датагора
  • Гражданин
Комментарий # 6 от 22-04-12, 18:00.
Ответить
  • С нами с 11.08.2009
  • 36 комментариев
  • 4 публикации
 
А если в гугле ввести "динамиеская индикация", то вы увидите, сколько существует схем без клюей. Из даташита - DC Current per I/O Pin ................................................ 40.0mA, ток одного сегмента 20мА. Общий контакт каждого индикатора вклюается всего на 1,2 миллисекунды. Где то в интернете находил объяснение, что каждый порт способен выдержать превышения тока в несколько раз на протяжении нескольких миллисекунд. Тоные парраметры не помню, но тоно знаю что видел. И на многих сайтах, повторюсь еще раз, пишут, что для динамической индикации на микроконтроллере, можно не ставить ключи, так как время включения относително мало.

<

Demiurg

Читатель Датагора
  • Прохожий
Комментарий # 7 от 22-04-12, 19:51.
Ответить
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
химик, не вопрос, для себя как хотите, так и делайте. Хоть в 220 пальцами лезьте. Ваши материалы читают тысячи людей. Будут повторять. Бывает, багаж знаний у повторятелей маленький. Вы на будущее это учитывайте, когда выкладываете свои материалы.

Без ключей микроконтроллер работает в тяжелом режиме. так как суммарный ток сегментов превышает паспортный ток.

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

Потом удивляемся, что "Булавы", "Фобосы" не летают. Начитались в интернете всяких допущений. И так потянет. Пишут же...

<

Demiurg

Читатель Датагора
  • Прохожий
Комментарий # 8 от 22-04-12, 19:56.
Ответить
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
Кстати, есть еще один способ. Мультиплексировать и сегменты.

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 9 от 22-04-12, 20:47.
Ответить
  • С нами с 26.02.2006
  • 2 174 комментария
  • 272 публикации
 
Demiurg,
Женя, ждем трех ваших ОБРАЗЦОВЫХ статей. Шоб "Булава" с "Фобосом" взлетели!
:hi:

<

GRafGRay

Максим Читатель Датагора
  • Гражданин
Комментарий # 10 от 24-04-12, 17:07.
Ответить
  • С нами с 20.10.2009
  • 35 комментариев
  • 1 публикация
 
химик, Сергей а почему не использовать сдвиговые регистры, те же 595е
в свое время делал часики типа механических но полностью на светодиодах, естественно динамика, используя регистры всего 3 ноги контроллера были задействованны для динамики, честно говоря каких либо проблем замечено небыло
код тож не сложен, пишем макрос вывода инфы в регистр и вуаля

<

химик

Сергей Романов Читатель Датагора
  • Гражданин
Комментарий # 11 от 24-04-12, 20:56.
Ответить
  • С нами с 11.08.2009
  • 36 комментариев
  • 4 публикации
 
GRafGRay,в том то и дело, что 595 нужно управлять контроллером. Так по началу и хотел, но опять же, мы нагружаем основной контроллер обработкой сдвиговых регистров, а в это время он может быть занят и этим нарушается заданный алгоритм. А мой вариант позволяет индикаторам работать автономно, наподобие дисплея WH1602.

<

Griha

Читатель Датагора
  • Прохожий
Комментарий # 12 от 03-05-12, 13:44.
Ответить
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
В случае динамической индикации и без дополнительных ключей будет работать. В радтолюбительском варианте можно и так оставить. Но будет заметно изменение яркости разряда в зависимости от количества светящихся сегментов в разряде.
Если же боязно за перегрузку МК, то можно сделать ход конем - купить яркие дисплеи (сейчас такие попадаются все чаще, недавно у китайчев такими разжился), и поставить к ним токоограничивающие резисторы 1-1.5к - и за МК не беспокоишься, и яркости хватит. Ибо на номинальном токе такие яркие дисплеи светят так ярко, что хоть в стопсигнал их пихай...

<

kotyk7

Владимир Читатель Датагора
  • Гражданин
Комментарий # 13 от 05-07-12, 2:27.
Ответить
  • С нами с 8.11.2009
  • 30 комментариев
  • 5 публикаций
 
Очень хорошая идея создать автономную индикацию.Типа взамен дорогущей MAX7219\7221. Но тип используемого микроконтролера не радует. Слишком мощный и также дорогой для повторения. Предлагаю автору создать на форуме ветку и дружно поработать над этой идеей вместе с целью ее удешевления и доступности.

<

alx32

Александр Читатель Датагора
  • Гражданин
Комментарий # 14 от 31-07-12, 17:42.
Ответить
  • С нами с 26.06.2008
  • 35 комментариев
  • 8 публикаций
 
Я делал примерно такую же весч на ATTiny2313 и 555ид7 (можно и 555ид10), данные передавались по UART'у.

<

химик

Сергей Романов Читатель Датагора
  • Гражданин
Комментарий # 15 от 04-10-12, 1:45.
Ответить
  • С нами с 11.08.2009
  • 36 комментариев
  • 4 публикации
 
kotyk7, на счет того, что дорого, не согласен. ATmega16 в планарном корпусе стоит в три раза дешевле чем в DIP, цена сопоставима ATmega8. 16-ю выбрал только из-за колличества конечностей. Если убрать светодиоды, то в ATmega8 программа переедет с легкостью.

Добавление комментария


Налетай! Паяльники, станции, жала с доставкой

Офигенная миниатюрная рация на литии BaoFeng UV-5R, 5W, 5-15 км!

Тестер универсальный LCR-TC1 для транзисторов, конденсаторов, ESR, MOSFET и т.д.
  • smilelolhellowinkscepticthumbupbored
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashpartyhandshake
    musicnegativenowordspardonshoksleepunknown
    wackoyawnsainthelmethashsmokingwhew


Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.