Bt-teh.ru

БТ Тех
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ные показания индикации в окне Watch Window

2.30. Реальные показания индикации в окне Watch Window.

Теперь нам необходимо определиться : а что же в дейтвительности должен показывать дисплей . Это тоже несложно сделать и мы это умеем . Обратите внимание вот на этом участок в начале листинга :

Ведь это ни что иное , как шестнадцатиричные адреса регистров памяти МК , в которые записываются отдельные разряды ( цифры ) значения текущей измеренной частоты . Давайте добавим их в окно WATCH по известным адресам , теперь мы умеем это делать . При этом дадим им имена те , что присвоены в листинге , чтобы не путаться в последствии . Ну и чтобы было « приятно глазу » для значений выберем Display Format – Unsigned Integer ( беззнаковое целое ). Запускаем

симуляцию проекта и видим при отключенном генераторе на входе соответственно с LED7 по LED0 00000001 . Примем к сведению , что старший разряд LED7 используется только при калибровке цифровой шкалы и не несет информации о частоте . Теперь подадим входную частоту 100k (100 кГц ) соответственно в окне Watch Window 00010026 . С учетом запятой должна индицироваться частота 00,10026 МГц . Проделаем те же манипуляции еще для пары частот , чтобы набрать статистику . Для генератора 1M (1 МГц ) получаем индикацию 00100091 или 01,00091 МГц . Для генератора 10M (10 МГц ) – 01000701 или 10,00701 МГц , правда при этом загрузка ЦП составляет 100% о чем свидетельствует « горчичник » в логе симуляции . Для чего я это проделал ? Да чтобы показать , что

изначально существует погрешность в показаниях и при коррекции программы мы будем стремится получить именно эти значения для выбранных трех точек . И пусть Вас не смущает тот факт , что мы не получили точно соответствующие измеренные значения . Ведь и в реальной конструкции автор рекомендует произвести подстройку частоты кварцевого генератора . Мы же сейчас стремимся только воспроизвести в модели логику работы частотомера , ну и конечно по мере возможностей получить более — менее приемлемые результаты тестирования . Все изложенное в этом пункте с ведено в очередной вариации тестового проекта ( вложение ), а результат подачи тестовой частоты 100 кГц приведен на рисунке 57.

2.31. Корректируем ассемблерный файл. «И все таки она вертится».

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

movlw b’00000000′ ; записать все нули в регистр аккумулятор movwf PortB ; записать содержимое аккумулятора в PortB

Я не стал особо мудрствовать и добавил эти команды в начале цикла индикации 7-step cycle of digits . Почему в начале ? А какая собственно разница : в начале или в конце ? Цикл все равно вращается по кругу , так что тут все относительно . Зато искать ничего не надо , мы уже определили начало цикла . Я бы покривил душой , если бы не коснулся еще одного момента . Для индикатора в свойствах я установил Minimum Trigger Time 200us , т . е . соизмеримым , ну или по крайней мере больше половины времени индикации одного разряда согласно графику , полученному нами в п . 2.20. Запускаем симуляцию без входного сигнала – все нули и десятичная точка только там где должна быть – заработало ! Подаем сигнал 100 кГц на вход получаем результат как на Рис . 58.

Ну что , – порядок значения совпадает , только погрешность увеличилась . Так и должно быть – ведь

мы добавили в цикл индикации одного разряда две команды и общее время выполнения программы изменилось , а это для такого варианта измерения частоты существенно . Не зря же в начале листинга стоят два значения задержек T1 и T2 , а в коментарии сказано , что они подобраны для частоты кварца 4 МГц .

Теперь посмотрим на наши графики — не зря же мы их таскаем из проекта в проект . Запустим симуляцию первого из них и убедимся , что и здесь картинка изменилась ( Рис . 59 ). На шине SEG[1..8] появились врезки изменений сигнала . Сравните с рисунком 36 или графиком в предыдущем примере .

2.32. Финальный вариант проекта с рабочей индикацией.

