Схема цифрового индикатора

Делаем цифровую шкалу — Сообщество «Электронные Поделки» на DRIVE2

Немножко теорииНаверное нет необходимости рассказывать, что такое 7-сегментные индикаторы. Как сложно и представить область техники, где они не применяются.

Соответственно по их подключению написано масса статей, но попробую все таки написать свою :)Итак: что же такое 7-сегментный индикатор?Обратимся к Википедии: “Семисегме́нтный индика́тор — устройство отображения цифровой информации. Это — наиболее простая реализация индикатора, который может отображать арабские цифры.

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

Сегменты обозначаются буквами от A до G; восьмой сегмент — десятичная точка (decimal point, DP), предназначенная для отображения дробных чисел.По сути говоря данный индикатор — это 8 светодиодов расположенных на панели определенным образом.

Соответственно самая простая схема включения — подсоединить все 8 ножек на выводы микроконтроллера (микросхемы — дешифратора) через балластные резисторы, а на общий провод подавать либо “+” (для индикаторов с общим анодом) либо “-” (для индикаторов с общим катодом).

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

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

Тогда чтобы вывести первый разряд (опять же для схемы с общим анодом) нужно подать “+” только на общий провод первого разряда и “-” на нужные провода сегментов. Задержать изображение на 2-3 милисекунды, переключится на второй разряд и проделать то же самое с ним, поле чего перейти на третий (четвертый и т.д.) или вернутся к первому.

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

Кстати, транзисторы в этой схеме необязательны — можно подключить выводы индикатора непосредственно к выводам микроконтроллера и затем не подавать на них напряжение (выводы 8-10 данной схемы), а наоборот “притягивать к земле” выводя на них “низкое” напряжение или попросту говоря 0. А “высокое” напряжение (или 1) подается на общие выводы разрядов, которые не должны в данный момент гореть.

Более подробно о таком способе подключения написано здесь — arduino-kit.com.ua/instru…-indikator-i-arduino.html

В чем же “бяка” данной схемы? А в том, что для вывода например трехразрядного числа нужно задействовать 11 ножек микроконтроллера, причем 7 из них, чтобы не раздувать программу, должны относится к одному порту.Все это хорошо, но, например, у Attiny2313 такой только порт В на котором “висят” и оба входа аналогового компаратора.И вот тут на помощь приходят специальные драйверы.

Чаще всего применяют драйвера MAX7219 и MAX7221, управляемые по SPI. Материал по работе с этими драйверами разместил недавно serdgos тут — www.drive2.ru/c/2812487/. Поэтому повторятся не буду — желающие могут почитать.

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

А есть ли более “хардкорные” решения? Оказывается есть — драйвер CD4026.

Описание ДрайвераЧип CD4026 предназначен для управления 7-сегментными индикаторами и представляет собой счётчик до десятка с встроенным сдвиговым регистром.

Счётчик увеличивается на единицу всякий раз, когда контакт «clock» становится HIGH (на восходящем фронте). Выходы a-g становятся HIGH в соответствии со значением счётчика, и отражают его значение арабской цифрой при подключении 7-сегментного индикатора с общим катодом.

Контакт «reset» должен быть притянут к земле в общем случае. Когда он становится HIGH, счётчик сбрасывается в ноль.Контакт «disable clock» также должен быть притянут к земле в общем случае. На время пока он HIGH сигналы на контакт «clock» игнорируются.

Контакт «enable display» должен снабжаться напряжением питания. Иначе выходы a-g будут выставлены в LOW. Контакт «enable out» возвращает его значение с небольшой задержкой.Контакт «÷10» (обозначен как h в таблице) принимает HIGH для значений 0-4 и LOW для 5-9.

Его выход может быть отправлен на вход «clock» следующего 7-сегментного драйвера, чтобы организовать счётчик числа с несколькими разрядами.Контакт «not 2» принимает значениние LOW тогда и только тогда, когда значение счётчика — 2. В остальных случаях он HIGH.

Рабочее напряжение питания: 3—15 В.

ПодключениеС этим все просто: смотрим даташит на индикатор. Я использовал 3х- разрядный, но принципиально разницы с четырехразрядным нет, — для подключения четвертого разряда нужно будет еще задействовать вывод 6 индикатора (сейчас он “пустой”).

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

В качестве источника сигнала выступал Arduino Pro Micro c задействованными выводамиPin2 Выход на счетчикPin3 Сброс счетчикаPin4 Подключение разряда 1Pin6 Подключение разряда 2Pin9 Подключение разряда 3

Точку не подключал, ибо сейчас ненужно, а принцип подключения тот же.

ПрограммаТак как задействовано Arduino. то и язык соответствующий — модифицированный С.

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

