4-цифрен индикатор Arduino конекција. Индикатор од седум сегменти. Излез на индикатори на дробни броеви, пловечки формат

Постојат параметри за кои би било попогодно да се обезбедат објективни информации, а не само индикација. На пример, температурата на воздухот надвор или времето на будилникот. Да, сето ова може да се направи со светлечки светилки или LED диоди. Еден степен – една запалена LED или сијалица, итн. Но, броејќи ги овие светулки - добро, не! Но, како што велат, најмногу едноставни решенија- најсигурен. Затоа, без долго размислување, програмерите зедоа едноставни LED ленти и ги распоредија во правилен редослед.

На почетокот на дваесеттиот век со доаѓањето вакуумски цевкисе појавија првите индикатори за испуштање гас

Со помош на такви индикатори беше можно да се заклучи дигитални информациисо арапски бројки. Претходно, токму на такви светилки беа направени разни индикации за уреди и други Електронски Уреди. Во моментов, елементите за испуштање гас речиси никогаш не се користат никаде. Но, ретрото е секогаш модерно, затоа, многу радио аматери собираат прекрасни часовници на индикатори за празнење гас за себе и за своите најблиски.


Недостаток на светилките за празнење гас е тоа што трошат многу електрична енергија. Може да се расправа за издржливоста. На нашиот универзитет сè уште користиме бројачи на фреквенции во нашите лабораториски простории. индикатори за испуштање гас.

Индикатори од седум сегменти

Со доаѓањето на LED диоди, ситуацијата драматично се промени на подобро. Самите LED диоди трошат мала струја. Ако ги поставите на вистинската позиција, можете да прикажете апсолутно какви било информации. За да се истакнат сите арапски бројки, доволни се само седум светлечки LED ленти - сегменти, поставени на одреден начин:

Речиси на сите такви седумсегментни индикатори се додава и осми сегмент - точка, така што е можно да се прикажат цел број и фракциони вредности на кој било параметар

Во теорија, добиваме индикатор со осум сегменти, но на старомоден начин се нарекува и индикатор од седум сегменти.

Каков е резултатот? Секоја лента на индикаторот со седум сегменти е осветлена со LED или група LED диоди. Како резултат на тоа, со истакнување на одредени сегменти, можеме да прикажеме броеви од 0 до 9, како и букви и симболи.

Видови и ознака на дијаграмот

Постојат едноцифрени, двоцифрени, трицифрени и четирицифрени седумсегментни индикатори. Никогаш не сум видел повеќе од четири категории.

На дијаграмите, индикаторот од седум сегменти изгледа вака:

Всушност, покрај главните терминали, секој индикатор од седум сегменти има и заеднички терминал со заедничка анода (OA) или заедничка катода (OC).

Внатрешното коло на индикаторот од седум сегменти со заедничка анода ќе изгледа вака:


и со заедничка катода како оваа:


Ако имаме индикатор од седум сегменти со заедничка анода (ОА), тогаш во колото мора да обезбедиме „плус“ напојување на оваа игла, а ако со заедничка катода (OC), тогаш „минус“ или заземјување.

Како да проверите индикатор од седум сегменти

Ги имаме следните показатели:


За да провериме модерен индикатор од седум сегменти, потребен ни е само мултиметар со функција за тестирање на диоди. За почеток, бараме општ заклучок - може да биде или ОП или ОК. Овде само по случаен избор. Па, тогаш ги проверуваме перформансите на преостанатите сегменти на индикаторот според дијаграмите погоре.

Како што можете да видите на фотографијата подолу, сегментот што се тестира се пали. На ист начин ги проверуваме и другите сегменти. Ако сите сегменти се осветлени, тогаш таков индикатор е недопрен и може да се користи во вашите случувања.


Понекогаш напонот на мултиметарот не е доволен за тестирање на сегмент. Затоа, земаме напојување и го поставуваме на 5 волти. За да ја ограничиме струјата низ сегментот, проверуваме преку отпорник од 1-2 Кило-Ом.


На ист начин го проверуваме индикаторот од кинескиот приемник


Во кола, индикаторите од седум сегменти се поврзани со отпорници на секоја игла

Во нашата модерен светиндикаторите од седум сегменти се заменуваат со индикатори со течни кристали кои можат да прикажат апсолутно какви било информации

но за да ги користите, потребни ви се одредени вештини во дизајнот на кола на такви уреди. Затоа, индикаторите од седум сегменти сè уште се користат и денес, поради нивната ниска цена и леснотија на користење.

Седумсегментните LED индикатори се многу популарни меѓу уредите за прикажување на дигитални вредности и се користат во предните панели на микробрановите печки, машини за перење, дигитални часовници, бројачи, тајмери ​​итн. Во споредба со LCD индикаторите, сегментите на LED индикаторите светат силно и се видливи на голема оддалеченост и со широк агол на гледање. За поврзување на седумсегментен 4-битен индикатор со микроконтролер, ќе бидат потребни најмалку 12 I/O линии. Затоа, речиси е невозможно да се користат овие индикатори со микроконтролери со мал број пинови, на пример, серии од компанијата. Секако дека можете да користите различни методимултиплексирање (чиј опис може да се најде на веб-страницата во делот „Шеми“), но дури и во овој случај постојат одредени ограничувања за секој метод и тие често користат сложени софтверски алгоритми.

Ќе го разгледаме начинот на поврзување на индикатор преку интерфејсот SPI, за кој ќе бидат потребни само 3 I/O линии на микроконтролерот. Во исто време, контролата на сите сегменти на индикаторот ќе остане.

За поврзување на 4-битен индикатор со микроконтролер преку магистралата SPI, се користи специјализиран чип за двигатели произведен од компанијата. Микроциркулата е способна да придвижува осум седумсегментни индикатори со заедничка катода и вклучува BCD декодер, двигатели на сегменти, коло за мултиплексирање и статичка RAM за складирање на вредностите на цифрите.

Струјата низ сегментите на индикаторот се поставува со само еден надворешен отпорник. Дополнително, чипот поддржува контрола на осветленоста на индикаторот (16 нивоа на осветленост) користејќи вграден PWM.

Колото дискутирано во статијата е коло со модул за прикажување со интерфејс SPI што може да се користи во дизајни на радио аматери. И ние сме повеќе заинтересирани не за самото коло, туку за работа со микроциркутот преку интерфејсот SPI. Напојувањето на модулот +5 V се доставува до пинот Vcc, сигнални линии MOSI, CLK и CS се дизајнирани за комуникација помеѓу главен уред (микроконтролер) и slave уред (MAX7219 чип).