Если растянуть место смены разрядов на индикаторе ( второй график в проекте ), то можно с помощью маркеров измерить время гашения индикатора ( Рис . 60 ). У меня получилось около 19 мксек . Знатоки микрочиповских МК тут же возмутятся – откуда ? Ведь мы добавили всего две команды , а каждая из них для частоты кварца 4 МГц длится 1 мксек (4 такта по 250 наносек ). Согласен , но я не выбирал очень уж точно место , куда всунуть паузу , а следующая запись в PortB стоит на 13 строк ниже нашей вставки , да еще там присутствует вызов подпрограммы преобразования кода , пусть даже и очень короткой . Дотошные могут самостоятельно подсчитать по количеству исполняемых команд длительность паузы , ну или воспользоваться брекпойнтами в пошаговой отладке в нужных местах и вычислить по разнице времени между точками останова .

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

movlw T1 movwf Temp

decfsz Temp,F goto Pause

Типичная задержка , с использованием константы T1 равной десятичному числу 67 ( посмотрите в начале листинга присвоение ей значения ). Еще чуть ниже находится проверка текущего разряда на достижение семи знаков и команда перехода к индикации следующего :

LEDCycle ; next 7xLED

Не буду вникать в тонкости грубого и точного подбора констант автором , для меня важно , что я добавил две команды внутри цикла индикации одного разряда , определяемого именно T1 , поэтому уменьшать пробую ее . Уменьшение на 2 ( добавлялось ведь 2 команды ) слишком круто меняет результат измерения вниз – получаем для частоты 100k результат 00.09850 МГц . Подставим значение .66 и получаем 00.09965 МГц . Вот это уже лучше . Ну и , взяв за основу неписаное правило ,

– не знаешь что сделать – поставь nop ( нет операции ), я взял да и ткнул один лишний в код задержки приведенный выше перед циклом , начинающимся с метки Pause . Запускаю симуляцию при 100 кГц на входе и … 00,10026 МГц – как говорится : то , что доктор прописал . Проверяю с частотами 1 МГц и 10 МГц – индикация в соответствии с тем , что мы видели раньше в Watch Window для авторского кода . Дело сделано , но не совсем . Попробуйте нажать на кнопку SB1 на 1-2 сек , чтобы перевести схему в режим установки промежуточной частоты и получите опять несоответствие того что в Watch Window и на индикаторе . Ну правильно , мы же скорректировали цикл только для индикации семи знаков . Теперь надо проделать аналогичную операцию с восьмизначной индикацией .

Читать еще:  Как произвести регулировку пластикового окна

b’00010000′ ; RA0..RA3 output,RA4 input

b’00000000′ ; записать все нули в регистр аккумулятор

; записать содержимое аккумулятора в PortB

LEDIndex,W ; LED1 + LEDIndex -> W

Обратите внимание , что я вставил код не в начале 8-step cycle of digits , а именно перед аналогичным для семизначной индикации участком кода . В финальном варианте при подаче на вход частоты 100 кГц в режиме частотомера показания соответствуют рисунку 61. Во вложении последний вариант со всеми исправлениями .

2.33. Выводы по применению динамической индикации в Протеусе и в реальности. Дополнительные ресурсы.

Хочу еще раз обратить внимание всех , кто использует проекты с семисегментными индикаторами в Протеусе , что программные модели многоразрядных сегментных индикаторов чисто цифровые . Что это означает , и чем это чревато для нас ?

Во — первых : они не являются « потребителями тока », т . е . даже если Вы подключите напрямую к выводам микроконтроллера – никаких « перегрузок по току » не возникнет . Тут главное не нарушить полярности управляющих сигналов . Навешивание всевозможных мощных управляющих ключей на

биполярных или полевых транзисторах в этом случае приводит только к увеличению нагрузки на процессор компьютера , и , как следствие , невозможности нормальной симуляции , поскольку все они являются аналоговыми элементами . С самого начала надо определиться – чего Вы добиваетесь . Если хотите симулировать схему – все аналоговые ключи долой ! Когда очень уж надо проинвертировать выходной сигнал с выводов МК , например , когда индикаторы включены в коллекторную цепь транзисторов , – поставьте цифровые примитивы INVERTER , а для создания

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

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

В — третьих : для того , чтобы динамическая индикация при симуляции выглядела реально , нам необходимо предусмотреть кратковременные паузы при смене разрядов , исключающие наползание разрядов индикации . Паузы могут быть достаточно короткими ( в районе 10 микросекунд ), но их присутствие необходимо . Первым на эту особенность обратил внимание dosikus и материал по этой теме был в одной из веток форума Kazus:

а также размещен на сайте Каллиграфа : http://www.kaligraf.narod.ru/nedodellki.html

Дополнительно реальность показаний корректируется свойством Minimum Trigger Time индикатора .

Нужны ли эти паузы в реальной индикации – решать Вам . Здесь хочу обратить ваше внимание только на один нюанс , который мы обнаружили и устраняли при изучении первого проекта . Вспомните про перекрывающиеся импульсы разрядов индикатора . А теперь представьте , что мы зажгли в двух соседних разрядах все сегменты – восьмерка . Может быть в реальности глазом подсветка и не будет заметна , но ведь сегменты подключены непосредственно к портам и на момент перекрытия импульсов разрядов нагрузка на порты подскочит вдвое . Порт может и выдержит , но опять — таки представим , что наш девайс питается от батарейки . Нужны ли нам эти абсолютно бесполезные броски по току ? А если учесть то , что изложено чуть ниже в пунктах b и с , то можно запросто и порт МК спалить .

Теперь остановимся на некоторых особенностях реальной индикации :

a) для того чтобы человеческий глаз не замечал мерцаний картинка должна обновляться с частотой не менее 25 Гц ( вспомним « эффект 25- го кадра »). Если мы имеем N индикаторов , для исключения мерцания необходима частота обновления 25 х N;

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

c) вот тут и потребуются в реальности мощные ключевые элементы и т . п , так как засветка , например , всех восьми сегментов ( учитывая точку ) знакоместа с током сегмента от 3 до 10 мА даст суммарный ток от 24 до 80 мА , но это в статике . Средний же ток через ключ , учитывая скважность импульсов для восьмиразрядного (N=8) для сохранения яркости

свечения грубо необходимо увеличить в 8 раз ( в реальности зависимость нелинейна ) т . е . получим от 192 до 640 мА .

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

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

∙ Вольфганг Трамперт « Измерение , управление и регулирование с помощью AVR-

микроконтроллеров » ( глава 2 полностью посвящена динамической индикации , приведен расчет токоограничивающих резисторов ) .

∙ В . Н . Баранов « Применение микроконтроллеров AVR: схемы , алгоритмы , программы » ( глава 4 посвящена динамической индикации ) . Тот же материал опубликован в журнале

« Схемотехника », № 5, 6 за 2006 г . Автор имеет свой сайт : http://bvn123.narod.ru/

∙ А . В . Микушин Цикл лекций по теме « Цифровые устройства » на сайте СибГУТИ http://www.sibsutis.ru/

mavr/contCVT.htm . ( раздел 7.4 посвящен динамической индикации )

∙ Динамическая индикация 9 разрядного индикатора по последовательной шине . ( от DimAlt) у

Радиокота http://radiokot.ru/lab/controller/08/ ( приложен рабочий проект для Протеуса с тестовой программой для Atmega8 на WinAVR).

∙ Динамическая индикация и регулировка

( интересная идея по ШИМ регулировке яркости индикаторов от Романа Абраша автора цикла статей по МК в журнале « Радиолюбитель »)

Динамическая индикация на светодиодных 7-сегментных индикаторах с программной регулировкой яркости

Для аппаратуры с батарейным питанием применение LCD-индикаторов, как правило, считается более предпочтительным, чем светодиодных (LED) из-за большого тока потребления последних. Данный постулат мне кажется совсем не очевидным по следующим причинам: 1) в современных LCD-индикаторах существует подсветка, которая потребляет до 100 мА; 2) они относительно хрупки и боятся прямых лучей солнца; 3) современные LED-индикаторы (особенно superRED и ultraRED) обладают достаточной яркостью даже при токе в 1 мА через них, и при оперативной регулировке яркости в зависимости от условий освещения, средний ток потребления 4-разрядного индикатора получается не более 30 мА даже на улице, что меньше чем потребление подсветки LCD.

Читать еще:  Как отрегулировать пластиковое окно трет

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

В статье рассматривается способ управления светодиодной матрицей микроконтроллером PIC среднего семейства, используя прерывания от таймеров TMR0 и TMR2. Таймер TMR2 используется для ШИМ-регулирования среднего тока через включенные сегменты. Алгоритм организации работы следующий:

