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

 
 
 
15

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

Разместил химик 22 апреля 2012. Просмотров: 24 787

Универсальный контроллер управления 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 | Файл 73,77 Kb загружен 84 раз.

Библиотека для передачи данных, компилятор CodeVisionAVR
spi_led.rar | Файл 646 b загружен 78 раз.

Схема и печатная плата, уже отзеркаленная и готова к печати
shema-plata.rar | Файл 123,52 Kb загружен 81 раз.

Описание передачи данных
opisanie.pdf | Файл 138,04 Kb загружен 94 раз.
Сергей Романов (химик)
ЛНР, г. Брянка
Профиль химик
О себе автор ничего не сообщил.
 

Понравилось? Палец вверх!

  • всего лайков: 18

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

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


Схема на Датагоре. Новая статья Программная реализация протокола 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... Фотка от www.150cc.ru Здравствуйте, друзья. Хочу предложить вашему вниманию несколько простых...
Схема на Датагоре. Новая статья Библиотеки для подключения COG-индикаторов TIC-55 и TIC-3321 к микроконтроллерам AVR... …простите, а вы не подскажите, как пройти в библиотеку? Небольшая предысторияПрежде, я уже имел...
Схема на Датагоре. Новая статья Микроконтроллер управляет дисплеем от телефона Siemens!... Многие радиолюбители собирают для себя какие-то конструкции. Иногда простейшие, иногда очень...
Схема на Датагоре. Новая статья Грызем микроконтроллеры. Урок 4.... Мигалки – это хорошо, по новогоднему… Но ведь нельзя останавливаться на достигнутом! Пора сделать...
Схема на Датагоре. Новая статья Грызем микроконтроллеры. Урок 3.... Эту статью я начну с провокационного вопроса… А какую конструкцию на основе МК хотите создать ВЫ? ...
Схема на Датагоре. Новая статья Грызем микроконтроллеры. Урок 2.... Предлагаю продолжить изучение микроконтроллеров… Второй урок будет посвящен по большей части...
Схема на Датагоре. Новая статья TDA7442D+ATmega8. Микропроцессорный регулятор громкости... Привет ВСЕМ!!! Интересно, кому бы не хотелось, чтобы его усь обладал сервисом промышленных...
<
  • Прохожий
22 апреля 2012 03:33

/ Demiurg

Цитата
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Пусть меня опять Datagor забанит, но покритикую. Так как кто-то будет повторять. Суммарный ток одного индикатора великоват для МК. Пусть даже по 5 мА. 5*8=40 мА. Нужно общие выводы индикаторов через транзисторы коммутировать.

<
  • Кандидат
22 апреля 2012 08:33

Михаил / Dust112

Цитата
  • С нами с 22.05.2011
  • Ушёл в реал Пользователь offline
  • 14 комментариев
  • 1 публикация
 
  • 0
Demiurg, индикация динамическая, посему одновременно все индикаторы не горят. Но согласен, транзисторы лучше поставить.

<
  • Главный редактор
22 апреля 2012 09:32

Игорь Петрович Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 648 комментариев
  • 261 публикация
 
  • 0
Demiurg,
не нужно делать из меня пугало, но если желаете - конечно могу устроить cool

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

<
  • Прохожий
22 апреля 2012 11:51

/ Demiurg

Цитата
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Dust112, понятно, что индикация динамическая, и индикаторы горят по одному. Но ведь в каждый конкретный момент одновременно работают сегменты одного индикатора. Поэтому ключи нужно ставить. Можно сборки. Например, TD62783 (общие аноды) или ULN2803 (общие катоды).
Идея, конечно хорошая. Разгружается основной МК.

<
  • Гражданин
22 апреля 2012 13:53

Андрей / andrew_spb

Цитата
  • С нами с 21.02.2009
  • Ушёл в реал Пользователь offline
  • 128 комментариев
  • 2 публикации
 
  • 0
Идея и работа - хорошая, так как появляется универсальный модуль и индикаторы туда (не забыв про ключи) можно впихивать разные...

<
  • Гражданин
22 апреля 2012 18:00

Сергей Романов / химик

Цитата
  • С нами с 11.08.2009
  • Ушёл в реал Пользователь offline
  • 36 комментариев
  • 4 публикации
 
  • 0
А если в гугле ввести "динамиеская индикация", то вы увидите, сколько существует схем без клюей. Из даташита - DC Current per I/O Pin ................................................ 40.0mA, ток одного сегмента 20мА. Общий контакт каждого индикатора вклюается всего на 1,2 миллисекунды. Где то в интернете находил объяснение, что каждый порт способен выдержать превышения тока в несколько раз на протяжении нескольких миллисекунд. Тоные парраметры не помню, но тоно знаю что видел. И на многих сайтах, повторюсь еще раз, пишут, что для динамической индикации на микроконтроллере, можно не ставить ключи, так как время включения относително мало.

