Схема для підключення семисегментний 4 розрядний Ардуіно. Семисегментний індикатор. Як перевірити семисегментний індикатор

Семисегментні світлодіодні індикатори дуже популярні серед пристроїв відображення цифрових значень і знаходять застосування в передніх панелях мікрохвильових печей, пральних машин, цифрових годинниках, лічильниках, таймерах і ін. У порівнянні з РК індикаторами, сегменти світлодіодного індикатора світяться яскраво і помітні на великій відстані і при широкому куті огляду. Для підключення семисегментного 4-розрядного індикатора до мікроконтролера буде потрібно, принаймні, 12 ліній введення / виводу. Тому використовувати дані індикатори з мікроконтролерами з малою кількістю висновків, наприклад серії від компанії, практично неможливо. Звичайно, можна використовувати різні методи мультиплексування (опис яких можна знайти на сайті в розділі "Схеми"), але і в цьому випадку є певні обмеження для кожного методу, і часто в них використовуються складні програмні алгоритми.

Ми розглянемо метод підключення індикатора по інтерфейсу SPI, який зажадає всього 3 лінії введення / виводу мікроконтролера. При цьому збережеться управління всіма сегментами індикатора.

Для підключення 4-розрядного індикатора до мікроконтролера по SPI шині використовується спеціалізована мікросхема-драйвер виробництва компанії. Мікросхема здатна управляти вісьмома семисегментними індикаторами з загальним катодом і має в своєму складі 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-значення

ні операції

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

кількість індикаторів

вимкнення

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

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