Микроциркулата се користи во стандардна врска; единствените надворешни компоненти потребни се отпорник што ја поставува струјата низ сегментите, заштитна диода за напојувањето и кондензатор за филтер за напојување.

Податоците се пренесуваат на чипот во 16-битни пакети (два бајти), кои се сместени во вградениот 16-битен поместувачки регистар на секој растечки раб на CLK сигналот. Ние означуваме 16-битен пакет како D0-D15, каде битовите D0-D7 содржат податоци, D8-D11 ја содржат адресата на регистарот, битовите D12-D15 немаат значење. Битот D15 е најзначајниот бит и е првиот примен бит. Иако чипот е способен да контролира осум индикатори, ќе размислиме да работиме само со четири. Тие се контролирани од излезите DIG0 - DIG3, лоцирани во низа од десно кон лево, 4-битните адреси (D8-D11) кои одговараат на нив се 0x01, 0x02, 0x03 и 0x04 (хексадецимален формат). Регистарот на цифри се имплементира со користење на RAM меморија на чип со организација 8x8 и е директно адресибилен така што секоја поединечна цифра на екранот може да се ажурира во секое време. Следната табела ги прикажува адресибилните цифри и контролните регистри на чипот MAX7219.

Регистрирајте се

Адреса

HEX вредност

Нема операција

Режим на декодирање

Број на индикатори

Исклучи

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

Контролни регистри

Чипот MAX1792 има 5 контролни регистри: режим на декодирање (Decode-Mode), контрола на осветленоста на индикаторот (Intensity), регистар на бројот на поврзани индикатори (Scan Limit), контрола на вклучување/исклучување (Shutdown), режим на тестирање (Display Test).

Вклучување и исклучување на чипот

Кога напојувањето ќе се примени на чипот, сите регистри се ресетираат и тој оди во режим на исклучување. Во овој режим, екранот е исклучен. За да се префрлите на нормален режим на работа, мора да се постави битот D0 од регистарот за исклучување (адреса 0Сh). Овој бит може да се исчисти во секое време за да го принуди возачот да се исклучи, оставајќи ја содржината на сите регистри непроменети. Овој режим може да се користи за заштеда на енергија или во режим на аларм со трепкање на индикаторот (секвенцијално активирање и деактивирање на режимот за исклучување).

Микроциркулата се префрла во режим на исклучување со последователно пренесување на адресата (0Сh) и податоците (00h), и пренесувањето на 0Ch (адреса) и потоа 01h (податоци) се враќа во нормална работа.

Режим на декодирање

Користејќи го регистарот за избор на режим на декодирање (адреса 09h), можете да користите декодирање на BCD кодот 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=1

Кога BCD декодерот е исклучен од работа, податочните битови D7-D0 одговараат на линиите на сегментот (A-G и DP) на индикаторот.

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

Чипот ви овозможува програмски да ја контролирате осветленоста на индикаторите користејќи го вградениот PWM. Излезот PWM е контролиран од грицкањето со низок ред (D3-D0) на регистарот за интензитет (адреса 0Ah), што ви овозможува да поставите едно од 16-те нивоа на осветленост. Кога сите делови од грицкањето се поставени на 1, се избира максималната осветленост на индикаторот.

Број на поврзани индикатори

Регистарот Scan-Limit (адреса 0Bh) ја поставува вредноста на бројот на битови што ги сервисира микроколото (1 ... 8). За нашата 4-битна верзија, вредноста 03h треба да биде запишана во регистарот.

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

Регистарот одговорен за овој режим се наоѓа на адресата 0Fh. Со поставување на битот D0 во регистарот, корисникот ги вклучува сите сегменти на индикаторот, додека содржината на контролните и податочните регистри не се менуваат. За да се оневозможи режимот за тестирање на екранот, битот D0 мора да биде 0.

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

Индикаторскиот модул може да се поврзе со кој било микроконтролер кој има три слободни I/O линии. Ако микроконтролерот има вграден хардверски модул SPI, тогаш индикаторскиот модул може да се поврзе како slave уред на автобусот. Во овој случај, SPI сигналните линии SDO (излезени сериски податоци), SCLK (сериски часовник) и SS (slave select) на микроконтролерот може директно да се поврзат со пиновите MOSI, CLK и CS на чипот (модулот) MAX7219. CS сигналот е активен на ниско ниво.

Ако микроконтролерот нема хардверски SPI, интерфејсот може да се организира во софтвер. Комуникацијата со MAX7219 започнува со повлекување и држење на линијата CS на ниско ниво, а потоа секвенцијално испраќање на 16 бита податоци (прво MSB) на линијата MOSI на растечкиот раб на сигналот CLK. По завршувањето на преносот, линијата CS повторно оди високо.