<
  • Прохожий
22 апреля 2012 19:51

/ Demiurg

Цитата
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
химик, не вопрос, для себя как хотите, так и делайте. Хоть в 220 пальцами лезьте. Ваши материалы читают тысячи людей. Будут повторять. Бывает, багаж знаний у повторятелей маленький. Вы на будущее это учитывайте, когда выкладываете свои материалы.

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

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

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

<
  • Прохожий
22 апреля 2012 19:56

/ Demiurg

Цитата
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Кстати, есть еще один способ. Мультиплексировать и сегменты.

<
  • Главный редактор
22 апреля 2012 20:47

Игорь Петрович Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 648 комментариев
  • 261 публикация
 
  • 0
Demiurg,
Женя, ждем трех ваших ОБРАЗЦОВЫХ статей. Шоб "Булава" с "Фобосом" взлетели!
hi

<
  • Гражданин
24 апреля 2012 17:07

Максим / GRafGRay

Цитата
  • С нами с 20.10.2009
  • Ушёл в реал Пользователь offline
  • 32 комментария
  • 1 публикация
 
  • 0
химик, Сергей а почему не использовать сдвиговые регистры, те же 595е
в свое время делал часики типа механических но полностью на светодиодах, естественно динамика, используя регистры всего 3 ноги контроллера были задействованны для динамики, честно говоря каких либо проблем замечено небыло
код тож не сложен, пишем макрос вывода инфы в регистр и вуаля

<
  • Гражданин
24 апреля 2012 20:56

Сергей Романов / химик

Цитата
  • С нами с 11.08.2009
  • Ушёл в реал Пользователь offline
  • 36 комментариев
  • 4 публикации
 
  • 0
GRafGRay,в том то и дело, что 595 нужно управлять контроллером. Так по началу и хотел, но опять же, мы нагружаем основной контроллер обработкой сдвиговых регистров, а в это время он может быть занят и этим нарушается заданный алгоритм. А мой вариант позволяет индикаторам работать автономно, наподобие дисплея WH1602.

<
  • Прохожий
3 мая 2012 13:44

/ Griha

Цитата
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
В случае динамической индикации и без дополнительных ключей будет работать. В радтолюбительском варианте можно и так оставить. Но будет заметно изменение яркости разряда в зависимости от количества светящихся сегментов в разряде.
Если же боязно за перегрузку МК, то можно сделать ход конем - купить яркие дисплеи (сейчас такие попадаются все чаще, недавно у китайчев такими разжился), и поставить к ним токоограничивающие резисторы 1-1.5к - и за МК не беспокоишься, и яркости хватит. Ибо на номинальном токе такие яркие дисплеи светят так ярко, что хоть в стопсигнал их пихай...

<
  • Гражданин
5 июля 2012 02:27

Владимир / kotyk7

Цитата
  • С нами с 8.11.2009
  • Ушёл в реал Пользователь offline
  • 30 комментариев
  • 5 публикаций
 
  • 0
Очень хорошая идея создать автономную индикацию.Типа взамен дорогущей MAX7219\7221. Но тип используемого микроконтролера не радует. Слишком мощный и также дорогой для повторения. Предлагаю автору создать на форуме ветку и дружно поработать над этой идеей вместе с целью ее удешевления и доступности.

<
  • Гражданин
31 июля 2012 17:42

Александр / alx32

Цитата
  • С нами с 26.06.2008
  • Ушёл в реал Пользователь offline
  • 35 комментариев
  • 8 публикаций
 
  • 0
Я делал примерно такую же весч на ATTiny2313 и 555ид7 (можно и 555ид10), данные передавались по UART'у.

<
  • Гражданин
4 октября 2012 01:45

Сергей Романов / химик

Цитата
  • С нами с 11.08.2009
  • Ушёл в реал Пользователь offline
  • 36 комментариев
  • 4 публикации
 
  • 0
kotyk7, на счет того, что дорого, не согласен. ATmega16 в планарном корпусе стоит в три раза дешевле чем в DIP, цена сопоставима ATmega8. 16-ю выбрал только из-за колличества конечностей. Если убрать светодиоды, то в ATmega8 программа переедет с легкостью.

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


Налетай! Паяльники, станции, жала с доставкой
  • smilelolbyewinkyahoocoollaughing
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashguitar-manhandshake
    musicnegativenopardonshoksleepunknown
    wackoyawnblushbullyhashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.