Мікросхема 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 = 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. Використовуваний мікроконтролер -, інтерфейс реалізований програмно, сигнальні лінії CS, MOSI і CLK модуля індикатора підключені до портів GP0, GP1 і GP2, відповідно. Використовується компілятор mikroC для PIC мікроконтролерів (mikroElektronika

Для коментування матеріалів з сайту і отримання повного доступу до нашого форуму Вам необхідно зареєструватися .

Доброго вам дня! Після мого затяжного і вимушеної перерви, продовжимо освоєння курсу «Програмування Ардуіно». В одному з наших попередніх уроків, ми вже працювали з послідовністю світлодіодів, тепер пора переходити до наступного етапу навчання. Темою сьогоднішньої статті буде - 7-сегментний індикатор.

Знайомство з 7-сегментним індикатором буде складатися з двох частин. У першій частині ми поверхово «пробіжимося» по теоретичної складової, попрацюємо з «залізом» і напишемо простенькі програмки.

Минулого разу ми працювали з послідовністю з 8 світлодіодів, сьогодні їх також буде 8 (7 - світлодіодних смужок і 1 точка). На відміну від попередньої послідовності, елементи цього набору не збудовані в ряд (одна за одною), а розташовані в певному порядку. Завдяки чому використовуючи лише один компонент можна вивести 10 цифр (від 0 до 9).

Ще одна істотна відмінність, що виділяє даний індикатор на тлі простих світлодіодів. У нього загальний катод (вірніше дві рівноцінні ніжки 3 і 8, на який заведено катод). Достатньо всього лише з'єднати один з катодів з землею ( GND). Аноди у всіх елементів індикатора індивідуальні.

Невеликий відступ. Все вище сказане відноситься до 7-сегментним індикаторами з загальним катодом. Однак існують індикатори із загальним анодом. Підключення таких індикаторів має суттєві відмінності, тому прошу не плутати «грішне з праведним». Необхідно чітко розуміти, який саме тип семісегментніка у вас в руках!

Крім відмінностей між простими світлодіодами і 7-сегментними індикаторами, є і загальні риси. Наприклад: індикатори, як і світлодіоди, можна змонтувати в ряд (послідовність) для відображення двох-, трьох-, чотиризначних чисел (розрядів). Однак не раджу сильно заморочуватися з приводу самостійної збірки сегментних наборів. У продажу «поруч» з однорозрядного індикаторами, продаються і багаторозрядні.

Сподіваюся, ви не забули про необхідність використання токоограничивающих резисторів при підключенні світлодіодів. Це саме можна сказати і до індикаторів: на кожен елемент індикатора повинен бути підключений свій резистор. 8 елементів (7 + 1) - 8 резисторів.

У мене під рукою виявився семісегментнік з маркуванням 5161AS (загальний катод). Терморегулятори контактів:



Принципова схема

Як говорив раніше, для того, щоб включити сегмент «А» підключимо до будь-якого загального контакту (3 або 8) «землю», а на висновок 7 подамо 5В харчування. Якщо індикатор із загальним анодом, то на анод подаємо 5В, а на висновок сегмента «землю»!

Зберемо тестовий стенд. З'єднуємо дроти по порядку, починаючи з першої ніжки, яка йде на 2-й висновок плати Ардуіно. Землю підключимо до 8 висновку індикатора.

Після того, як стенд зібраний можна приступати до написання прошивки.

Для перевірки індикатора запустимо написану програму. Виберемо елемент «А» і моргнути ім.


Тепер моргнути цифрою 2. Для цього включимо ще кілька елементів.

Щоб вивести одну цифру, потрібно написати n-число рядків коду. Скрутно, чи не так.

Є інший шлях. Для того, щоб вивести будь-яку цифру на індикаторі, спочатку її потрібно представити у вигляді певної послідовності біт.

Таблиця відповідності.

Якщо у дисплея загальний анод, то 1 потрібно замінити на 0, а 0 - на 1!

Стовпець hex - уявлення цифри в байтовому вигляді (більш детально поговоримо про це в другій частині).

Число в двійковій системі числення записується в такий спосіб: 0b00000000. 0b- двійкова система. Нулі означають, що всі світлодіоди вимкнені.

При підключенні ми задіяли висновки з 2 по 9. Щоб включити 2 висновок записуємо в нього одиницю = 0b00000001.За точку відповідає четвертий біт праворуч. За риску посередині індикатора відповідає найостанніший біт.

Давайте напишемо приклад виведення цифри 0.

Для зменшення кількості набраних рядків скористаємося циклом, який дозволяє «перебрати» всі 8 біт. змінної Enable_segmentприсвоюється значення зчитує біта. Після цього поточний висновок встановлюється у відповідний режим ( наявності або відсутності сигналу).

Примітка: функція bitRead () зчитує стан зазначеного біта і повертає значення стану (0 або 1).bitRead (x, n)де, x - число, біт якого необхідно вважати; n - номер біта, стан якого необхідно вважати. Нумерація починається з молодшого значущого біта (крайнього правого) з номером 0.

І в завершенні першої частини напишемо невеликий лічильник.

З часів появи радіотехніки й електроніки зворотний зв'язок електронного пристрою і людини супроводжувалася різними сигнальними лампочками, кнопками, тумблерами, дзвінками (сигнал готовності мікрохвильовки - Дзинь!). Деякі електронні девайси видають мінімум інформації, тому як більше було б зайвим. Наприклад, що світиться светодіодик у вашій китайської зарядки для телефону говорить про те, що зарядка включена в мережу і в неї надходить напруга. Але є і такі параметри, для яких було б зручніше видавати об'єктивну інформацію. Наприклад, температура повітря на вулиці або час на будильнику. Так, все це можна було б зробити також на світяться лампочках або світлодіодах. Один градус - один палаючий діодік або лампочка. Скільки градусів - стільки і палаючих індикаторів. Вважати ці світлячки - це справа може бути і звичне, але скільки знову ж треба буде таких Свєтіков, щоб показати температуру з точністю до десятої частки градуса? Та й взагалі, яку площу займатимуть ці світлодіоди і лампочки на електронному девайсе?

Практичні семисегментні пристрої відображення повинні мати не менше восьми зовнішніх сполучних клем; сім з них дають доступ до окремих фотоелектричним сегментам, а восьма забезпечує загальне з'єднання з усіма сегментами. У першому випадку пристрій відомо як семисегментний дисплей загального анода; в останньому випадку пристрій відомо як семисегментний дисплей із загальним катодом.

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

І ось на початку двадцятого століття, з появою електронних ламп з'явилися перші газорозрядні індикатори

За допомогою таких індикаторів можна було вивести цифрову інформацію в арабських цифрах. Раніше саме на цих лампах робили різну індикацію для приладів і інших електронних пристроїв. В даний час газорозрядні елементи майже вже ніде не застосовуються. Але ретро - це завжди модно, тому багато радіоаматори збирають для себе і своїх близьких прекрасні годинник на газоразрядніках.

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

У цих умовах сегмент відключається. Таким чином, сегмент включений в цих умовах. Ця форма приводу зазвичай відома як система «мостового приводу» з подвоєнням напруги. Послідовність дій схеми наступна. Проста каскадна система, описана раніше, страждає від серйозного дефекту, оскільки дисплей стає розмитим під час фактичного періоду підрахунку, стаючи стабільним і читаним тільки тоді, коли кожен лічильник завершений і вхідний затвор закритий. Цей «розмитий і читається» тип дисплея дуже дратує, щоб дивитися.

Мінуси газорозрядних ламп - їдять багато. Про довговічність можна і посперечатися. У нас в універі досі в лаборантських кабінетах експлуатують частотоміри на газоразрядніках.

З появою світлодіодів ситуація змінилася кардинально. Світлодіоди самі по собі жеруть маленький струм. Якщо розставити їх в потрібне положення, то можна висвічувати абсолютно будь-яку інформацію. Для того, щоб висвітлити всі арабські цифри було досить всього-то сім (Звідси і назва семисегментний індикатора) світяться світлодіодних смужок, виставлених певним чином:

На малюнку 13 показана вдосконалена схема лічильника частоти, яка використовує блокування дисплея для подолання вищезгаданого дефекту. Ця схема працює в такий спосіб. Одночасно відкривається вхідний затвор, і лічильники починають підсумувати імпульси вхідного сигналу. Цей лічильник триває рівно через одну секунду, і протягом цього періоду четирехбітовие засувки не дозволяють вихідним сигналам лічильника надходити на драйвери дисплея; при цьому дисплей залишається стабільним протягом цього періоду.

Через кілька секунд послідовність повторюється знову, при цьому лічильники перезавантажуються, а потім підраховують імпульси вхідний частоти протягом однієї секунди, протягом яких дисплей дає постійне зчитування результатів попереднього рахунку і т.д.

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

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

Зверніть увагу, що тризначний частотомер може вказувати максимальні частоти 999 Гц при використанні односекундного бази, 99 кГц при використанні 100 мс тимчасової бази, 9 кГц при використанні тимчасової бази 10 мс і 999 кГц при використанні 1 мс тимчасової бази.

по ідеї виходить восьми сегментний індикатор, але по-старому його також називають семісегментним, і помилки в цьому немає.

Коротше, семисегментний індикатор - це світлодіоди, розташовані один щодо одного в певному порядку і запендюренние в один корпус.

Цей метод можна зрозуміти за допомогою малюнків 14 і 15. Ці перемикачі пов'язані один з одним і забезпечують дійсне дію мультиплексора і повинні розглядатися як швидкодіючі електронні перемикачі, які багаторазово перемикаються через позиції 1, 2, і послідовність операцій схеми наступна. Припустимо спочатку, що перемикач знаходиться в положенні.

Кілька хвилин по тому перемикач переходить в стан 3, змушуючи дисплей 3 відображати число через кілька хвилин, весь цикл починає повторюватися знову і так далі, додаючи нескінченність. На практиці близько 50 з цих циклів відбуваються кожну секунду, тому око не бачить, що дисплеї вмикаються і вимикаються окремо, але сприймають їх як явно стійкий дисплей, який показує номер 327, або будь-якої іншої номер продиктований сегментом дані.

Якщо розглянути схему одиночного семисегментний індикатора, то вона виглядає ось так:

Як ми бачимо, семисегментний індикатор може бути як з загальним анодом (ОА), Так і з загальним катодом (ОК). Грубо кажучи, якщо семісегментнік у нас із загальним анодом (ОА), то в схемі ми повинні на цей висновок вішати "плюс", а якщо з загальним катодом (ОК) - то "мінус" або землю. На який висновок ми подамо напруга, такий светодіодик у нас і загориться. Давайте все це продемонструємо на практиці.

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

Якщо ці термінали активні високо, вони матимуть такі характеристики. Фіг. 18 і 19. На малюнку 18 показана техніка гасіння пульсацій, використовувана для забезпечення придушення нуля на чотиризначному дисплеї, який зчитує кількість.

У нас є в наявності ось такі світлодіодні індикатори:

Як ми бачимо, семісегментнікі можуть бути поодинокі і багаторозрядні, тобто дві, три, чотири семісегментніка в одному корпусі. Для того, щоб перевірити сучасний семісегментнік, нам досить мультиметра з функцією прозвонки діодів. Шукаємо загальний висновок - це може бути або ОА або ОК - методом тику і потім вже дивимося працездатність всіх сегментів індикатора. Перевіряємо трьохрозрядний семісегментнік:

Таким чином, дисплей відображає. По суті, вони прості у використанні, приводять їх в дію, і вони спалахують. Вони можуть бути дратівливими, тому що у них є якась полярність, а це значить, що вони будуть працювати тільки тоді, коли ви їх правильно підключіть. Якщо ви скасуєте позитивне і негативне напруга, вони не займуться взагалі.

Дратує, так воно і є, це теж дуже корисно. Інший провід - катод. Катод з'єднується з землею. В принципі, це дійде до цього. Для загального катода ви подаєте ток на контакти, які ви хочете включити. Ущільнення каналів. Для цього навіть існують контролери дисплея, якщо ви не хочете подбати про переключення в вашому програмному забезпеченні.

От чорт, у нас загорівся один сегмент, таким же чином перевіряємо і інші сегменти.

Іноді напруги на мультику не вистачає, щоб перевірити сегменти індикатора. Тому беремо Блок живлення, виставляємо на ньому 5 Вольт, чіпляємо до однієї клеми блоку живлення резистор 1-2 кілоомах і починаємо перевіряти семісегментнік.

Управління 7-сегментним дисплеєм

Тому, коли у вас є 4-значний, мультиплексований 7 сегмент, загальний анод. По-перше, ми повинні знати, який тип дисплея у нас є, оскільки є дві можливі форми: загальний катод і загальний анод. Речі, які вам знадобляться для цього уроку. Зліва: графічний вигляд 7-сегментного дисплея, що показує одне загальне розташування для внутрішньої проводки і розташування контактів.

На цьому етапі зверніть увагу на початковий висновок, так як він знадобиться вам пізніше при завантаженні програми. Якби дисплей був звичайним катодом, ми б скасували його. У нижній частині статті знаходиться фотографія схеми, що йде на моїй платі прототипу. Ми також надаємо бібліотеку для управління більш ніж одним дисплеєм.

Для чого ж нам резистор? При подачі на светодіодик напруги він починає різко жерти ток при включенні. Тому в цей момент він може перегоріти. Щоб обмежити струм, послідовно з світлодіодом включається в ланцюг резистор. Більш докладно можна прочитати в цій статті.

Підрахунок в шістнадцятковому вигляді на одному 7-сегментному дисплеї

Недоліком є ​​те, що вони ресурсомісткі. Цей конкретний дисплей має чотири цифри і два дисплея двокрапки. Однак пристрій також забезпечує цифрове управління яскравістю дисплея через внутрішній широкосмуговий модулятор. У таких випадках вихід може бути виконаний на декількох 7-сегментних дисплеях.

Це економить контакти на корпусі, а потім на контролі. Відповідно, згадуються дисплеї з загальним анодом або загальним катодом. Висновок, який відповідає сегменту або десятковій крапці, найкраще витягувати з листа даних для відображення. 7-сегментний дисплей, який розрахований на звичайні 10-20 мА, як і раніше буде горіти, хоча і слабкий. Але для цього не потрібно призначення контактів. Далі розподіл цього сегмента засноване на.

Таким же чином перевіряємо чотирьохрозрядний семісегментнік з китайського радіоприймача

Думаю, особливих труднощів з цим виникати не повинно. У схемах семісегментнікі чіпляються з резисторами на кожному виводі. Це теж пов'язано з тим, що светодіодик при подачі напруги на них шалено жеруть струм і вигоряють.

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

У тестовій програмі послідовно відображаються цифри від 0 до 9 на 7-сегментному дисплеї. Вихід номер зберігається в регістровому лічильнику і збільшується на 1 в межах циклу. Якщо регістр досяг значення 10, він знову скидається на 0. Після підвищення виникає цикл очікування, який гарантує, що певний час пройде в наступному випуску. Взагалі ви не робите таких довгих циклів очікування, але це не про очікування, а контроль 7-сегментного дисплея. Використовувати таймер для цього - це занадто багато зусиль.

У нашому сучасному світі семісегментнікі вже замінюються жк-індикаторами, які можуть висвічувати абсолютно різну інформацію

але для того, щоб їх використовувати, потрібні певні навички в схемотехніці таких пристроїв. Поки що простіше і дешевше світлодіодних семисегментних індикаторів нічого немає.

Фактична проблема і, отже, цікава в цій статті частину, однак, відбувається безпосередньо після циклу мітки. Зверніть увагу, що значення лічильника має бути подвоєно. Це безпосередньо пов'язано з тим, що флеш-пам'ять носить словесний характер, а не байт-мудрий. У другому прикладі на цій сторінці це робиться по-іншому. Там показано, як за допомогою іншого запису таблиці генерація байтів заповнення може бути відвернена ассемблером. Цікаво також, що для розрахунку потрібно регістр, який містить значення 0.

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

У цій статті ми поговоримо про цифрової індикації.
Семисегментні світлодіодні індикатори призначені для відображення арабських цифр від 0 до 9 (рис.1).

Такі індикатори бувають однорозрядні, які відображають тільки одне число, але семисегментних груп, об'єднаних в один корпус може бути і більше (багаторозрядні). В цьому випадку цифри поділяються децимальних точкою (рис.2)

На жаль, є проблема, тому що для відображення необхідно вісім портів - чотири оголошення зажадають 32 порту. Але є кілька шляхів. Зсувні регістри вже описані в іншому підручнику. Це спростило б створення необхідних 32 вихідних ліній тільки з трьома висновками. Принцип управління не відрізняється від управління одним 7-сегментним дисплеєм, тільки те, як «вихідні висновки» наближаються до їх значень, відрізняється і визначається використанням зсувних регістрів. На даний момент, однак, повинен бути показаний інший варіант управління.



Рис.2.

Індикатор називається семісегментним через те, що відображається символ будується з окремих семи сегментів. Усередині корпусу такого індикатора знаходяться світлодіоди, кожен з яких засвічує свій сегмент.
Букви та інші символи на таких індикаторах відображати проблематично, тому для цих цілей використовуються 16-сегментні індикатори.

Нижче ми розглянемо мультиплексування ще раз. Мультиплексування означає, що не всі чотири дисплея включаються одночасно, але тільки один на короткий час. Якщо зміна між дисплеями відбувається швидше, ніж ми, люди, можемо сприймати, все чотири індикатори, схоже, працюють одночасно, хоча на один короткий проміжок часу світиться тільки один. Таким чином, чотири дисплея можуть розділяти окремі сегменти сегмента, і все, що потрібно, - це 4 додаткові лінії управління для 4 дисплеїв, з якими включений дисплей.

Одним з аспектів цього типу управління є частота мультиплексування, тобто повний цикл переходу з одного дисплея на інший. Він повинен бути досить високим, щоб уникнути мерехтіння дисплея. Людське око млявий, в кінотеатрі 24 кадру в секунду, з телевізором, щоб бути на безпечній стороні, що також нерухомі зображення спокійні, кожен сегмент повинен контролюватися не менше 100 Гц, тому він підключається, по крайней мере, кожні 10 мс. У виняткових випадках, однак, навіть 100 Гц все ще можуть мерехтіти, Наприклад, коли дисплей переміщається швидко або коли виникають перешкоди з штучними джерелами світла, які працюють зі змінним струмом.

Світлодіодні індикатори бувають двох типів.
У першому з них все катоди, тобто негативні висновки всіх світлодіодів, об'єднані разом і для них виділено відповідний висновок на корпусі.
Решта висновки індикатора з'єднані до анода кожного з світлодіодів (рис.3, а). Така схема називається «схема із загальним катодом».
Також існують індикатори, у яких світлодіоди кожного з сегментів підключені за схемою із загальним анодом (рис.3, б).



Рис.3.

Кожен сегмент позначений відповідною буквою. На малюнку 4 представлено їх розташування.

Рис.4.

Як приклад розглянемо двухразрядний семисегментний індикатор GND-5622As-21 червоного світіння. До речі існують і інші кольори, в залежності від моделі.
За допомогою трехвольтовой батарейки можна включати сегменти, а якщо об'єднати групу висновків в купку і подати на них харчування, то можна навіть відображати цифри. Але такий метод є незручним, тому для управління семисегментний індикаторами використовують регістри зсуву і дешифратори. Також, нерідко, висновки індикатора підключаються безпосередньо до виходів мікроконтролера, але лише в тому випадку коли використовуються індикатори з низьким споживанням струму. На малюнку 5 представлений фрагмент схеми з використанням PIC16F876A.



Рис.5.

Для управління семісегментним індикатором часто використовується дешифратор К176ІД2.
Ця мікросхема здатна перетворити двійковий код, що складається з нулів і одиниць в десяткові цифри від 0 до 9.

Щоб зрозуміти, як все це працює, потрібно зібрати просту схему (рис.6). Дешифратор К176ІД2 виконаний в корпусі DIP16. Він має 7 вихідних виведення (висновки 9 - 15), кожен з яких призначений для певного сегмента. Управління точкою тут не передбачено. Також мікросхема має 4 входи (висновки 2 - 5) для подачі двійкового коду. На 16-й і 8-ий висновок подається плюс і мінус харчування відповідно. Решта три висновки є допоміжними, про них я розповім трохи пізніше.



Рис.6.

DD1 - К176ІД2
R1 - R4 (10 - 100 кОм)
HG1 - GND-5622As-21

У схемі присутній 4 тумблера (можна будь-які кнопки), при натисканні на них на входи дешифратора подається логічна одиниця від плюса харчування. До речі харчується сама мікросхема напругою від 3 до 15 Вольт. В даному прикладі вся схема харчується від 9-вольтової "крони".

Також в схемі присутній 4 резистора. Це, так звані, підтягує резистори. Вони потрібні, щоб гарантувати на логічному вході низький рівень, при відсутності сигналу. Без них свідчення на індикаторі можуть відображатися некоректно. Рекомендується використовувати однаковіопору від 10 кОм до 100 кОм.

На схемі висновки 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.

Тут представлена ​​розширена таблиця, в якій ми бачимо не тільки очікувану цифру, але і ті сегменти (a - g), які складуть цю цифру.



Таблиця 2.

Допоміжними є 1, 6 і 7-ий висновки мікросхеми (S, M, К відповідно).

На схемі (рис.6) 6-ий висновок "М" заземлений (на мінус харчування) і на виході мікросхеми присутня позитивна напруга для роботи з індикатором із загальним катодом. Якщо використовується індикатор із загальним анодом, то на 6-ий висновок слід подати одиницю.

Якщо на 7-ий висновок "К" подати логічну одиницю, то знак індикатора гаситься, нуль дозволяє індикацію. У схемі даний висновок заземлений (на мінус харчування).

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

Варто зауважити одну цікаву річ: ми знаємо, що тумблер D0 включає цифру "1", а тублер D1 цифру "2". Якщо натиснути обидва тумблери, то висвітиться цифра 3 (1 + 2 = 3). І в інших випадках на індикатор виводиться сума цифр, що складають цю комбінацію. Приходимо до висновку, що входи дешифратора розташовані продумано і мають дуже логічні комбінації.

Також ви можете подивитися відео до цієї статті.

На прохання трудящих вирішив я розповісти про чудову річ під назвою 7-ми сегментний світлодіодний індикатор. Для початку що це таке. Ось така от штука. Це один розряд, так само бувають двох розрядні, трьох і чотирьох розрядні. Бачив ще шести розрядні. Після кожного розряду варто десяткова крапка. Якщо розрядів чотири, то найчастіше після другого розряду можна зустріти двокрапка для індикації секунд, при виведенні часу. Розібравшись з залізяччям давайте перейдемо до вивчення схеми. Що взагалі таке динамічна індикація і навіщо вона потрібна. Так-так індикатор 7-ми сегментний, то для відображення цифри використовується всього 7 сегментів. Позначаються вони завжди латинськими буквами A, B, C, D, E, F, G і DPДивимося картинку. Під кожним сегментом розташований світлодіод. Всі світлодіоди одним кінцем об'єднані. Або анодами або катодами, а протилежні кінці виведені назовні. Легко помітити що для відображення цифри необхідно використовувати 8 висновків. Один загальний і сім для сегментів. Якщо це стосується одного розряду, то тут думати нема про що, просто вішаємо все на один порт. А якщо розрядів чотири? Вісім помножимо на чотири буде тридцять два. Про ... Та над таким індикатором 32 мега буде одна сидіти. Так справа не піде. Є два рішення. Наша з вами динамічна індикація або статична. Що б далі розбиратися, давайте подивимося схему включення індикатора.

Дана схема має на увазі динамічну індикацію. Так що я все динамічна та статична. В чому різниця?. Статична індикація - це коли ми задали кожному розряду за своєю цифрі і вона постійно горить, а динамічна - це коли ми виводимо цифру в перший розряд, потім його гасимо і виводимо в другій розряд, потім його гасимо і виводимо в третій розряд і так далі поки не закінчаться розряди. Після останнього розряду переходимо знову до першого і так по колу. Якщо це робити повільно то можна буде споглядати цифрову біжучий рядок, а якщо збільшити швидкість наприклад до 50 Гц, то вже мерехтіння очей не побачить. Ось таким чином і працює динамічна індикація. Давайте тепер розберемо схему. Зліва МК ATmega8 за нею на порту D висить мікросхема 74ALS373. Навіщо вона потрібна? Справа в тому що індикатор це просто 8 світлодіодів зібраних в якусь матрицю. Тобто індикатор можна представити у вигляді лінійки з 8 світлодіодів. А як відомо світлодіоди їдять по відношенню до МК ого го скільки. Звичайно не забороняється підключення безпосередньо, але краще поставити між МК і індикатором який-небудь ретранслятор. Ось для цих цілей я і вирішив використовувати 8-и розрядний буфер з засувкою. Чому саме його. З урахуванням того що індикатор я використовую із загальним анодом, тобто для завдання цифри активний рівень 0, то можна було б сміливо використовувати мікросхему ULN2003A (7 транзисторних збірок за схемою Дарлінгтона) і не паритися з буфером, але ... Але в тому що ULN2003A має на борту тільки NPN транзистори і я можу використовувати індикатор тільки із загальним анодом, а якщо потрібно поставити із загальним катодом? Ось тут і допоможе буфер, так як що я туди напишу, то і буде на виході. Хочеш 0, хочеш 1. Керуючі ніжки підключені в режимі транслятора. Тобто буфер виводить на вихід теж саме що і на вході. Аля псевдо гальванічна розв'язка. За буфером слідують токоограничивающие резистори. Пам'ятаємо, це світлодіоди і без резисторів згорять. Номінал резисторів потрібно підбирати трохи менше ніж допустимо. Справа в тому що динамічна індикація виводить символи з якоїсь частотою і вона з рідні шіму, тобто чим вище частота, тим вище так сказати контрастність. І при максимально комфортною контрастності цифри будуть світити трохи тускнее. З цього резистори потрібно брати трохи меншого номіналу. Я використовував 360Ом тільки тому що у мене такі були в наявності. Далі після резисторів наш індикатор. З іншого боку, де аноди, я підключив перші чотири розряду порту С. Так, зі схемою на зразок розібралися. Тепер давайте обговоримо алгоритм програми. Для того щоб по черзі включати розряди індикатора, напишемо окрему функцію і будемо її нескінченно викликати в основному тілі програми. Конкретніше, функція буде отримувати число від 0 до 9999, рабірать його на розряди і потім виводити кожен розряд на своєму місці. Якщо число має кількість розрядів менше 4, то пустушки зліва будемо заповнювати нулями. Рівняти по правому краю. Бігати за розрядами будемо зліва направо. Щоб було видно якісь дії, то ми використовуючи переривання від лічильника, раз в секунду будемо збільшувати виведене число на одиницю. Так задача поставлена, до бою. #define F_CPU 7372800UL // Частота кварцу #include #include #include volatile unsigned int test = 9980; // Змінна для виведення на індикатор ISR (TIMER1_COMPA_vect) // Оброблювач переривання за випадковим збігом таймера 1 (Test ++; // Збільшити виведене число if (test> 9999) test = 0; // Якщо вийшов за межі чотирьох розрядів, обнулити TCNT1H = 0x00; // Скидання регістра TCNT1L = 0x00; // рахунки ) Void dig_out (int num); // Оголошення функції виведення на індикатор int main (void) (DDRC = 0x0F; // Налаштування портів DDRD = 0xFF; // для роботи з індикатором Порт С для розрядів, Порт D для цифр TCCR1A = 0x00; // Налаштування таймера TCCR1B = 0x04; TCNT1H = 0x00; TCNT1L = 0x00; OCR1AH ​​= 0x70; OCR1AL = 0x80; TIMSK = 0x10; sei (); // Дозвіл переривань while (1) (dig_out (test); // Постійно викликаємо функцію виведення поточного числа )) Void dig_out (int num) // Функція для виведення на індикатор 4-х розрядів (Unsigned char i = 0; // Змінна лічильника unsigned char raz = 1; // Номер розряду unsigned char dig_num = (0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10); // Коди цифр для індикатора із загальним анодом unsigned char dig = (0, 0, 0, 0); // Масив для значення розряду if (num (Dig = 0; dig = 0; dig = 0;) if (num // Для заповнення нулями лівих розрядів (Dig = 0; dig = 0;) if (num // Для заповнення нулями лівих розрядів (Dig = 0;) while (num> 999) // Отримання кількості тисяч (Dig ++; num - = 1000;) while (num> 99) // Отримання кількості сотень (Dig ++; num - = 100;) while (num> 9) // Отримання числа десятків (Dig ++; num - = 10;) dig = num; // Отримання кількості одиниць while (raz // Крутимося поки не заповнимо все 4 розряду (PORTC = raz; // Вибираємо розряд PORTD = dig_num]; // Виводимо цифру raz = raz // зсувається на наступний розряд i ++; // Збільшуємо індекс наступної цифри _delay_ms (1); // Затримка 1 мс } } Ось і весь код. Розписувати його Не буду так як він має коментарі до кожного рядка. Нижче ви можете завантажити архів з проектом під AtmelStudio6.2 Якщо все ж виникнуть питання, то ласкаво просимо на форум. Ну і для самих вибагливих нижче відео все цієї балалайки))).

У сьогоднішній статті поговоримо про 7-сегментних індикаторах і про те, як їх «подружити» з Ардуіно. Є кілька варіантів. Найпростіший, безумовно, це зайти на і купити готовий індикатор з інтегрованим Шілд (це хустки узгодження так називається), але ми не шукаємо легких шляхів, тому підемо шляхом трохи складнішим. Новачки - не лякайтеся, ця стаття, як і попередні мої статті (і ) Саме для вас. Нехай гуру пишуть для таких же навчених досвідом гуру, а я новачок - пишу для новачків.

Чому саме 7-сегментний індикатор? Адже існує стільки всяких екранів, з великою кількістю символів, рядків, різноманітних діагоналей і дозволів, чорно-білих і кольорових, найдоступніші з яких стоять пару доларів ... А тут: «старенький», до неподобства простий, але вимагає величезної кількості пінів 7- сегментний індикатор, але все-таки перевага є і у цього «дідка». Справа в тому, що користуючись наведеними тут скетчами можна оживити не тільки індикатор з висотою цифр 14 мм, але і більш серйозні (правда вже саморобні) проекти, і метрові цифри в даному випадку далеко не межа. Жителям столиць це може бути не так цікаво, а ось населення Новокацапетовкі або Нижньої кедровки дуже порадіє, якщо на клубі або сільраді з'являться годинник, які ще можуть і дату відображати, і температуру, а про творця цього годинника будуть говорити дуже довго. Але, подібний годинник тема окремої статті: буде бажання у відвідувачів - напишу. Все вище написане можна вважати вступом. Як і минула моя стаття ця буде складатися з частин, на цей раз з двох. У першій частині ми просто «по управляємо» індикатором, а в другій - спробуємо пристосувати його для чогось хоч трохи корисного. Отже, продовжимо:

Частина перша. Експериментально - пізнавальна

За основу даного проекту взято нам вже добре знайомий по попереднім статтям ARDUINO UNO. Нагадаю, що придбати його найлегше можна тут:або тут: , Крім цього знадобиться 4-розрядний, 7-сегментний індикатор. У мене, зокрема GNQ-5641BG-11. Чому саме цей? Та просто тому, що років 5 тому купив його помилково, йти міняти було лінь, ось він і валявся весь цей час, очікуючи свого часу. Думаю, що підійде будь-який із загальним анодом (і з загальним катодом можна, але доведеться дані масиву і інші значення портів инвертировать - тобто міняти на зворотні), аби не був надто потужним, щоб не спалити Ардуінку. Крім цього - 4 токоограничивающих резистора, приблизно 100 Ом кожний і шматок шлейфу (мені вистачило 10 см) на 12 пін (жив) можна «відірвати» від більш широкого, що я і зробив. А можна взагалі окремими проводочками підпаяти, проблем не буде. Ще знадобляться штирі на плату (11 шт.) Хоча, якщо акуратно можна і без них. Ескіз індикатора можна побачити на малюнку 1, а його схему на малюнку 2. Також зазначу, що на кожен сегментики цього індикатора краще подавати не більше 2.1В (обмежується 100-омнимі резисторами), і в цьому випадку він буде споживати не більше 20 мА. У разі, якщо загориться цифра «8» споживання не перевищить 7х20 = 140 мА, що цілком допустимо для виходів Ардуіно. Допитливий читач задасть питання: «Але ж 4 розряду по 140 мА це вже 4х140 = 560 мА, а це вже забагато!» Відповім - залишиться 140. Яким чином? Читайте далі! Розташування пинов на індикаторі видно на малюнку 3. А підключення робимо згідно з таблицею 1.


Мал. 1 - Ескіз індикатора


Мал. 2 - Схема індикатора


Мал. 3 - Розташування пинов

Таблиця 1

Пін Ардуіно Уно

пін індикатора

Примітка

сегмент G

сегмент F

сегмент E

сегмент D

сегмент C

сегмент B

сегмент A

Загальний анод сегмента № 1, підключати через резистор 100 Ом.

Загальний анод сегмента № 2, підключати через резистор 100 Ом.

Загальний анод сегмента № 3, підключати через резистор 100 Ом.

Загальний анод сегмента № 6, підключати через резистор 100 Ом.



Заливаємо простенький скетч, який являє собою простеньку «считалочку» від 0 до 9:


А тепер трохи пояснень. DDRD це регістр порту D (DDRB - відповідно порту В) за «страшним» словом «регістр» всього лише «сховалася» функція, яка вказує, буде порт своїм піном читати щось (приймати інформацію), або навпаки туди можна буде щось то писати (віддавати інформацію). В даному випадку рядок DDRD = B11111111; вказує, що все Піни порту D вихідні, тобто інформація з них буде виходити. Буквочка «В» позначає, що в регістр записано бінарне (бінарне) число. Нетерплячий читач тут же запитає: «А десяткове можна!?!». Поспішаю заспокоїти - можна, але про це трохи пізніше. Якби ми хотіли половину порту задіяти на вхід, а половину на вихід можна було б вказати так: DDRD = B11110000; одиниці показують ті Піни, які будуть віддавати інформацію, а нулі - ті, які будуть цю саму інформацію приймати. Основне зручність регістра укладено ще й у тому, що не треба прописувати 8 раз все Піни, тобто ми економимо в програмі 7 рядків. А тепер розберемо наступний рядок:

PORTB = B001000; // встановлюємо високий рівень 11 Піна порту В

PORTB це регістр даних порту В, тобто записавши в нього будь-яке число ми вказуємо на якому піне порту буде одиниця, а на якому - нуль. На додаток до коментарю скажу, якщо взяти Ардуіно Уно таким чином, щоб бачити контролер і цифрові Піни були зверху - буде зрозуміла запис в регістр, тобто який «нуль» (або «одиниця») відповідає за який пін, тобто крайній правий нуль порту В відповідає за 8-й пін, а крайній лівий - за 13-й (у якого вбудовані світлодіод). Для порту D відповідно правий за пін 0, лівий за пін 7.
Сподіваюся після таких розгорнутих пояснень все зрозуміло, а раз зрозуміло пропоную повернутися до відомої нам і гаряче улюбленої з дитинства десятковій системі числення. І ще - скетч в 25 рядків на зразок і невеликий, але для новачка все-таки кілька громіздкий. Будемо зменшувати.

Заливаємо ще більш простий скетч, та ж сама «считалочка»:


Відео 1.
Всього 11 рядків! Ось це по-нашому, «по-новічковскі»! Прошу звернути увагу замість двійкових чисел в регістри записані десяткові. Природно, для десяткових чисел ніяких букв попереду не потрібно. Думаю, не зайвим буде звести все числа в таблиці.

Таблиця 2. Відповідність відображуваного знака даними порту

Загальний анод

Загальний катод

Двійкова система

десяткова система

Двійкова система

десяткова система

Таблиця 3. Відповідність відображуваного розряду даними порту

Загальний анод

Загальний катод

Двійкова система

десяткова система

Двійкова система

десяткова система



Увага! Дані таблиць 2 і 3 справедливі тільки при розпаювання згідно з таблицею 1.
А тепер заллємо скетч із «лічилки» від 0 до 9999:




Мал. 4 - Считалочка

Роботу скетчу можна подивитися наВідео 2.

У цьому скетчі коментарів більше, ніж самого коду. Питань виникнути не повинно .... Крім одного, що це за «цикл мерехтіння» такий, що, власне кажучи, там мерехтить і для чого? А ще змінна для цього якась ...
А вся справа в тому, що однойменні сегменти всіх чотирьох розрядів у нас з'єднані в одній точці. А1, А2, А3 і А4 мають загальний катод; А1, В1, ... ..G1 загальний анод. Так, що подавши одночасно на 4 розрядний індикатор «1234» ми отримаємо «8888» і дуже здивуємося з цього приводу. Щоб цього не сталося потрібно спочатку запалити «1» в своєму розряді, потім відключити її, запалити «2» в своєму і т.д. Якщо робити це дуже швидко, то мерехтіння цифр зіллється, як кадри на кіноплівці і очей його практично не буде помічати. А максимальне значення змінної мерехтіння в даному випадку управляє швидкістю зміни цифр на індикаторі. До речі, саме завдяки цьому «мерехтіння» і максимальне споживання струму всього 140 мА, замість 560. А тепер пропоную перейти до чогось більш корисного.

Частина друга. Хоч трохи корисна

У цій частині ми виведемо символи з персонального комп'ютера на 7-сегментний індикатор за допомогою ARDUINO MEGA. Чому раптом виникла ідея «поміняти коней на переправі»? Причин дві: перша - до цього в своїх статтях я ні разу не розглядав ARDUINO MEGA; і друга - в ARDUINO UNO я так і не розібрався, як мені динамічно міняти місцями СОМ порт і порт D. Але я новачок - мені можна пробачити. Придбати даний контролер, природно можна тут: . Для реалізації задуманого довелося взяти паяльник і перепаять шлейф з боку Ардуіно, а також написати новий скетч. Як перепаяти шлейф можна подивитися на рисунку 5. Вся справа в тому, що ARDUINO MEGA і ARDUINO UNO мають різну терморегулятори портів, так і в меге портів набагато більше. Відповідність використаних пинов видно з Таблиці 4.



Мал. 5 - Нова розпаювання шлейфа

Таблиця 4

порт Мега


Увага! Дана таблиця справедлива лише для даного проекту!

Також слід звернути увагу, що порт С у Ардуіно Мега "починається» з 37 Піна і далі за зменшенням, а порт А - з 22 Піна і далі по зростаючій.



Мал. 6 - Загальний вид



Невеликі особливості реалізації: виводити будемо 4 символу. Символи повинні бути цифрами. Якщо ввели «1234» і побачимо «1234», якщо ввели «123456» все одно побачимо «1234», якщо ввели «йцук», «фива1234», «отіог485909оапоьм» - не побачимо нічого. Якщо ввели «рр2345мм» побачимо «23» тобто невелика, вбудована «захист від дурня».

Власне скетч:



А як працює дана програма можна подивитися наВідео 3.



Огляд підготував Павло Сергєєв