#define CLOCK_PIN 2#define RESET_PIN 3#define DIGIT_1PIN 4#define DIGIT_2PIN 6

#define DIGIT_3PIN 9

void resetNumber(){// Для сброса на мгновение ставим контакт// reset в HIGH и возвращаем обратно в LOWdigitalWrite(RESET_PIN, HIGH);digitalWrite(RESET_PIN, LOW);digitalWrite(DIGIT_1PIN, HIGH);digitalWrite(DIGIT_2PIN, HIGH);digitalWrite(DIGIT_3PIN, HIGH);}void showNumber(float t){ int n;// Первым делом обнуляем текущее значениеresetNumber();// Выводим первый разрядdigitalWrite(DIGIT_1PIN, LOW);n=int(t-int(t/10)*10);// Далее быстро «прокликиваем» счётчик до нужного// значенияwhile (n–) {digitalWrite(CLOCK_PIN, HIGH);digitalWrite(CLOCK_PIN, LOW);}delay(2);// Обнуляем счетчикresetNumber();// Выводим второй разрядdigitalWrite(DIGIT_2PIN, LOW);n=int(t/10-int(t/100)*10);// Далее быстро «прокликиваем» счётчик до нужного// значенияwhile (n–) {digitalWrite(CLOCK_PIN, HIGH);digitalWrite(CLOCK_PIN, LOW);}delay(2);// Обнуляем счетчикresetNumber();// Выводим третий разрядdigitalWrite(DIGIT_3PIN, LOW);n=int(t/100);// Далее быстро «прокликиваем» счётчик до нужного// значенияwhile (n–) {digitalWrite(CLOCK_PIN, HIGH);digitalWrite(CLOCK_PIN, LOW);}

delay(2);

}void setup() {pinMode(RESET_PIN, OUTPUT);pinMode(CLOCK_PIN, OUTPUT);pinMode(DIGIT_1PIN, OUTPUT);pinMode(DIGIT_2PIN, OUTPUT);

pinMode(DIGIT_3PIN, OUTPUT);

// Обнуляем счётчик при старте, чтобы он не оказался// в случайном состоянииresetNumber();

}

// Основной циклvoid loop(){showNumber((millis() / 1000));}

Ну и результат

Можно еще сократить количество выводов, задействовав сдвиговые регистры, но об этом мы поговорим отдельно 🙂

Источник: https://www.drive2.ru/c/2827146/

Цифровые 7-сегментные индикаторы

Цифровые 7-сегментные индикаторы KEM – интегральные микросхемы из диодных полупроводниковых источников излучения (светодиодов), предназначены для отображения цифровой и буквенной информации.

Отличительными характеристиками семисегментных цифровых индикаторов KEM являются количество разрядов в одном корпусе (одноразрядные, двухразрядные, трехразрядные и четырехразрядные), цвет отображаемой информации (красный, зелёный) и высота отображаемого знака (от 7,62 мм до 45 мм).

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

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

Монтаж осуществляется по THT-технологии (выводы монтируются непосредственно в сквозные отверстия печатной платы) с помощью пайки. Повышенная рабочая температура среды составляет не более +85°С, пониженная рабочая температура – не ниже -35°С.

Семисегментные цифровые индикаторы имеют схему включения с общим катодом или с общим анодом: на вывод общего анода необходимо подавать”плюс”, а на вывод общего катода – “минус” или заземление.

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

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

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

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

Окончательная цена на цифровые индикаторы KEM зависит от количества, сроков поставки и формы оплаты.

Источник: https://asenergi.com/catalog/cifrovye-indikatory/indikator-7-segment.html

Семисегментный индикатор

Доброго дня уважаемые друзья!
Приветствую Вас на сайте «Мир микроконтроллеров»

Семисегментный светодиодный индикатор
Схема подключения одноразрядного семисегментного индикатора
Схема подключения многоразрядного семисегментного индикатора

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

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

Сегменты обозначаются буквами от A до G; восьмой сегмент — десятичная точка (decimal point, DP), предназначенная для отображения дробных чисел.
Изредка на семисегментном индикаторе отображают буквы.

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

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

Кроме десяти цифр, семисегментные индикаторы способны отображать буквы. Но лишь немногие из букв имеют интуитивно понятное семисегментное представление.

В латинице: заглавные A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, строчные a, b, c, d, e, g, h, i, n, o, q, r, t, u.
В кириллице: А, Б, В, Г, г, Е, и, Н, О, о, П, п, Р, С, с, У, Ч, Ы (два разряда), Ь, Э/З.

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

Всего семисегментный светодиодный индикатор может отобразить 128 символов:

 В обычном светодиодном индикаторе девять выводов: один идёт к катодам всех сегментов, а остальные восемь — к аноду каждого из сегментов. Эта схема называется «схема с общим катодом», существуют также схемы с общим анодом (тогда все наоборот).