Во делот за преземања, корисниците можат да го преземат изворниот текст на програмата за тестирање и датотеката HEX на фирмверот, кој имплементира конвенционален 4-битен бројач со прикажување на вредностите на индикаторски модул со интерфејс SPI. Употребениот микроконтролер е интерфејс имплементиран во софтвер, сигналните линии CS, MOSI и CLK на индикаторскиот модул се поврзани со портите GP0, GP1 и GP2, соодветно. Се користи компајлерот mikroC за PIC микроконтролери(микроелектроника

Да коментирате материјали од страницата и да добивате целосен пристапна нашиот форум ви треба регистрираат .


Дијаграм за поврзување за едноцифрен индикатор од седум сегменти
Дијаграм за поврзување за повеќецифрен индикатор од седум сегменти

Уред за прикажување на дигитални информации. Ова е наједноставната имплементација на индикатор кој може да прикажува арапски бројки. За прикажување на буквите се користат посложени мултисегментни и матрични индикатори.

Како што кажува неговото име, се состои од седум елементи (сегменти) на екранот кои се вклучуваат и исклучуваат одделно. Со нивно вклучување во различни комбинации, тие може да се користат за создавање поедноставени слики на арапски бројки.
Сегментите се означени со буквите A до G; осми сегмент - децимална точка (децимална точка, DP), дизајниран за прикажување на дробни броеви.
Повремено, буквите се прикажуваат на индикаторот со седум сегменти.

Тие доаѓаат во различни бои, обично бела, црвена, зелена, жолта и сина. Покрај тоа, тие можат да бидат со различни големини.

Исто така, LED индикаторот може да биде едноцифрен (како на сликата погоре) или повеќецифрен. Во основа, во пракса се користат LED индикатори со една, две, три и четири цифри:

Покрај десет цифри, индикаторите со седум сегменти се способни да прикажуваат букви. Но, неколку букви имаат интуитивна репрезентација од седум сегменти.
На латински: големи букви A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, мали букви a, b, c, d, e, g , ч, и, н, о, q, р, т, у.
На кирилица: A, B, V, G, g, E, i, N, O, o, P, p, R, S, s, U, Ch, Y (две цифри), b, E/Z.
Затоа, индикаторите од седум сегменти се користат само за прикажување едноставни пораки.

Севкупно, LED индикаторот со седум сегменти може да прикаже 128 знаци:

Типичен LED индикатор има девет води: еден оди до катодите на сите сегменти, а другите осум одат до анодата на секој сегмент. Оваа шема се нарекува „заедничко катодно коло“, има и шеми со заедничка анода(тогаш е обратно). Често, не еден, туку два заеднички терминали се прават на различни краеви на основата - ова ги поедноставува жиците без зголемување на димензиите. Има и таканаречени „универзални“, но јас лично не сум сретнал такви. Покрај тоа, постојат индикатори со вграден регистер за поместување, што во голема мера го намалува бројот на вклучени пинови на портата на микроконтролерот, но тие се многу поскапи и ретко се користат во пракса. А бидејќи не може да се сфати неизмерноста, засега нема да разгледуваме такви показатели (но има и индикатори со многу поголем број сегменти, матрични).

Повеќецифрени LED индикаторичесто работат на динамичен принцип: излезите на сегментите со исто име на сите цифри се поврзани заедно. За да се прикажат информации за таков индикатор, контролниот микроспој мора циклично да напојува струја до заедничките терминали на сите цифри, додека струјата се испорачува на терминалите на сегментот во зависност од тоа дали даден сегмент е осветлен во дадена цифра.

Поврзување на едноцифрен седумсегментен индикатор со микроконтролер

Дијаграмот подолу покажува како поврзан е едноцифрен индикатор од седум сегментидо микроконтролерот.
Треба да се земе предвид дека доколку индикаторот со ЗАЕДНИЧКА КАТОДА, тогаш неговиот заеднички излез е поврзан со "земја", а сегментите се палат со хранење логичка единицадо излезот на пристаништето.
Ако индикаторот е ЗАЕДНИЧКА АНОДА, потоа се доставува до неговата заедничка жица "Плус"напон, а сегментите се палат со префрлување на излезот на пристаништето во состојбата логичка нула.

Индикацијата во едноцифрен LED индикатор се врши со примена на бинарен код на пиновите на портата на микроконтролерот на соодветната цифра од соодветното логично ниво (за индикатори со ОК - логични, за индикатори со ОА - логички нули).

Отпорници за ограничување на струјатаможе или не може да биде присутна на дијаграмот. Сето тоа зависи од напонот на напојување што се испорачува на индикаторот и технички карактеристикииндикатори. Ако, на пример, напонот доставен до сегментите е 5 волти, а тие се дизајнирани за работен напон од 2 волти, тогаш мора да се инсталираат отпорници за ограничување на струјата (за да се ограничи струјата низ нив за зголемен напон на напојување и да не изгори не само индикаторот, туку и портата на микроконтролерот).
Многу е лесно да се пресмета вредноста на отпорниците за ограничување на струјата, користејќи ја формулата на дедото Ом.
На пример, карактеристиките на индикаторот се како што следува (преземено од листот со податоци):
— работен напон — 2 волти
— работна струја — 10 mA (=0,01 А)
— напон на напојување 5 волти
Формула за пресметка:
R= U/I (сите вредности во оваа формула мора да бидат во оми, волти и засилувачи)
R= (напонски напон - работен напон)/работна струја
R= (5-2) / 0,01 = 300 Ом

Дијаграм за поврзување за повеќецифрен седумсегментен LED индикаторВо основа исто како и при поврзување на едноцифрен индикатор. Единственото нешто е што контролните транзистори се додаваат во катодите (анодите) на индикаторите:

Не е прикажано на дијаграмот, но помеѓу основите на транзисторите и пиновите на портата на микроконтролерот, неопходно е да се вклучат отпорници, чиј отпор зависи од типот на транзисторот (вредностите на отпорниците се пресметуваат, но може да се обидете да користите и отпорници со номинална вредност од 5-10 kOhm).

Индикацијата со испуштања се врши динамично:
— бинарниот код на соодветната цифра се поставува на излезите на PB портот за првата цифра, потоа логичкото ниво се применува на контролниот транзистор од првата цифра
— бинарниот код на соодветната цифра се поставува на излезите на PB портот за втората цифра, а потоа логичкото ниво се применува на контролниот транзистор од втората цифра
— бинарниот код на соодветната цифра се поставува на излезите на PB-портата за третата цифра, а потоа логичкото ниво се применува на контролниот транзистор од третата цифра
- така во круг
Во овој случај, неопходно е да се земе предвид:
— за индикатори со добросе користи контролна структура на транзистор НПН(контролирано од логичка единица)
- за индикатор со ОП- структурен транзистор ПНП(контролирано со логичка нула)

Од појавата на радио инженерството и електрониката Повратни информацииелектронски уред и лице беше придружено со различни сигнални светла, копчиња, прекинувачи, ѕвона (сигнал за подготвеност за микробранови - динг!). Некои електронски уреди обезбедуваат минимум информации, бидејќи повеќе би било непотребно. На пример, светлечката ЛЕД на вашиот кинески полнач за телефон покажува дека полначот е приклучен и се напојува. Но, постојат и параметри за кои би било попогодно да се обезбедат објективни информации. На пример, температурата на воздухот надвор или времето на будилникот. Да, сето ова може да се направи и со светлечки светилки или LED диоди. Еден степен - една запалена диода или сијалица. Колку степени има, толку многу индикатори се вклучени. Броењето на овие светулки можеби е вообичаена работа, но повторно, колку од овие светла ќе бидат потребни за да се покаже температурата со точност од десетина од степенот? И воопшто, каква област ќе заземат овие LED диоди и светилки на електронски уред?

Практичните уреди за прикажување од седум сегменти мора да имаат најмалку осум надворешни приклучоци за поврзување; седум од нив овозможуваат пристап до поединечни фотоволтаични сегменти, а осмиот обезбедува заедничка врска до сите сегменти. Во првиот случај, уредот е познат како седумсегментен заеднички аноден дисплеј; во вториот случај уредот е познат како седумсегментен обичен катоден дисплеј.

За да се вози заеднички аноден дисплеј, возачот мора да има активен-низок излез, во кој секој погон на сегментот е нормално висок, но оди ниско за да го вклучи сегментот. За да се вози заеднички катоден дисплеј, возачот мора да има активен активен излез.

И на почетокот на дваесеттиот век, со појавата на електронските цевки, се појавија првите индикатори за празнење гас

Со помош на такви индикатори беше можно да се прикажат дигитални информации со арапски бројки. Претходно, токму овие светилки се користеа за правење различни индикации за инструменти и други електронски уреди. Во моментов, елементите за испуштање гас речиси никогаш не се користат никаде. Но, ретрото е секогаш модерно, поради што многу радио аматери собираат прекрасни часовници за празнење гас за себе и за своите најблиски.

Целосното објаснување за ова е малку покомплицирано, како што следува. Кога напонот е нула, сегментот е ефективно невидлив. Меѓутоа, кога влезниот напон е значително позитивен или негативен, сегментот станува ефективно видлив, но ако погонскиот напон се одржува повеќе од неколку стотици милисекунди, сегментот може да стане трајно видлив и да нема понатамошно значење.

Под овие услови, сегментот е оневозможен. Така, сегментот е вклучен под овие услови. Оваа форма на погон е попозната како систем за удвојување на напонот „мост погон“. Редоследот на дејствата на шемата е како што следува. Едноставниот каскаден систем опишан претходно страда од сериозен дефект во тоа што екранот станува заматен за време на вистинскиот период на броење, станува стабилен и читлив само кога секое броење е завршено и влезната порта е затворена. Овој тип на дисплеј „заматен и читан“ е многу досаден за гледање.

Недостатоци на светилките за празнење гас - тие јадат многу. Може да се расправа за издржливоста. На нашиот универзитет сè уште користиме фреквентни мерачи на гасни празнења во лабораториски простории.

Со доаѓањето на LED диоди, ситуацијата драматично се промени. Самите LED диоди трошат мала количина струја. Ако ги поставите на вистинската позиција, можете да прикажете апсолутно какви било информации. За да се истакнат сите арапски бројки, доволно беше само нешто седум (оттука и името индикатор од седум сегменти) светлечки LED ленти наредени на одреден начин:

Слика 13 покажува подобрено коло за бројач на фреквенции кое користи заклучување на екранот за да го надмине горенаведениот дефект. Оваа шема работи на следниов начин. Во исто време, влезната порта се отвора и бројачите почнуваат да ги сумираат импулсите на влезниот сигнал. Овој бројач продолжува точно една секунда, и во овој период четири-битните брави го спречуваат излезот на бројачот да стигне до двигателите на дисплејот; екранот останува стабилен во овој период.

По неколку секунди секвенцата се повторува повторно, при што бројачите се рестартираат и потоа се бројат импулсите на влезната фреквенција за една секунда, при што екранот дава континуирано отчитување на претходното броење итн.

Речиси сите такви седумсегментни индикатори додаваат и осми сегмент - точка, така што е можно да се прикажат цел број и фракциони вредности на кој било параметар

Така, колото на Слика 13 произведува стабилен приказ кој се ажурира еднаш во секунда; во пракса, вистинскиот период на броење на ова и на дијаграмот на Слика 12 може да се направи да биде во која било деценија со повеќекратни или делумни секунди, под услов излезниот приказ да се скалира соодветно.

Имајте предвид дека трицифрениот бројач на фреквенции може да покаже максимални фреквенции од 999 Hz кога се користи временска база од една секунда, 99 kHz кога се користи временска база од 100 ms, 9 kHz кога се користи временска база од 10 ms и 999 kHz кога се користи Временска база од 1 ms.

Теоретски, испаѓа дека е индикатор со осум сегменти, но на старомоден начин се нарекува и седумсегмент и нема грешка во тоа.

Накратко, индикатор од седум сегменти се LED диоди лоцирани релативно едни на други во одреден редослед и затворени во едно куќиште.

Овој метод може да се разбере со помош на сликите 14 и 15. Овие прекинувачи се поврзани заедно и го обезбедуваат вистинското дејство на мултиплексерот и треба да се сметаат како електронски прекинувачи со голема брзина кои постојано се префрлаат низ позициите 1, 2 и низата операции на колото е како што следува. Прво да претпоставиме дека прекинувачот е во позиција.

Неколку моменти подоцна, прекинувачот се преместува во позиција 3, предизвикувајќи приказот 3 да прикаже број по неколку минути, целиот циклус почнува да се повторува повторно и така натаму, додавајќи бесконечност. Во пракса, околу 50 од овие циклуси се случуваат секоја секунда, така што окото не ги гледа дисплеите како се вклучуваат и исклучуваат одделно, туку ги доживува како навидум стабилен приказ кој го покажува бројот 327 или некој друг број диктиран од сегментот на податоци.

Ако го земеме предвид дијаграмот на еден индикатор од седум сегменти, тоа изгледа вака:

Како што гледаме, индикаторот од седум сегменти може да биде или со заедничка анода (CA), така и со заедничка катода (OC). Грубо кажано, ако имаме седум-сегмент со заедничка анода (ОА), тогаш во колото треба да закачиме „плус“ на оваа игла, а ако со заедничка катода (OC), тогаш „минус“ или заземјување . На кој игла ќе ставиме напон, оваа LED ќе светне. Сето ова да го покажеме во пракса.

Во практичните мултиплексери, врвната струја на екранот е доста висока за да се обезбеди доволна осветленост на екранот. На сл. Слика 15 покажува пример на подобрен метод на мултиплексирање применет на трицифрен бројач на фреквенции. Овој метод има две главни предности.

Ако овие терминали се активни високо, тие ќе ги имаат следните карактеристики. Сл. 18 и 19. Слика 18 ја прикажува техниката на потиснување на бранување што се користи за да се обезбеди водечка нула потиснување на четирицифрен дисплеј што чита количина.

Ги имаме следните LED индикатори на залиха:

Како што можеме да видиме, уредите со седум сегменти можат да бидат единечни и повеќебитни, односно два, три, четири седумсегментни уреди во еден случај. За да провериме модерен уред од седум сегменти, потребен ни е само мултиметар со функција за тестирање на диоди. Бараме општ заклучок - може да биде или ОП или ОК - по случаен избор и потоа ги разгледуваме перформансите на сите сегменти од индикаторот. Го проверуваме трибитниот седум-сегмент:

Така, екранот се прикажува. Во основа, тие се лесни за употреба, ги напојуваат и светнуваат. Тие можат да бидат досадни бидејќи имаат некаков поларитет, што значи дека ќе работат само ако правилно ги поврзете. Ако го откажете позитивниот и негативниот напон, тие воопшто нема да светнат.

Колку и да е досадно, исто така е доста корисно. Другата жица е катодата. Катодата е поврзана со земјата. Во суштина, ќе се сведе на тоа. За заедничка катода, применувате струја на пиновите што сакате да ги вклучите. Мултиплексирање. Постојат дури и контролери за дисплеј за ова ако не сакате да се грижите за префрлување на вашиот софтвер.

Упс, еден сегмент се запали, па на ист начин ги проверуваме и другите сегменти.

Понекогаш напонот на цртаниот филм не е доволен за проверка на сегментите на индикаторот. Затоа, го земаме напојувањето, го поставуваме на 5 волти, прикачуваме отпорник од 1-2 kiloOhm на еден терминал на напојувањето и започнуваме да ја проверуваме единицата со седум сегменти.

Контрола на екранот од 7 сегменти

Значи, кога имате 4-цифрен, мултиплексиран 7 сегмент, заедничка анода. Прво, треба да знаеме каков тип на дисплеј имаме, бидејќи постојат две можни форми: заедничка катода и заедничка анода. Работи што ќе ви требаат за ова упатство. Лево: Графички приказ на 7-сегментен дисплеј што прикажува еден општ распоред за внатрешните жици и локациите на пиновите.

Во овој момент, обрнете внимание на почетниот излез, бидејќи ќе ви треба подоцна при вчитување на програмата. Ако екранот беше обична катода, ние би го откажале. На дното на статијата е фотографија од колата што оди на мојот прототип на таблата. Обезбедуваме и библиотека за контрола на повеќе од еден приказ.

Зошто ни е потребен отпорник? Кога ќе се примени напон на ЛЕР, таа почнува нагло да троши струја кога ќе се вклучи. Затоа, во овој момент може да изгори. За да се ограничи струјата, отпорник е поврзан во серија со ЛЕР. Можете да прочитате повеќе во оваа статија.

Хексадецимален број на еден дисплеј од 7 сегменти

Негативна страна е тоа што тие се интензивни за ресурси. Овој конкретен дисплеј има четири цифри и два дисплеи со две точки. Сепак, уредот исто така обезбедува дигитална контролаприкажување на осветленоста преку внатрешен модулатор на широкопојасен опсег. Во такви случаи, излезот може да се направи на повеќе дисплеи од 7 сегменти.

Ова ги зачувува контактите на куќиштето, а потоа и на контролата. Соодветно на тоа, се наведени вообичаени анодни или обични катодни прикази. Излезот што одговара на сегмент или децимална точка најдобро се извлекува од листот со податоци за прикажување. Екранот од 7 сегменти кој е оценет за вообичаените 10-20 mA сè уште ќе светне, иако слабо. Но, ова не бара доделување контакти. Следната распределба на овој сегмент се заснова на.

На ист начин го проверуваме четирицифрениот седумсегмент од кинеско радио

Мислам дека не треба да има некои посебни тешкотии со ова. Во кола, кола од седум сегменти се поврзани со отпорници на секоја игла. Ова исто така се должи на фактот дека LED диодите, кога на нив се применува напон, френетично трошат струја и изгоруваат.

Ако се користи различна намена, тоа е можно во принцип, но мора да се земе предвид при програмирање. Конвертирањето на поединечни цифри во одредена излезна шема може да се направи со помош на нешто што се нарекува. Сите други сегменти треба да бидат темни. Ако ова поле за избор е означено за сите цифри, се дава следната табела.

ВО тест програмаброевите од 0 до 9 се прикажуваат последователно на 7-сегментен екран. Излезниот број се чува во регистерски бројач и се зголемува за 1 во рамките на циклусот. Ако регистарот достигне вредност од 10, тој повторно се ресетира на 0. Откако ќе се подигне, се појавува циклус на чекање што осигурува дека поминало одредено време во следното издание. Нормално, не би правеле толку долги циклуси на чекање, но тука не се работи за чекање, туку за контролирање на екран од 7 сегменти. Користењето тајмер за ова е премногу напор.

Во нашиот модерен свет, уредите од седум сегменти веќе се заменуваат со LCD индикатори кои можат да прикажуваат сосема различни информации

но за да ги користите, потребни ви се одредени вештини во дизајнот на кола на такви уреди. Засега нема ништо поедноставно или поевтино од седумсегментните LED индикатори.

Вистинскиот проблем, а со тоа и интересниот дел од овој напис, сепак, се јавува директно по јамката на етикетата. Ве молиме имајте предвид дека вредноста на бројачот мора да се удвои. Ова е директно поврзано со фактот дека флеш меморијата се однесува на зборови, а не на бајти. Вториот пример на оваа страница го прави тоа поинаку. Покажува како, преку друг запис во табела, генерирањето бајти за полнење може да се спречи од асемблерот. Интересно е и тоа што за пресметката е потребен регистар кој ја содржи вредноста 0.

Затоа, оваа константа мора прво да се вчита во регистар и дури потоа може да се изврши собирање со користење на овој регистар. Интересното е што овој факт се наоѓа во многу програми, а константите во огромното мнозинство на случаи се константата 0. Затоа, многу програмери од самиот почеток резервираат регистар за ова и го нарекуваат нулти регистар.

Во оваа статија ќе зборуваме за дигитален дисплеј.
Седумсегментните LED индикатори се дизајнирани да прикажуваат арапски бројки од 0 до 9 (сл. 1).

Таквите показатели се едноцифрени, кои прикажуваат само еден број, но може да има повеќе групи од седум сегменти комбинирани во едно куќиште (повеќецифрена). Во овој случај, броевите се одделени со децимална точка (сл. 2)

За жал, има проблем затоа што на екранот се потребни осум порти - четири реклами ќе бараат 32 порти. Но, постојат неколку начини. Регистрите на Shift се веќе опишани во друго упатство. Ова би го олеснило создавањето на потребните 32 излезни линии со само три пина. Принципот на контрола не се разликува од возењето на единечен 7-сегментен дисплеј, само начинот на кој „излезните пинови“ се приближуваат до нивните вредности е различен и се одредува со употреба на регистри за смена. На овој моментсепак, мора да се прикаже друга контролна опција.



Сл.2.

Индикаторот се нарекува седум-сегмент поради фактот што прикажаниот симбол е изграден од седум одделни сегменти. Внатре во куќиштето на таков индикатор има LED диоди, од кои секоја го осветлува својот сегмент.
Проблематично е да се прикажуваат букви и други симболи на таквите индикатори, затоа за овие цели се користат индикатори од 16 сегменти.

Ќе го разгледаме мултиплексирањето повторно подолу. Мултиплексирањето значи дека не се вклучени сите четири дисплеи истовремено, туку само еден во исто време кратко време. Ако промената помеѓу дисплеите се случи побрзо отколку што ние луѓето можеме да го замислиме, изгледа дека сите четири светла работат истовремено, иако само едно е запалено за еден краток временски период. На овој начин, четири дисплеи можат да споделуваат поединечни сегменти, а се што е потребно е 4 дополнителни контролни линии за 4-те дисплеи со кои е овозможен дисплејот.

Еден аспект на овој тип на контрола е фреквенцијата на мултиплексирање, односно целосниот циклус на премин од еден дисплеј на друг. Треба да биде доволно висока за да спречи треперење на екранот. Човечкото око е слабо, во кино 24 фрејмови во секунда, со телевизорот да биде на безбедна страна што и фотографиите се мирни, секој сегмент мора да се контролира најмалку 100 Hz, така што се поврзува најмалку на секои 10 ms. Меѓутоа, во исклучителни случаи, дури и 100 Hz сè уште може да трепкаат, како на пример кога екранот се движи брзо или кога се појавуваат пречки со вештачки извори на светлина што работат со наизменична струја.

LED индикаторите доаѓаат во два вида.
Во првата од нив, сите катоди, т.е. негативните приклучоци на сите LED диоди се комбинираат заедно и за нив се доделува соодветен терминал на куќиштето.
Останатите терминали на индикаторот се поврзани со анодата на секоја LED (слика 3, а). Ова коло се нарекува „заедничко катодно коло“.
Исто така, постојат индикатори во кои LED диодите на секој сегмент се поврзани според коло со заедничка анода (слика 3, б).



Сл.3.

Секој сегмент е означен со соодветна буква. Слика 4 ја покажува нивната локација.

Сл.4.

Како пример, земете го двоцифрениот индикатор со седум сегменти GND-5622As-21 со црвена боја. Патем, има и други бои, во зависност од моделот.
Користејќи батерија од три волти, можете да вклучите сегменти, а ако комбинирате група иглички во куп и напојувате на нив, можете дури и да прикажувате броеви. Но, овој метод е незгоден, така што се користат регистри за смена и декодери за контрола на индикаторите од седум сегменти. Исто така, често, игличките на индикаторот се поврзани директно со излезите на микроконтролерот, но само кога се користат индикатори со мала потрошувачка на струја. Слика 5 покажува фрагмент од коло користејќи PIC16F876A.



Сл.5.

За контрола на индикаторот со седум сегменти, често се користи декодерот K176ID2.
Овој чип е способен да конвертира бинарен код кој се состои од нули и единици во децимални цифри од 0 до 9.

За да разберете како функционира сето тоа, треба да составите едноставно коло (сл. 6). Декодерот K176ID2 е сместен во пакет DIP16. Има 7 излезни пинови (пинови 9 - 15), секоја посветена на одреден сегмент. Контролата на точките не е обезбедена овде. Микроциркулата има и 4 влезови (пинови 2 - 5) за снабдување на бинарен код. 16-тиот и 8-от иглички се испорачуваат со моќност плус и минус, соодветно. Останатите три заклучоци се помошни, за нив ќе зборувам малку подоцна.



Сл.6.

DD1 - K176ID2
R1 - R4 (10 - 100 kOhm)
HG1 - GND-5622As-21

Во колото има 4 преклопни прекинувачи (можни се сите копчиња), кога ќе ги притиснете, логичен се испорачува на влезовите на декодерот од напојувањето плус. Патем, самиот микроспој се напојува со напон од 3 до 15 волти. Во овој пример, целото коло се напојува со напојување од 9 волти.

Во колото има и 4 отпорници. Тоа се таканаречените отпорници за повлекување. Тие се потребни за да се осигура дека логичкиот влез е низок кога нема сигнал. Без нив, отчитувањата на индикаторот може да не се прикажуваат правилно. Се препорачува да се користи истотоотпорност од 10 kOhm до 100 kOhm.

На дијаграмот, пиновите 2 и 7 на индикаторот HG1 не се поврзани. Ако го поврзете DP пинот на минус напојувањето, децималната точка ќе светне. И ако примените минус на излезот Dig.2, тогаш втората група сегменти исто така ќе светне (ќе го покаже истиот симбол).

Влезовите на декодерот се дизајнирани на таков начин што за прикажување на броевите 1, 2, 4 и 8 на индикаторот, треба само да притиснете едно копче (распоредот има прекинувачи што одговараат на влезовите D0, D1, D2 и D3). Ако нема сигнал, се прикажува бројот нула. Кога ќе се примени сигнал на влезот D0, се прикажува бројот 1. И така натаму. За да прикажете други броеви, треба да притиснете комбинација од прекинувачи. Табела 1 ќе ни каже кои треба да ги притиснеме.


Табела 1.

За да го прикажете бројот „3“, треба да примените логичен на влезот D0 и D1. Ако примените сигнал на D0 и D2, ќе се прикаже бројот „5“.(сл. 6).



Сл.6.

Еве една проширена табела во која ја гледаме не само очекуваната бројка, туку и оние сегменти (а - g) што ќе ја сочинуваат оваа бројка.



Табела 2.

1-ви, 6-ми и 7-ми пинови на микроциркутот се помошни (S, M, K, соодветно).

На дијаграмот (слика 6), 6-тиот пин „М“ е заземјен (до напојувањето минус) и има позитивен напон на излезот од микроспојот за работа со индикатор со заедничка катода. Ако се користи индикатор со заедничка анода, тогаш треба да се примени на 6-тиот пин.

Ако се примени логично на 7-та игла „K“, тогаш знакот на индикаторот е изгаснат, нула дозволува индикација. Во шемата овој заклучокзаземјен (до напојување минус).

На првиот излез од декодерот се испорачува логичка единица (плус моќност), што овозможува конвертираниот код да се прикаже на индикаторот. Но, ако примените логичка нула на оваа игла (S), влезовите ќе престанат да примаат сигнал, а моменталниот прикажан знак ќе се замрзне на индикаторот.

Една интересна работа што треба да се забележи е дека знаеме дека прекинувачот D0 го вклучува бројот „1“, а прекинувачот D1 го вклучува бројот „2“. Ако ги притиснете двата прекинувачи, ќе се прикаже бројот 3 (1+2=3). И во други случаи, индикаторот го прикажува збирот на броевите што ја сочинуваат оваа комбинација. Доаѓаме до заклучок дека влезовите на декодерот се подредени смислено и имаат многу логични комбинации.

Можете исто така да го гледате видеото за оваа статија.

Ајде да поврземе LED индикатор од седум сегменти со плочката Arduino и да научиме како да го контролираме со помош на библиотеката Led4Digits.h.

Претходната лекција детално опишани микроконтролери. Ајде да поврземе таков индикатор со плочката Arduino.

Дијаграмот за поврзување на индикаторот со плочката Arduino изгледа вака.

Го составив на табла.

За да управувам со индикаторите, ја напишав библиотеката Led4Digits.h:

И плати.

Библиотеката ви овозможува да управувате со индикатори од седум сегменти:

  • со големина до четири цифри;
  • со какви било варијанти на контролни пулсни поларитети (сите);
  • работи во паралелен процес;
  • ви овозможува да прикажете на индикаторот:
    • сегменти од секоја категорија;
    • цифрата на секоја цифра;
    • цел број 0 ... 9999;
  • за да излезе цел број, може да се наведе бројот на цифри;
  • Постои режим за потиснување на незначителни цифри.

Можете да ја преземете библиотеката Led4Digits.h од оваа врска:

И плати. Само 40 рубли. месечно за пристап до сите ресурси на страницата!

Како да инсталирате е напишано во.

Нема да ги дадам изворните текстови. Можете да ги побарате во датотеките на библиотеката. Како и секогаш, таму има многу коментари. Ќе опишам детално, со примери, како се користи библиотеката.

LED контролна библиотека за Arduino Led4Digits.

Еве го описот на класата. Дадов само јавни методи и својства.

класа Led4Digits (
јавност:
цифра на бајт; // кодови за контрола на бит сегмент
void regen(); // регенерација, методот мора да се нарекува редовно
void tetradToSegCod(бајт копање, бајт тетрада); // конвертирање на тетрад во сегментни кодови
булова печатење (непотпишана int вредност, бајт цифра Num, бајт празно); // излез од цел број



} ;

Конструктор.

Led4Digits (тип на бајтLed, бајт цифренPin0, бајт цифраPin1, бајт цифраPin2, бајт цифраPin3,
бајт segPinA, бајт segPinB, бајт segPinC, бајт segPinD,
бајт segPinE, бајт segPinF, бајт segPinG, бајт segPinH);

типLedПоставува контролни пулсни поларитети за сигналите за избор на битови и сегменти. Поддржува какви било шеми за поврзување ().

типLed Избор на категорија Избор на сегмент Тип на коло
0 -_- -_- Заедничка анода со копчиња за избор на празнење
1 _-_ -_- Заедничка анода
2 -_- _-_ Заедничка катода
3 _-_ _-_ Заедничка катода со копчиња за избор на празнење

цифренПин0...цифренПин3– излези за избор на цифри. Ако digitPin = 255, тогаш цифрата е оневозможена. Ова ви овозможува да поврзете индикатори со помалку цифри. digitPin0 – ниска (десна) цифра.

segPinA...segPinH– излези за контрола на сегментот.

На пример,

значи: индикатор тип 1; излези за празнење 5,4,3,2; излези на сегменти 6,7,8,9,10,11,12,13.

void regen() метод

Методот мора да се повикува редовно во паралелен процес. Ја регенерира сликата на индикаторите. Времето на циклусот на регенерација е еднакво на периодот на повикување на методот помножен со бројот на битови.

На пример,

// управувач со прекини 2 ms
void timerInterrupt() (
disp.regen(); // регенерација на индикаторот
}

Бајт цифрена низа

Ја содржи состојбата на сегментите. цифрата е најмалку значајниот бит, најмалку значајниот бит на цифрата е сегментот „А“ од најмалку значајниот бит. Бит-состојба од 1 значи дека сегментот е осветлен.

На пример,

цифра = B0000101;

значи дека во втората цифра светат отсечките „А“ и „Ц“.

Пример за програма која последователно ги осветлува сите сегменти од секоја цифра.

// трчање сегменти
#вклучи
#вклучи

//
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

празнина поставка() (
прекин на тајмерот 2 ms
MsTimer2::start(); // прекини овозможи
}

празнина јамка() (
за (int i = 0; i< 32; i++) {
ако (i == 0) дисп.цифрена= 1;
друго ако (i == 8) дисп.цифрена= 1;
друго ако (i == 16) disp.digit= 1;
друго ако (i == 24) дисп.цифрена= 1;
друго (
дисп.цифрена = дисп.цифра<< 1;
дисп.цифрена = дисп.цифра<< 1;
дисп.цифрена = дисп.цифра<< 1;
дисп.цифрена = дисп.цифра<< 1;
}
доцнење (250);
}
}

//управувач со прекини 2 ms
void timerInterrupt() (
disp.regen(); // регенерација на индикаторот
}

Во цифрената низа, 1 се поместува и индикаторите го прикажуваат тоа.

Методот void tetradToSegCod (бајт копање, бајт тетрада)

Методот ви овозможува да прикажувате броеви и букви од хексадецимален код во поединечни цифри. Има аргументи:

  • копаат – цифрен број 0 ... 3;
  • тетрада – код за децимален карактер. Кодот 0 ќе го прикаже бројот „0“, кодот 1 - бројот „1“, кодот 14 - буквата „Е“.

На пример,

тетрада (2, 7);

ќе го прикаже бројот „7“ во третата цифра.

Пример за програма која ги менува знаците во секоја цифра по ред.

// броеви еден по еден
#вклучи
#вклучи

// индикатор тип 1; излези за празнење 5,4,3,2; сегментни излези 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

празнина поставка() (
MsTimer2::set(2, timerInterrupt); // прекин на тајмерот 2 ms
MsTimer2::start(); // прекини овозможи
}

празнина јамка() (
за (int i = 0; i< 64; i++) {
disp.tetradToSegCod(i>>4, i);
доцнење (250);
}
}

// управувач со прекини 2 ms
void timerInterrupt() (
disp.regen(); // регенерација на индикаторот
}

Булово печатење на методот (непотпишана int вредност, бајт цифра Num, бајт празно)

Методот прикажува цел број на индикаторите. Го претвора бинарниот број во BCD за секоја цифра. Има аргументи:

  • вредност – бројот што се прикажува на индикаторот.
  • digitNum – број на цифри за бројот. Ова не треба да се меша со бројот на цифри на индикаторот. Можеби ќе сакате да прикажете број на 2 цифри, а на другите две да прикажувате знаци со помош на цифра.
  • празно - знак за потиснување на незначителни цифри. blank=0 значи дека бројот треба да се прикаже со сите нули. Бројот „7“ ќе изгледа како „0007“. Ако празното е различно од 0, незначителни нули ќе бидат потиснати.

Ако вредноста на бројот го надминува дозволениот број за избраниот број цифри (digitNum), тогаш функцијата ќе прикаже „---“ на индикаторот и ќе врати false.

Пример за излезна програма со броеви.

// излезен број
#вклучи
#вклучи

// индикатор тип 1; излези за празнење 5,4,3,2; сегментни излези 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

празнина поставка() (
MsTimer2::set(2, timerInterrupt); // прекин на тајмерот 2 ms
MsTimer2::start(); // прекини овозможи
}

празнина јамка() (
за (int i = 0; i< 12000; i++) {
disp.print(i, 4, 1);
одложување (50);
}
}

// управувач со прекини 2 ms
void timerInterrupt() (
disp.regen(); // регенерација на индикаторот
}

Последните два методи не ја менуваат состојбата на сегментот „H“ - децимална точка. За да ја промените состојбата на точка, можете да ги користите командите:

цифра |= 0x80; // запали децимална точка
цифра &= 0x7f; // изгаснете ја децималната точка

Излез на индикатори за негативни броеви (int).

Негативните броеви може да се излезат на следниов начин:

  • Проверете го знакот на бројот.
  • Ако бројот е негативен, тогаш отпечатете знак минус на најзначајната цифра и променете го знакот на бројот во позитивен во функцијата print().
  • Ако бројот е позитивен, тогаш исклучете го битот за знак и испечатете го бројот користејќи ја функцијата print().

Еве програма која го демонстрира овој метод. Изведува броеви од -999 до 999.

// излези негативни броеви
#вклучи
#вклучи

// индикатор тип 1; излези за празнење 5,4,3,2; сегментни излези 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

празнина поставка() (
MsTimer2::set(2, timerInterrupt); // прекин на тајмерот 2 ms
MsTimer2::start(); // прекини овозможи
}

празнина јамка() (

за (int i = -999; i< 1000; i++) {

ако јас< 0) {
// бројот е негативен
disp.digit= B01000000; // знак -
disp.print(i * -1, 3, 1);
}
друго (
disp.digit= B00000000; // исчистете го знакот
disp.print(i, 3, 1);
}

одложување (50);
}
}