1. Инициализация. Настраиваем порты микроконтроллера в соответствии со схемой подключения индикатора. Для таймеров 1 и 2 включается режим внутреннего тактирования с предделителем, равным 16 . Разрешается прерывания от периферии.

2. Создаем таблицу-знакогенератор для вывода на индикатор цифр и некоторых (преимущественно латинских) букв и знаков.

3. Резервируем два четырехразрядных переменных. В одну заносим последовательно цифровой код (для цифр – просто цифру) необходимого для вывода знака в соответствии с таблицей из п.2. В другую переменную передаются преобразованные значения из таблицы для постоянного высвечивания на индикаторе.

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

5. В прерывании от TMR2 гасится индикатор и запрещается прерывание от TMR2.

6. В основной программе осуществляется регулировка периода прерывания от TMR2, а значит, времени включенного состояния индикатора путем занесения в регистр PR2 чисел от 7 до 255 в десятичном исчислении по формуле X(n+1)=2*X(n)+1. Получается шесть градаций яркости с разницей между ними в 2 раза. При PR2=255 длительность максимальна (4мс из 4мс), при PR2=7 длительность равна примерно 0.25мс.

Для демонстрации указанного принципа управления, ниже приводится схема на недорогом PIC16F628A и тестовая программа на Ассемблере, которая выводит на индикатор слово «test». При нажатии на кнопку, на индикаторе высвечивается яркость (условно цифрами от 0 до 5). При последующих нажатиях, яркость изменяется по кругу и это сразу видно на индикаторе. Сразу хочу предупредить начинающих: моделирование схемы на симуляторе типа Proteus не позволит увидеть изменение яркости в силу особенностей этой программы (Proteus). Макет схемы для проверки и экспериментов придется собирать в «железе». Впрочем, для наблюдения собственно за организацией динамической индикации (кроме изменения яркости) Proteus-модель прилагается.

Потребление схемы при минимальной яркости менее 4 мА, при максимальной – около 80 мА.

В архиве приведена тестовая программа на Ассемблере MPASM.

Для упрощения схемы и освобождения «ног» для различных действий, применена конфигурация с внутренним генератором и внутренним сбросом. При этом, у тех, что пользуется самодельным программатором без возможности подачи сигнала MCLR раньше Upp, могут быть проблемы с последующими верификацией, чтением и стиранием. Тем, кто не уверен в своем программаторе, а так же если требуется высокая стабильность генератора, можно установить кварц 4 МГц по типовой схеме с выбором в конфигурации “OSC_XT”. В случае, если в конечной схеме требуются прерывания с вывода INT0 (RB0), запятой можно управлять посредством вывода RA4, для индикатора с ОА индикатор к этому выводу подключается напрямую, несмотря на то, что он открытый. Освободившийся вывод RB0 можно использовать по назначению. В программу, в прерывании от TMR0, этом случае, добавляется после “movwf PORTB” код:

Небольшие пояснения к программе:

Выводимое число помещается в переменные OUT_ — OUT+3 в соответствии с разрядом , а с нее в подпрограмме out__ после преобразования помещается в OUT_LED. Конечно можно было бы обойтись без переменной OUT_ и везде для вывода писать:

Однако, в исходном виде все гораздо проще и понятнее (поместил в OUT_ и забыл), а так же при множественных выводах с разных мест программы получается экономия кода (4 слова на 1 вывод) – думается хорошая компенсация за лишние 4 байта ОЗУ.

То же самое касается и вывода запятой через переменную comma_.

В подпрограмме-таблице Table_s приняты меры для корректной работы при помещении ее в любое место памяти программ без ограничений на пересечение блоков 256 байт.

Переменная pause_ в прерывании от TMR0 используется для задания временных интервалов 4 мс.

Остальное, я думаю, понятно из алгоритма и комментариев.

P.S. Для 2 или 3 разрядов в программе требуется произвести минимальные изменения, которые, думается, по силам даже для начинающих. Для управления индикатором с количеством разрядов от 5 до 8 необходимо или применить контроллер с большим количеством выводов или же для управления разрядами применить дешифратор 3 на 8.

В первом случае изменения в программе также минимальны (применение вместо порта А другого порта и т.д.). В случае применения дешифратора программа в части прерывания от TMR0 изменится довольно серьезно.

Форум АСУТП