Часто делают не один, а два общих вывода на разных концах цоколя — это упрощает разводку, не увеличивая габаритов. Есть еще, так называемые «универсальные», но я лично с такими не сталкивался.

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

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

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

Подключение одноразрядного семисегментного индикатора к микроконтроллеру

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

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

Если индикатор с ОБЩИМ АНОДОМ, то на его общий провод подают «плюс» напряжения, а зажигание сегментов происходит переводом вывода порта в состояние логического нуля.

Осуществление индикации в одноразрядном светодиодном индикаторе осуществляется подачей на выводы порта микроконтроллера двоичного кода соответствующей цифры соответствующего логического уровня (для индикаторов с ОК — логические единицы, для индикаторов с ОА — логические нули).

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

Если, к примеру, напряжение подаваемое на сегменты равно 5 вольтам, а они рассчитаны на рабочее напряжение 2 вольта, то токоограничительные резисторы ставить необходимо (чтобы ограничить ток через них для повышенного напряжении питания и не сжечь не только индикатор, но и порт микроконтроллера).

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

К примеру, характеристики индикатора следующие (берем из даташита): — рабочее напряжение — 2 вольта — рабочий ток — 10 мА (=0,01 А) — напряжение питания 5 вольт Формула для расчета: R= U/I (все значения в этой формуле должны быть в Омах, Вольтах и Амперах) R= (напряжение питания — рабочее напряжение)/рабочий ток

R= (5-2)/0.01 = 300 Ом

Источник: https://microkontroller.ru/praktikum-mikrokontrollershhika/semisegmentnyiy-indikator/

4 простых схемы для изготовления индикатора фазы на светодиодах своими руками

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

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

Все подобные схемы по назначению делят на индикаторы напряжения и индикаторы тока.

Работа с сетью 220В

Рассмотрим простейший вариант – проверка фазы.

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

Для отображения сетевого напряжения, например, проверки наличия тока в разъёме розетки, схема ещё проще.

Простейший индикатор тока на светодиодах 220В собирается на ёмкостном сопротивлении для ограничения тока светодиода и диода для защиты от обратной полуволны.

Проверка постоянного напряжения

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

В качестве ограничителя тока можно использовать маломощную лампу накаливания либо резистор на 50-100 Ом. В зависимости от полярности подключения загорается соответствующий диод. Этот вариант подходит для цепей до 12В. Для более высокого напряжения потребуется увеличить сопротивления ограничивающего резистора.

Индикатор для микросхем (логический пробник)

Если возникает необходимость проверить работоспособность микросхемы, поможет в этом простейший пробник с тремя устойчивыми состояниями. При отсутствии сигнала (обрыв цепи) диоды не горят. При наличии логического ноля на контакте возникает напряжение около 0,5 В, которое открывает транзистор Т1, при логической единице (около 2,4В) открывается транзистор Т2.

Такая селективность достигается, благодаря различным параметрам используемых транзисторов. У КТ315Б напряжение открытия 0,4-0,5В, у КТ203Б – 1В. При необходимости можно заменить транзисторы другими с аналогичными параметрами.

Вариант для автомобиля

Простая схема для индикации напряжения бортовой сети автомобиля и заряда аккумулятора. Стабилитрон ограничивает ток аккумулятора до 5В для питания микросхемой логики.

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

Оцените, пожалуйста, статью. Мы старались:) (Пока оценок нет)
Загрузка…

Источник: https://SvetodiodInfo.ru/texnicheskie-momenty/indikator-napryazheniya-na-svetodiodax.html

Семисегментный индикатор | Программирование микроконтроллеров ⋆ diodov.net

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

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

По количеству разрядов различают одно-, двух-, трех-, и четырехразрядные индикаторы. Бывает и более разрядов, но они встречаются довольно редко.

Семисегментный индикатор. Принцип работы семисегментного индикатора

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

Кроме того в корпусе помимо сегментов находится еще и точка или запятая или другой символ.

С помощью семи сегментов можно изобразить десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и некоторые буквы, как латиницы, так и кириллицы.

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

Вне зависимости от количества разрядов и размеров цифр каждый сегмент имеет название в виде одной из первых букв английского алфавита: a, b, c, d, e, f, g. Точка обозначается dp.

Для того чтобы засветить один из светодиодов семисегментного индикатора с общим анодом следует на общий вывод (анод) подать «+», а на соответствующий отдельный вывод – «-» источника питания.

Если применяется общий катод, — то наоборот – минус подается на общий, а плюс на отдельный вывод.

Чтобы отобразить на индикаторе цифру или букву следует засветить несколько сегментов. Например, для отображения единицы 1 задействуются сегменты b и c. При отображении восьмерки 8 задействуются все символы от a до g. Пятерка получается из таких символов: a, c, d, f, g.

Как подключить семисегментный индикатор к микроконтроллеру

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

Схемы подключения с общим анодом ОА и общим катодом ОК аналогичны, только общий вывод подключается соответственно к плюсу или минусу источника питания.

Все светодиоды подключаются к выводам микроконтроллера через отдельные резисторы сопротивлением 220…330 Ом.

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

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

Теперь создадим модель в Протеусе и соберем схему на макетной плате. Далее по мере написания кода будем проверять работу микроконтроллера на модели и на реальном устройстве.

Семисегментный индикатор в Proteus находится в категории (Category) Optoelectronics (Оптоэлектроника). Ниже в подкатегории (Sub-category) следует кликнуть по строке 7-Segment Displays. После этого в окне результатов (Results) выбираем одноразрядный семисегментный индикатор 7SEG-MPX1-CC.

Код для микроконтроллера ATmega8

Теперь пишем код. Сначала настраиваем порт D полностью на выход. Для отображения единицы 1 задействуются сегменты b и c, выводы которых подключены к PD1 и PD2. Поэтому соответствующие биты регистр PORTD нужно установить в единицу.

#include

int main(void)

{

    DDRD = 0b11111111;

        while (1)

    {

         PORTD = 0b00000110; //1

    }

}

После компиляции кода и прошивки кода результаты мы видим в Proteus и на макетной плате.

Аналогичным образом формируются все цифры.

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

#define F_CPU 1000000L

#include

#include

int main(void)

{

    DDRD = 0b11111111;

    while (1)

    {

         PORTD = 0b00111111; //0

         _delay_ms(300);

         PORTD = 0b00000110; //1

         _delay_ms(300);

         PORTD = 0b01011011; //2

         _delay_ms(300);

         PORTD = 0b01001111; //3

         _delay_ms(300);

         PORTD = 0b01100110; //4

         _delay_ms(300);

         PORTD = 0b01101101; //5

         _delay_ms(300);

         PORTD = 0b01111101; //6

         _delay_ms(300);

         PORTD = 0b00000111; //7

         _delay_ms(300);

         PORTD = 0b01111111; //8

         _delay_ms(300);

         PORTD = 0b01101111; //9

         _delay_ms(300);

            }

}

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

Скачать программы и модель в Proteus

Источник: http://diodov.net/semisegmentnyj-indikator-programmirovanie-mikrokontrollerov/

Урок 19. Семисегментные светодиодные индикаторы (LED). Режимы управления, подключение к микроконтроллеру

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

Предыдущий урок     Список уроков     Следующий урок

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

Этому способствуют следующие их качества.

  • Низкая цена. В средствах индикации нет ничего дешевле светодиодных цифровых индикаторов.
  • Разнообразие размеров. Самые маленькие и самые большие индикаторы – светодиодные. Мне известны светодиодные индикаторы с высотой цифры от 2,5 мм, до 32 см.
  • Светятся в темноте. В некоторых приложениях это свойство чуть ли не решающее.
  • Имеют различные цвета свечения. Бывают даже двухцветные.
  • Достаточно малые токи управления. Современные светодиодные индикаторы могут подключаться к выводам микроконтроллеров без дополнительных ключей.
  • Допускают жесткие условия эксплуатации (температурный диапазон, высокая влажность, вибрации, агрессивные среды и т.п.). По этому качеству светодиодным индикаторам нет равных среди других типов элементов индикации.
  • Неограниченный срок службы.

Типы светодиодных индикаторов.

Семисегментный светодиодный индикатор отображает символ с помощью семи светодиодов – сегментов цифры. Восьмой светодиод засвечивает децимальную точку. Так что в семисегментном индикаторе 8 сегментов.

Сегменты обозначаются латинскими буквами от ”A” до ”H”.

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

Светодиодный индикатор с общим анодом.

Светодиодный индикатор с общим катодом.

Статическое управление светодиодным индикатором.

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

Читайте также:  Реле контроля фаз

Расчет резисторов такой же, как для отдельных светодиодов.

R = ( U питания  –  U сегмента ) / I сегмента

Для этой схемы:  I сегмента = ( 5 – 1,5 ) / 1000 = 3,5 мА

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

В схеме подключения индикатора с общим катодом меняется полярность питания и сигналов управления.

Засветится сегмент, на управляющем выводе которого будет сформирован высокий уровень (5 В).

Мультиплексированный режим управления светодиодными (LED) индикаторами.

Для подключения каждого семисегментного индикатора к микроконтроллеру требуется восемь выводов. Если индикаторов (разрядов) 3 – 4, то задача становится практически не выполнимой. Просто не хватит выводов микроконтроллера. В этом случае индикаторы можно подключить в мультиплексированном режиме, в режиме динамической индикации.

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

Для подключения трех индикаторов потребовалось 11 выводов, а не 24, как при статическом режиме управления.

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

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

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

Я стараюсь использовать не менее 100 Гц.

Схема динамической индикации для светодиодов с общим катодом выглядит так.

Меняется полярность всех сигналов. Теперь на общий провод активного разряда подается низкий уровень, а на сегменты, которые должны светиться – высокий уровень.

Расчет элементов динамической индикации светодиодных (LED) индикаторов.

Расчет несколько сложнее, чем для статического режима. В ходе расчета необходимо определить:

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

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

Выберем средний ток сегмента 1 мА.

Теперь рассчитаем импульсный ток сегмента. Чтобы обеспечить требуемый средний ток, импульсный ток должен быть в N раз больше. Где N число разрядов индикатора.

I сегм. имп. = I сегм. средн. * N

Для нашей схемы I сегм. имп. = 1 * 3 = 3 мА.

Рассчитываем сопротивление резисторов, ограничивающих ток.

R = ( U питания  –  U сегмента ) / I сегм. имп.

R = ( 5 – 1,5 ) / 0.003 = 1166 Ом

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

I разряда имп. =  I сегм. имп. * 8

Для нашей схемы  I разряда имп. = 3 * 8 = 24 мА.

В итоге:

  • сопротивление резисторов выбираем 1,1 кОм;
  • выводы микроконтроллера управления сегментами должны обеспечивать ток не менее 3 мА;
  • выводы микроконтроллера выбора разряда индикатора должны обеспечивать ток не менее 24 мА.

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

Схемы с дополнительными ключами.

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

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

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

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

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

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

Ключи для индикаторов с повышенным напряжением питания.

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

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

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

Между переключением разрядов индикатора на короткое время (1-5 мкс) должны выключаться  все сегменты. Это время необходимо на завершение переходных процессов коммутации ключей.

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

Более того, можете собрать индикатор из отдельных светодиодов, объединенных в сегменты. Так обычно поступают, когда необходимо собрать индикатор очень больших размеров.

Все приведенные выше схемы будут справедливы и для таких вариантов.

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

Предыдущий урок     Список уроков     Следующий урок

Источник: http://mypractic.ru/urok-19-semi-segmentnye-svetodiodnye-indikatory-led-rezhimy-upravleniya-podklyuchenie-k-mikrokontrolleru.html

Жидкокристаллические алфавитно-цифровые индикаторы | Все своими руками

И так. Недавно пришли из Китая, через eBay заказанные и купленные, жидкокристаллические алфавитно-цифровые индикаторы на платформе контроллеров HD44780 или KS0066

.

Они давно уже пользуются большой популярностью у радиолюбителей. Марку сих девайсов определить не удалось. Смотрим фото. Кроме того, что они имеют две строки и в каждой по 16 символов – больше ничего.

Такие ЖКИ имеют простую схему управления, например, для отображения информация на таком дисплее достаточно всего шести линий микроконтроллера, а так же они имеют относительно небольшую стоимость.

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

Индикаторы имеют однорядную или двух рядную разводку выводов при строго определённой последовательности их нумерации (рис. 2). Но из практического опыта использования ЖКИ-индикаторов необходимо констатировать, что выводы 1 и 2 (питание) зачастую могут иметь обратную полярность.

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

При неправильной полярности можно вывести индикатор из строя.

ЖКИ — индикаторы позволяют отображать символы латинского алфавита, цифры, при наличии соответствующего знакогенератора – кириллические (русские буквы), а так же специальные символы. Существуют знакогенераторы и с символами других алфавитов. Таблица знакогенератора «двуязычного» индикатора, или как её называют «Epson раскладка Russian» приведена в таблице ниже.

Для того что бы отобразить, допустим символ русской буквы Ш, необходимо указать позицию символа на индикаторе (например, для моего 2-х строчного 16-ти символьного индикатора первая строка имеет адресацию в интервале 80h – 8Fh, вторая строка С0h-CFh), а затем код отображаемого символа Ш – AСh (А – «координата» по горизонтали, С – по вертикали таблицы знакогенератора).
Все это хорошо, но в купленных мною индикаторах, мало того, что нет знакогенератора русских букв, но в нем нет значка градуса, часто необходимого при разработке термометров и т.п. Но в этих LCD предусмотрена запись в знакогенератор семи своих «самодельных» символов. Как это сделать я расскажу. Для начала, чтобы лишить себя удовольствия определения кода каждой точки в матрице, состоящей из 5×8 точек, скачайте программу LCDCC скачали раз:, она свободно распространяется в сети. Смотрим скриншот этой программы.

Нажатием на ячейки матрицы, мы рисуем нужный символ, в данном случае это символьный значок градуса. Внизу нам программа сразу пишет коды выбранных точек матрицы. Теперь нам необходимо эти коды записать в контроллер индикатора. Для этого нам надо написать небольшую программку. Что бы не путать рубрики сайта эту программу я выложу в статье «Программа взаимодействия PIC16 и ЖК дисплея». Еще документацию на LCD можно прочитать здесь.

Скачать “HD44780-rus.rar” HD44780-rus.rar – Загружено 289 раз – 367 KB

Интересная статья из ж. «Радиомир»

Скачать “LCD-.rar” LCD-.rar – Загружено 285 раз – 2 MB

Статья из «Схемотехники»

Скачать “lcd-1.rar” lcd-1.rar – Загружено 270 раз – 1 MB

Источник: http://www.kondratev-v.ru/spravochnik/zhidkokristallicheskie-alfavitno-cifrovye-indikatory.html

Цифровые индикаторы для блока питания

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

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

Многие радиолюбители изготавливают такие индикаторы на базе микроконтроллера или применяя микросхемы АЦП, к примеру КР572ПВ2, КР572ПВ5. Однако есть и другие микросхемы, схожие по функционалу.

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

Данная микросхема представляет собой АЦП, с максимальным входным напряжением 999 мВ и логической схемой, последняя выдает результат измерения в виде трех поочередно меняющихся двоично-десятичных четырехразрядных кодов на параллельном выходе и трех выходах для опроса разрядов схемы динамической индикации.

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

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

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

На рисунке который мы видим выше, показана схема вольтметра, который может измерять напряжение от 0 до 100В. Измеряемое напряжение поступает на делитель, собранный на резисторах R1-R3, а затем далее на выводы 11-10 микросхемы D1. Конденсатор C3 служит для исключения помех, мешающих измерениям.

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

Логическая часть микросхемы СА3162Е построена по логике ТТЛ, а выходы еще и с открытыми коллекторами. На выходах «1-2-4-8» формируется двоично-десятичный код, который периодически сменяется, обеспечивая последовательную передачу данных о трех разрядах результата измерения.

Если используется дешифратор ТТЛ, как, например, КР514ИД2, то его входы непосредственно подключаются к данным входам D1. Если же будет применен дешифратор логики КМОП или МОП, то его входы будет необходимо подтянуть к плюсу при помощи резисторов.

Это нужно будет сделать, например, если вместо КР514ИД2 будет использован дешифратор К176ИД2 или CD4056.

Выходы дешифратора D2, через токоограничивающие резисторы R7-R13, подключаются к сегментным выводам светодиодных индикаторов Н1-НЗ. Одноименные сегментные выводы всех трех индикаторов соединены вместе.

Чтобы произвести опрос индикаторов, необходимо использовать транзисторные ключи VT1-VT3, на базы которых подаются команды с выходов Н1-НЗ микросхемы D1. Эти выводы сделаны по схеме, с открытым коллектором.

Активный ноль, поэтому используются транзисторы структуры p-n-p.

Схема амперметра не сильно отличается от вольтметра. Вместо делителя здесь установлен шунт, на пятиваттном резисторе R2 сопротивлением которого 0,1 Ом. Благодаря такому шунту, прибор может измерять ток до 10А ( если уж совсем точно, то 0…9,99А). А установка на ноль и калибровка, как и в схеме вольтметра, осуществляется двумя резисторами R4 и R5.

Применяя другие делители и шунты можно задать другие пределы измерения. К примеру, 0…9,99В, 0…999 мА, 0…999В, 0…99,9А, все зависит от задач, поставленных перед изготовлением устройства.

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

Однако стоит учесть, что даже применяя жидкокристаллические индикаторы прибор будет потреблять немалый ток, так как логическая часть СА3162Е построена на ТТЛ-логике.

Питание прибора осуществляется постоянным, стабилизированным напряжением 5В. В источнике питания, в который будут они установлены, необходимо предусмотреть наличие такого напряжения при токе не ниже 150 мА.

Налаживание устройства не представляет из себя ничего сложного. Итак, вольтметр. Сначала замкнем между собой выводы 10 и 11 D1, и крутя резистор R4 выставим нулевые показания.

Далее, убираем перемычку, замыкающую выводы 11-10 и подключаем к клеммам «нагрузка» образцовый прибор, например, мультиметр.

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

Амперметр. Сначала, не подключая нагрузку, регулировкой резистора R5 устанавливаем показания на ноль. Теперь потребуется постоянный резистор, сопротивлением 20 Ом и мощностью не ниже 5Вт.

Устанавливаем на блоке питания напряжение 10В и подключаем этот резистор в качестве нагрузки. Крутим резистор R5 так, чтобы амперметр показал 0,5 А.

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

скачать архив

Источник: https://kiloom.ru/sxema/cifrovye-indikatory-dlya-bloka-pitaniya.html

Подключение 4-разрядного светодиодного индикатора по SPI интерфейсу

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

По сравнению с ЖК индикаторами, сегменты светодиодного индикатора светятся ярко и различимы на большом расстоянии и при широком угле обзора. Для подключения семисегментного 4-разрядного индикатора к микроконтроллеру потребуется, по крайней мере, 12 линий ввода/вывода.

Поэтому использовать данные индикаторы с микроконтроллерами с малым количеством выводов, например серии PIC12F от  компании Microchip, практически невозможно.

Конечно, можно использовать разные методы мультиплексирования (описание которых можно найти на сайте Радиолоцман в разделе “Схемы”), но и в этом случае имеются определенные ограничения для каждого метода, и зачастую в них используются сложные программные алгоритмы.

Мы рассмотрим метод подключения индикатора по интерфейсу SPI, который потребует всего 3 линии ввода/вывода микроконтроллера. При этом сохранится управление всеми сегментами индикатора.

Для подключения 4-разрядного индикатора к микроконтроллеру по SPI шине используется специализированная микросхема-драйвер MAX7219 производства компании Maxim. Микросхема способна управлять восемью семисегментными индикаторами с общим катодом и имеет в своем составе BCD-декодер, драйверы сегментов, схему мультиплексирования и статическое ОЗУ для хранения значений цифр.

Ток через сегменты индикаторов устанавливается с помощью лишь одного внешнего резистора. Дополнительно микросхема поддерживает управление яркостью индикаторов (16 уровней яркости) посредством встроенного ШИМ.

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

И нас больше интересует не сама схема, а работа с микросхемой по интерфейсу SPI.

Питание модуля +5 В подается на вывод Vcc, сигнальные линии MOSI, CLK и CS предназначены для коммуникации мастер-устройства (микроконтроллер) с ведомым (микросхема MAX7219).

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

Данные передаются в микросхему 16-битными пакетами (по два байта), которые помещаются во встроенный 16-битный регистр сдвига по каждому нарастающему фронту сигнала CLK. 16-битный пакет мы обозначим D0-D15, где биты D0-D7 содержат данные, D8-D11 содержат адрес регистра, биты D12-D15 значения не имеют.

Бит D15 – старший значащий бит и является первым принимаемым битом. Хотя микросхема способна управлять восемью индикаторами, мы рассмотрим работу только с четырьмя.

Управление ими осуществляется на выходах DIG0 – DIG3, расположенных в последовательности справа налево, 4-битные адреса (D8-D11), которые им соответствуют, это 0×01, 0×02, 0×03 и 0×04 (шестнадцатеричный формат).

Регистр цифр реализуется на базе встроенного ОЗУ с организацией 8×8 и адресуются непосредственно, так что каждая отдельная цифра на дисплее может обновляться в любое время. В следующей таблице приведены адресуемые цифры и регистры управления микросхемы MAX7219.

Регистр

Адрес

HEX-значение

D15-D12

D11

D10

D9

D8

Нет операции

Х

0хХ0

Разряд 0

Х

1

0хХ1

Разряд 1

Х

1

0хХ2

Разряд 2

Х

1

1

0хХ3

Разряд 3

Х

1

0хХ4

Разряд 4

Х

1

1

0хХ5

Разряд 5

Х

1

1

0хХ6

Разряд 6

Х

1

1

1

0хХ7

Разряд 7

Х

1

0хХ8

Режим декодирования

Х

1

1

0хХ9

Яркость

Х

1

1

0хХA

Количество индикаторов

Х

1

1

1

0хХB

Выключение

Х

1

1

0хХC

Тест индикатора

Х

1

1

1

1

0хХF

Регистры управления

Микросхема MAX1792 имеет 5 регистров управления: режим декодирования (Decode-Mode), управление яркостью индикатора (Intensity), регистр количества подключенных индикаторов (Scan Limit), управление включением и выключением (Shutdown), режим тестирования (Display Test).

Включение и выключение микросхемы

При подаче питания на микросхему все регистры сбрасываются, и она переходит в режим Shutdown (выключение). В этом режиме дисплей отключен. Для перехода в нормальный режим работы необходимо установить бит D0 регистра Shutdown (адрес 0Сh).

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

Этот режим может использоваться для экономии энергии или в режиме сигнализации миганием индикатора (последовательная активация и деактивация режима Shutdown).

Перевод микросхемы в режим Shutdown осуществляется последовательной передачей адреса (0Сh) и данных (00h), а передача 0Ch (адрес) и затем 01h (данные) возвращают в нормальный режим работы.

Режим декодирования

C помощью регистра выбора режима декодирования (адрес 09h) можно использовать BCD code B декодирование (отображаемые символы 0-9, E, H, L, P, -) или же без декодирования для каждой цифры.

Каждый бит в регистре соответствует одной цифре, установка логической единицы соответствует включению декодера для данного разряда, установка 0 – декодер исключается.

Если используется BCD декодер, то принимается во внимание только младший полубайт данных в регистрах цифр (D3-D0), биты D4-D6 игнорируются, бит D7 не зависит от BCD декодера и отвечает за включение десятичной точки на индикаторе, если D7=1.

Например, при последовательной посылке байтов 02h и 05h на индикаторе DIG1 (второй разряд справа) будет отображаться цифра 5. Подобным образом, при посылке 01h и 89h на индикаторе DIG0 будет отображаться цифра 9 с включенной десятичной точкой. В таблице ниже приведен полный список символов, отображаемых при использовании BCD декодера микросхемы.

Символ

Данные в регистрах

Включенные сегменты = 1

D7*

D6-D4

D3

D2

D1

D0

DP*

A

B

C

D

E

F

G

X

1

1

1

1

1

1

1

X

1

1

1

2

X

1

1

1

1

1

1

3

X

1

1

1

1

1

1

1

4

X

1

1

1

1

1

5

X

1

1

1

1

1

1

1

6

X

1

1

1

1

1

1

1

1

7

X

1

1

1

1

1

1

8

X

1

1

1

1

1

1

1

1

9

X

1

1

1

1

1

1

1

1

X

1

1

1

E

X

1

1

1

1

1

1

1

1

H

X

1

1

1

1

1

1

1

L

X

1

1

1

1

1

1

P

X

1

1

1

1

1

1

1

1

Пусто

X

1

1

1

1

*Десятичная точка устанавливается битом D7=1

При исключении BCD декодера из работы биты данных D7-D0 соответствуют линиям сегментов (A-G и DP) индикатора.

Управление яркостью индикаторов

Микросхема позволяет программно управлять яркостью индикаторов посредством встроенного ШИМ. Выход ШИМ контролируется младшим полубайтом (D3-D0) регистра Intensity (адрес 0Ah), который позволяет устанавливать один из 16 уровней яркости. При установке всех битов полубайта в 1 выбирается максимальная яркость индикатора.

Количество подключенных индикаторов

В регистре Scan-Limit (адрес 0Bh) устанавливается значение количества разрядов, обслуживаемых микросхемой (1 … 8). Для нашего варианта с 4 разрядами в регистр должно быть записано значение 03h.

Тест индикатора

Регистр, отвечающий за этот режим, находится по адресу 0Fh. Устанавливая бит D0 в регистре, пользователь включает все сегменты индикаторов, при этом содержимое регистров управления и данных не изменяется. Для выключения режима Display-Test бит D0 должен быть равен 0.

Интерфейс с микроконтроллером

Модуль индикатора может быть подключен к любому микроконтроллеру, который имеет три свободные линии ввода/вывода. Если микроконтроллер имеет встроенный аппаратный модуль SPI, то модуль индикатора может подключаться как ведомое устройство на шине.

В этом случае сигнальные линии SPI интерфейса SDO (serial data out), SCLK (serial clock) и SS (slave select) микроконтроллера могут быть непосредственно подключены к выводам MOSI, CLK и CS микросхемы MAX7219 (модуля), сигнал CS имеет активный низкий уровень.

В случае если микроконтроллер не имеет аппаратного SPI, то интерфейс можно организовать программно.

Общение с микросхемой MAX7219 начинается с установки и удержания низкого уровня на линии CS, после чего последовательно посылаются 16 бит данных (старший значимый бит передается первым) по линии MOSI по нарастающему фронту сигнала CLK. По завершению передачи на линии CS опять устанавливается высокий уровень.

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

Используемый микроконтроллер – PIC12F683, интерфейс реализован программно, сигнальные линии CS, MOSI и CLK модуля индикатора подключены к портам GP0, GP1 и GP2, соответственно.

Используется компилятор mikroC для PIC микроконтроллеров (mikroElektronika), однако код может быть модифицирован под другие высокоуровневые компиляторы. Микроконтроллер работает на тактовой частоте 4 МГц от встроенного RC осциллятора, выход MCLR отключен.

Данный модуль можно подключать и к платформе Arduino. Для работы с ним потребуется библиотека LedControl, доступная для скачивания на сайте Arduino.

Загрузки

Исходный код тестовой программы и HEX-файл для прошивки микроконтроллера – скачать

embedded-lab.com

Источник: https://www.rlocman.ru/shem/schematics.html?di=134175

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}