// управувач со прекини 2 ms
void timerInterrupt() (
disp.regen(); // регенерација на индикаторот
}

Излез на индикатори на дробни броеви, пловечки формат.

Постојат многу начини за прикажување на броеви со подвижна запирка (плови) користејќи стандардни функции на јазикот C. Ова е, пред сè, функцијата sprint(). Работи многу бавно, бара дополнителни конверзии на кодови на знаци во бинарни децимални кодови, треба да извлечете точка од низа. Истите проблеми со другите функции.

Јас користам различен метод за прикажување на вредностите на float променливите на индикаторите. Методот е едноставен, сигурен, брз. Се намалува на следните операции:

  • Бројот на подвижна запирка се множи со 10 до моќта што одговара на потребниот број на децимални места. Ако треба да прикажете 1 децимална точка на индикаторите, помножете се со 10, ако 2, потоа помножете се со 100, 3 децимали со 1000.
  • Следно, бројот на подвижна запирка експлицитно се претвора во цел број (int) и се прикажува на индикаторите користејќи ја функцијата print().
  • Во потребната цифра се става точка.

На пример, следните линии ќе излезат пловечка променлива со две децимални места на седум-сегментните LED диоди.

плови x = 2,12345;

дисп.цифра |= 0x80; //

Бројот го множиме со 100, а со ставање точка во третата цифра, резултатот го делиме со 100.