DIMZAY здесь недавно
здесь недавноСообщения: 26 Зарегистрирован: 22 мар 2020, 19:55 Имя: Дмитрий город/регион: Санкт-Петербург

Регулировка яркости потенциометром

  • Цитата

Сообщение DIMZAY » 28 мар 2021, 15:19

Looker авторитет
авторитетСообщения: 823 Зарегистрирован: 09 фев 2011, 11:32 Имя: Дитрих Евгений Линусович город/регион: Донецк Благодарил (а): 159 раз Поблагодарили: 110 раз

Регулировка яркости потенциометром

  • Цитата

Сообщение Looker » 28 мар 2021, 17:52

VaBo не первый раз у нас
не первый раз у насСообщения: 357 Зарегистрирован: 21 июл 2013, 18:32 Имя: Вадим город/регион: Северодвинск Благодарил (а): 7 раз Поблагодарили: 16 раз

Регулировка яркости потенциометром

  • Цитата

Сообщение VaBo » 28 мар 2021, 18:05

Jackson администратор
администраторСообщения: 13243 Зарегистрирован: 17 июн 2008, 15:01 Имя: Евгений свет Брониславович Страна: Россия город/регион: Санкт-Петербург Благодарил (а): 345 раз Поблагодарили: 622 раза

Регулировка яркости потенциометром

  • Цитата

Сообщение Jackson » 31 мар 2021, 18:53

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

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

Читать еще:  Регулировка петель на кухонном гарнитуре

Jackson администратор
администраторСообщения: 13243 Зарегистрирован: 17 июн 2008, 15:01 Имя: Евгений свет Брониславович Страна: Россия город/регион: Санкт-Петербург Благодарил (а): 345 раз Поблагодарили: 622 раза

Регулировка яркости потенциометром

  • Цитата

Сообщение Jackson » 31 мар 2021, 19:04

Looker авторитет
авторитетСообщения: 823 Зарегистрирован: 09 фев 2011, 11:32 Имя: Дитрих Евгений Линусович город/регион: Донецк Благодарил (а): 159 раз Поблагодарили: 110 раз

Регулировка яркости потенциометром

  • Цитата

Сообщение Looker » 31 мар 2021, 20:32

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

Для 703-0148_1W High Power LED:
Изображение

Jackson администратор
администраторСообщения: 13243 Зарегистрирован: 17 июн 2008, 15:01 Имя: Евгений свет Брониславович Страна: Россия город/регион: Санкт-Петербург Благодарил (а): 345 раз Поблагодарили: 622 раза

Регулировка яркости потенциометром

  • Цитата

Сообщение Jackson » 31 мар 2021, 22:11

Во-1-х нет, если не делать всё прецизионно. Во-2-х, у заказчика пульт, а значит он будет смонтирован 1 раз. Замена — по выходу из строя на такой же или примерно такой же. Характеристики не уплывут настолько чтобы это было заметно глазу.

Я же говорю, абсолютно все судовые пульты в мире так и делаются. Если бы это было проблемно — это не делалось бы в таких масштабах. И модернизации бывают, индикаторы прибавляются-убавляются.
Раньше это было чуть сложнее когда светодиодов не было: потребление большое, приходилось ставить неслабого размера реостаты. Молодые инженеры пытались иногда закладывать какие-то схемы управляемых стабилизаторов напряжения (по недосмотру старших товарищей), но в конце концов на борту это всё когда-нибудь сгорало и заменялось всё тем же реостатом.

alex45 специалист
специалистСообщения: 672 Зарегистрирован: 30 сен 2016, 15:22 Имя: Соловьев Алексей Леонидович Страна: Россия город/регион: Иваново Благодарил (а): 17 раз Поблагодарили: 100 раз

Регулировка яркости потенциометром

  • Цитата

Сообщение alex45 » 01 апр 2021, 09:09

Ryzhij почётный участник форума
почётный участник форумаСообщения: 4861 Зарегистрирован: 07 окт 2011, 08:12 Имя: Гаско Вячеслав Эриевич Страна: Россия город/регион: Рязань Благодарил (а): 291 раз Поблагодарили: 449 раз

Регулировка яркости потенциометром

  • Цитата

Сообщение Ryzhij » 01 апр 2021, 09:36