Еве програма која прикажува броеви со подвижна запирка од 0,00 до 99,99 на индикаторите.

// излез со подвижна запирка
#вклучи
#вклучи

// индикатор тип 1; излези за празнење 5,4,3,2; сегментни излези 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

празнина поставка() (
MsTimer2::set(2, timerInterrupt); // прекин на тајмерот 2 ms
MsTimer2::start(); // прекини овозможи
}

празнина јамка() (
плови x = 0;

за (int i = 0; i< 10000; i++) {
x += 0,01;

disp.print ((int) (x * 100.), 4, 1);
дисп.цифра |= 0x80; // осветлете ја точката на трето ниво

одложување (50);
}
}

//управувач со прекини 2 ms
void timerInterrupt() (
disp.regen(); // регенерација на индикаторот
}

Како што можете да видите, библиотеката Led4Digits.h значително ја поедноставува работата со седумсегментни индикатори за диоди кои емитуваат светлина (LED) поврзани со плочката Arduino. Не најдов аналог на таква библиотека.

Постојат библиотеки за работа со LED дисплеи преку регистер за смена. Некој ми напиша дека нашле библиотека која работи со LED дисплеј директно поврзан со плочката на Arduino. Но, кога го користите, цифрите на индикаторот светат нерамномерно и намигнуваат.

За разлика од неговите аналози, библиотеката Led4Digits.h:

  • Работи како паралелен процес. Во главниот циклус, програмата вчитува податоци во одредени променливи, кои автоматски се прикажуваат на екранот. Излезот на информации и регенерацијата на индикаторот се случуваат во прекин на тајмерот, невидлив за главната програма.
  • Броевите на екранот светат рамномерно, без да трепкаат. Ова својство е обезбедено со фактот дека регенерацијата се случува во циклус строго дефиниран со прекин на тајмерот.
  • Библиотеката има компактен код, брзо се извршува и минимално го вчитува контролерот.

Во следната лекција, истовремено ќе поврземе LED индикатор и матрица на копчиња на таблата Arduino. Ајде да напишеме библиотека за таков дизајн.

Категорија: . Можете да го обележите.


Врв