Jackson администратор
администраторСообщения: 13243 Зарегистрирован: 17 июн 2008, 15:01 Имя: Евгений свет Брониславович Страна: Россия город/регион: Санкт-Петербург Благодарил (а): 345 раз Поблагодарили: 622 раза

Регулировка яркости потенциометром

  • Цитата

Сообщение Jackson » 01 апр 2021, 11:57

А у Вас есть статистика по сроку службы LED в одном и в другом режиме? Только имея её, можно соглашаться или не соглашаться.
У нашего производителя есть, примерно лет за 15. Они цифр не показывают, это внутренние документы (хотя докопаться можно и до них при необходимости), но выводы сообщают и зная серьезность их подхода к таким вопросам, я склонен им верить — для липовых данных не нужно было тратить столько денег, сколько потрачено за эти годы только на эту статистику. Ни разу ещё эти выводы не подводили за последние 15-20 лет моей работы с ними.

Отправлено спустя 4 минуты 29 секунд:
В любом случае, спорить об этом я не собираюсь ни с кем — это бессмысленно.

Хотите — делайте на ШИМ, хотите как угодно иначе. Просто мне ответ на сакральный вопрос «нахрена» очевиден, и стремление делать сложно то что делается просто — удивляет. А когда люди (в статье) пишут откровенную бредятину с пафосом единственной истины — я усомнюсь и в самом их решении и во всём что исходит от этих людей или фирмы. [+] Человек не может вот тут врать а вот здесь быть честным. «Единожды солгавший — кто тебе поверит?» (с) То же относится и к фирмам и к огромным корпорациям, независимо от сферы деятельности и предмета разговора. Это называется «репутация» и «доверие». Оно как бумага: один раз смял или порвал, и потом сколько ни разглаживай — таким же оно не будет никогда. Второго шанса на первое впечатление не бывает.

Регулировка яркостью динамическая индикация

MAX7219, MAX7221 — драйвер для светодиодной индикации

MAX7219, MAX7221 — драйвер для светодиодной индикации

При классическом управлении семисегментными или матричными индикаторами микроконтроллером возникают несколько проблем:

  • увеличение количества линий управления;
  • необходимость устанавливать мощные буферные элементы;
  • необходимость постоянной работы микроконтроллера для поддержания динамической индикации.

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

Общие сведения о MAX7219 или MAX7221

Драйвер MAX7219 управляется по трехпроводной последовательной шине Microwire (3-Wire). MAX7221 управляется по шине SPI и имеет ограниченную скорость нарастания напряжения драйверов сегментов для снижения излучения EMI. Драйверы допускают каскадирование для управления большим числом индикаторов. Каждый из разрядов индикатора имеет независимую адресацию и его содержимое может быть обновлено без необходимости перезаписи всего индикатора. ИС MAX7219/MAX7221 также позволяют пользователю определять режим декодирования каждого разряда.

Кроме того, драйверы MAX7219 (MAX7221) имеют спящий режим с запоминанием информации, аналоговое и цифровое управление яркостью подключенных индикаторов и тестовый режим, включающий все LED сегменты.

MAX7219 (MAX7221) – драйвер восьми разрядного цифрового LED индикатора с последовательным интерфейсом. Драйвер может управлять восемью семисегментными индикаторами с точкой, либо отдельно 64 светодиодами в LED панелях с общим катодом. Таким образом, данные микросхемы подходят не только для семисегментных, но и для матричных индикаторов.

Два семисегментных индикатора Два семисегментных индикатора Матричный индикатор

MAX7219 и MAX7221 отличаются только интерфейсом. У MAX7219 интерфейс Serial 3-Wire, у MAX7221 — Serial SPI.

Типовая схема включения

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

Типовая схема включения MAX7219/7221

При помощи резистора на pin 18 задается ток ISET, которым устанавливается ток через светодиоды, что позволяет регулировать свечение сегментов индикатора «аналоговым» способом. В MAX7219/VAX7221 предусмотрена регулировка яркости сегментов с помощью ШИМа.

Расположение выводов (распиновка) MAX7219 и MAX7221

На рис. 2 показано расположение выводов драйвера.

Распиновка MAX7219, MAX7221

Рис. 2. Распиновка MAX7219, MAX7221

В таблице на рис. 3 описано назначение выводов, не забывайте кликать по картинкам для просмотра в полном размере!

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector