Контакти

7 сегментний індикатор 4 розряду arduino. Arduino та чотирирозрядний семисегментний індикатор. Управління семисегментними індикаторами


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

Пристрій відображення цифрової інформації. Це найпростіша реалізація індикатора, який може відображати арабські цифри. Для відображення літер використовуються складніші багатосегментні та матричні індикатори.

Як каже його назва, складається з семи елементів індикації (сегментів), що включаються та вимикаються окремо. Включаючи їх у різних комбінаціях, їх можна скласти спрощені зображення арабських цифр.
Сегменти позначаються літерами від A до G; восьмий сегмент - десяткова точка (Decimal point, DP), призначена для відображення дробових чисел.
Зрідка на семисегментному індикаторі відображають літери.

Бувають різних кольорів, зазвичай це білий, червоний, зелений, жовтий та блакитний кольори. Крім того, вони можуть бути різних розмірів.

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

Крім десяти цифр, семисегментні індикатори здатні відображати букви. Але лише деякі з літер мають інтуїтивно зрозумілу семисегментну виставу.
У латиниці: великі A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, малі a, b, c, d, e, g , h, i, n, o, q, r, t, u.
У кирилиці: А, Б, В, Р, р, Е, і, Н, О, про, П, п, Р, С, с, У, Ч, Ы (два розряди), Ь, Е/З.
Тому семисегментні індикатори використовують лише для відображення найпростіших повідомлень.

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

У звичайному світлодіодному індикаторі дев'ять висновків: один йде до катодів всіх сегментів, інші вісім - до анода кожного з сегментів. Ця схема називається «схема із загальним катодом», існують також схеми із загальним анодом(Тоді все навпаки). Часто роблять не один, а два загальні висновки на різних кінцях цоколя - це спрощує розведення, не збільшуючи габаритів. Є ще так звані «універсальні», але я особисто з такими не стикався. Крім того існують індикатори з вбудованим регістром зсуву, завдяки чому набагато зменшується кількість задіяних висновків портів мікроконтролера, але вони набагато дорожчі і в практиці застосовуються рідко. А оскільки неосяжне не осягнути, то такі індикатори ми поки розглядати не будемо (адже є ще індикатори з набагато більшою кількістю сегментів, матричні).

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

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

На схемі нижче показано як підключається однорозрядний семисегментний індикатордо мікроконтролера.
При цьому слід враховувати, що якщо індикатор з ЗАГАЛЬНИМ КАТОДОМ, то його загальний висновок підключається до «землі»а запалювання сегментів відбувається подачею логічної одиниціна виведення порту.
Якщо індикатор з ЗАГАЛЬНИМ АНОДОМ, то на його загальний провід подають «плюс»напруги, а запалювання сегментів відбувається переведенням виведення порту в стан логічного нуля.

Здійснення індикації в однорозрядному світлодіодному індикаторі здійснюється подачею висновків порту мікроконтролера двійкового коду відповідної цифри відповідного логічного рівня (для індикаторів з ОК - логічні одиниці, для індикаторів з ОА - логічні нулі).

Струмообмежувальні резисториможуть бути присутніми у схемі, а можуть і не бути присутніми. Все залежить від напруги живлення, яке подається на індикатор та технічних характеристик індикаторів. Якщо, наприклад, напруга подане на сегменти дорівнює 5 вольтам, які розраховані на робоче напруга 2 вольта, то струмообмежувальні резистори ставити необхідно (щоб обмежити струм через них підвищення напругі харчування і спалити як індикатор, а й порт микроконтроллера).
Розрахувати номінал струмообмежувальних резисторів дуже легко, за формулою дідуся Ома.
Наприклад, показники індикатора такі (беремо з даташита):
- Робоча напруга - 2 вольти
- Робочий струм - 10 мА (=0,01 А)
- напруга живлення 5 вольт
Формула для розрахунку:
R= U/I (всі значення у цій формулі повинні бути в Омах, Вольтах та Амперах)
R = (напруга живлення - робоча напруга) / робочий струм
R=(5-2)/0.01=300 Ом

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

На схемі не показано, але між базами транзисторів та висновками порту мікроконтролера необхідно включати резистори, опір яких залежить від типу транзистора (номінали резисторів розраховуються, але можна спробувати застосувати резистори номіналом 5-10 кОм).

Здійснення індикації розрядами здійснюється динамічним шляхом:
— виставляється двійковий код відповідної цифри на виходах порту РВ для 1 розряду, потім подається логічний рівень на транзистор першого розряду, що управляє.
— виставляється двійковий код відповідної цифри на виходах порту РВ для 2 розряду, потім подається логічний рівень на транзистор, що управляє, другого розряду
— виставляється двійковий код відповідної цифри на виходах порту РВ для 3 розряду, потім подається логічний рівень на транзистор, що управляє, третього розряду
- Отже по колу
При цьому треба враховувати:
- для індикаторів з ОКзастосовується керуючий транзистор структури NPN(Керується логічною одиницею)
- для індикатора з ОА- Транзистор структури PNP(керується логічним нулем)

Ця стаття продовжує цикл моїх публікацій про організацію динамічної індикації на мікроконтролерах PIC та LED індикаторах. Ось посилання на попередні публікації:

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

У кожному з переривань з інтервалом 2 мс (в даному випадку від таймера TMR0) готується один етап динамічної індикації (ДІ) згідно з алгоритмом, що складається з п'яти фаз управління регістром та індикатором.

2-а фаза: позитивний перепад на виведенні 12 регістра (ST_CP) записує нульовий стан регістра у вихідну клямку. Тут і надалі, до початку індикації, індикатор погашений нульовим потенціалом на сегментах.

3-я фаза: за допомогою керування висновками регістра 14 (DS – дані) та 11 (SH_CP – тактовий) до нього записується код для управління сегментами.

4-а фаза: позитивним перепадом на виведенні 12 регістра дані з регістру записуються у вихідну клямку, причому, через позитивні рівні на розрядах індикатор залишається погашеним.

5-а фаза: тут висновки розрядів індикатора подається необхідний код, і далі відбувається власне індикація.

Якщо у схемі задіяний один 4-х розрядний індикатор, то для правильної роботи він має бути з ОК. Якщо потрібно керувати 8-ма розрядами, то використовуються 8 портів МК, при цьому, інші 4 порти просто управляють розрядами (у фазі 4 на них повинен бути високий рівень). Варто відзначити, що в цьому випадку можливе застосування індикаторів як з ОК, так і з ОА, підключаючи до регістру відповідно сегменти або розряди (з причин, викладених нижче, ДІ в першому випадку переважно організувати посегментну, а в другому порозрядну).

За цією методикою можна підключити два чотирирозрядні індикатори до МК PIC16F676, використовуючи один зсувний регістр, при цьому залишаться для використання цілих чотири вільні порти. , наприклад, для такого підключення люди використовували поєднання в деяких портах МК функцій ДІ та аналогових входів (на мій погляд, вкрай сумнівне рішення), що призвело до значного ускладнення схеми та деяких обмежень, про що автори і попереджають. Використовуючи мою схему підключення, все вирішилося б просто і красиво – входи окремо, індикація окремо, плюс ще два порти (включаючи MCLR) для кнопок.

Для тестування даного способу управління пропонується наступна проста схема на МК PIC12F629 та індикаторі FYQ3641A, яке видає на індикаторі по черзі слово «test» і число 1234.

Тут вирішено застосувати посегментну ДІ (у кожний момент включений один сегмент, а на розрядних висновках є код, де в кожному розряді: 0 – якщо в даному розряді повинен горіти даний сегмент і 1 – в іншому випадку), при якому пікові струми перекладаються на регістр . Чому? Цьому є дві причини: перша – максимальна здатність навантаження виходів 74HC595 35 мА проти 25 мА у контролерів PIC; друга і головна - близький до граничного струм через вихідний порт МК теоретично може підняти вихідний потенціал до рівня перемикання входів регістру, що призвело б до помилок у роботі. А так, в порти МК втікають струми 6-7 мА і на виходах потенціали не перевищують TTL-рівні.

Як згадувалося вище, інтервал переривань - 2 мс, що відповідає частоті оновлення індикатора 64 Гц і його свічення досить комфортно сприймається оком.

Даний спосіб ДІ, крім іншого, дозволив вдвічі зменшити кількість струмообмежувальних резисторів (R2-R5).

Пристрій зібрано на так званій «безпайковій» макетній платі.

Індикатор можна замінити будь-якою із серії 3641А.

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

Програма управління МК написана мовою Сі і відтрансльована у середовищі.

Код у MikroC, проект, HEX-файл у додатку.

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

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
DD1 МК PIC 8-біт

PIC12F629

1 До блокноту
DD2 Реєстр74HC5951 До блокноту
HL ІндикаторFYQ36411 До блокноту
R1 Резистор

30 ком

1 До блокноту
R2 Резистор

430 Ом

1 До блокноту
R3 Резистор

430 Ом

1

Напевно, ви вже бачили індикатори - "вісімки". Це і є семисегментний світлодіодний індикатор, який служить для відображення цифр від 0 до 9, а також децимальної точки ( DP- Decimal point) або комою.

Конструктивно такий виріб є складання світлодіодів. Кожен світлодіод складання засвічує свій знакосегмент.

Залежно від моделі складання може складатися з 1 – 4 семисегментних груп. Наприклад, індикатор АЛС333Б1 складається з однієї семисегментної групи, яка здатна відображати лише одну цифру від 0 до 9.

А ось світлодіодний індикатор KEM-5162AS вже має дві семисегментні групи. Він є дворозрядним. Далі на фото показані різні світлодіодні семисегментні індикатори.

Також існують індикатори з 4 семисегментними групами - чотирирозрядні (на фото - FYQ-5641BSR-11). Їх можна використовувати в саморобному електронному годиннику.

Як позначаються семисегментні індикатори на схемах?

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

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

Особливості семисегментних індикаторів.

Незважаючи на простоту цієї деталі і в неї є особливості.

По-перше, світлодіодні семисегментні індикатори бувають із загальним анодом та із загальним катодом. Цю особливість слід враховувати при покупці для саморобної конструкції або приладу.

Ось, наприклад, цоколівка вже знайомого нам 4-х розрядного індикатора FYQ-5641BSR-11.

Як бачимо, аноди у світлодіодів кожної цифри об'єднані та виведені на окремий висновок. Катоди ж у світлодіодів, які належать до знакосегменту (наприклад, G), з'єднані разом. Від того, яку схему з'єднань має індикатор (із загальним анодом чи катодом) залежить дуже багато. Якщо поглянути на принципові схеми приладів із застосуванням семисегментних індикаторів, то стане зрозумілим, чому це так важливо.

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

Щоб збільшити розміри цифр на табло і одночасно зберегти достатню яскравість кожного сегмента, використовується кілька світлодіодів, які послідовно включені. Ось приклад такого індикатора – він уміщається на долоні. Це FYS-23011-BUB-21.

Один його сегмент складається із 4 світлодіодів, включених послідовно.

Щоб засвітити один із сегментів (A, B, C, D, E, F або G), потрібно подати на нього напругу 11,2 вольта (2,8V на кожен світлодіод). Можна і менше, наприклад, 10V, але яскравість також зменшиться. Виняток становить децимальна точка (DP), її сегмент складається із двох світлодіодів. Для неї потрібно всього 5 – 5,6 вольт.

Також у природі зустрічаються двокольорові індикатори. У них вбудовуються, наприклад, червоні та зелені світлодіоди. Виходить, що в корпус вбудовано два індикатори, але зі світлодіодами різного кольору світіння. Якщо подати напругу на обидва ланцюги світлодіодів, можна отримати жовтий колір світіння сегментів. Ось схема з'єднань одного з таких двоколірних індикаторів (SBA-15-11EGWA).

Якщо комутувати висновки 1 ( RED) та 5 ( GREEN) на "+" живлення через ключові транзистори, то можна змінювати колір світіння відображуваних чисел з червоного на зелений. А якщо одночасно підключити висновки 1 і 5, то колір світіння буде помаранчевим. Ось так можна балуватися з індикаторами.

Управління семисегментними індикаторами.

Для управління семисегментними індикаторами у цифрових пристроях використовують регістри зсуву та дешифратори. Наприклад, широко поширений дешифратор для керування індикаторами серії АЛС333 та АЛС324 - мікросхема К514ІД2або К176ІД2. Ось приклад .

А для управління сучасними імпортними індикаторами зазвичай використовуються регістри зсуву 74HC595. За ідеєю, керувати сегментами табло можна безпосередньо з виходів мікроконтролера. Але таку схему використовують рідко, тому що для цього потрібно задіяти досить багато висновків мікроконтролера. Тому для цієї мети застосовуються регістри зсуву. Крім цього, струм, споживаний світлодіодами знакосегменту, може бути більшим, ніж струм, який може забезпечити рядовий вихід мікроконтролера.

Для управління великими семисегментними індикаторами, такими як FYS-23011-BUB-21 застосовуються спеціалізовані драйвери, наприклад, мікросхема MBI5026.

Що всередині семисегментного індикатора?

Ну і трохи смачненького. Будь-який електронник не був би таким, якби не цікавився "начинками" радіодеталей. Ось що всередині індикатора АЛС324Б1.

Чорні квадратики на основі – це кристали світлодіодів. Тут же можна розглянути золоті перемички, які з'єднують кристал із одним із висновків. На жаль, цей індикатор вже не працюватиме, оскільки були обірвані саме ці самі перемички. Але ми можемо подивитися, що ховається за декоративною панелькою табло.

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



У цьому випадку будемо використовувати модуль чотиризначного світлодіодного індикатора із загальним катодом.


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



Світлодіодні сегменти індикатора вимагають підключення струмообмежувальних резисторів при живленні від 5 на логічному висновку. Значення резистора зазвичай береться між 330 та 470 Ом. Також рекомендується використання транзисторів для забезпечення додаткового струму, оскільки кожен висновок мікроконтролера може видавати максимум 40 мА. Якщо увімкнути всі сегменти розряду (цифра 8), то споживаний струм перевищить цю межу. На малюнку нижче показана схема підключення чотирирозрядного семисегментного індикатора із застосуванням транзисторів струмообмежувальних резисторів.



Далі наведено схеми підключення індикатора висновків Arduino. Тут використані біполярні npn-транзистори BC547. Потенціометр 10 КОМ, підключений до входу плати A0 дозволяє змінювати значення, що відображається на індикаторі від 0 до 1023.




На платі Arduino цифрові виходи D2-D8 у разі призначені управління сегментами від «a» до «g», а цифрові виходи D9-D12 використовуються управління розрядами від D0 до D3. Слід зауважити, що в даному прикладі точка не використовується, але в наведеному нижче скетчі є можливість її задіяти. Висновок D13 плати Arduino зарезервований управління сегментом точки.



Нижче наведено код, який дозволяє керувати чотирирозрядним сегментним індикатором за допомогою плати Arduino. У ньому в масиві numeral задаються коди чисел від 0 до 9 у двійковій формі. Цей скетч підтримує як індикатори із загальним катодом (за замовчуванням), так і індикатори із загальним анодом (для цього потрібно розкоментувати один рядок наприкінці скетчу).


// біти, що представляють сегменти з A по G (і точки), для чисел 0-9 const int numeral = ( //ABCDEFG /dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B00111110, // 6 B11100000, // 7 B11111110, // 8 B11100110, // 9); // Висновки для точки та кожного сегмента // DP,G,F,E,D,C,B,A const int segmentPins = (13,8,7,6,5,4,3,2); const int nbrDigits = 4; // кількість розрядів світлодіодного індикатора // Розряди 0 1 2 3 const int digitPins = (9,10,11,12); void setup() ( for(int i=0; i< 8; i++) { pinMode(segmentPins[i], OUTPUT); // устанавливаем выводы для сегментов и точки на выход } for(int i=0; i < nbrDigits; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { int value = analogRead(0); showNumber(value); } void showNumber(int number) { if(number == 0) { showDigit(0, nbrDigits-1) ; // отображаем 0 в правом разряде } else { // отображаем значение, соответствующее каждой цифре // крайняя левая цифра 0, правая на единицу меньше, чем число позиций for(int digit = nbrDigits-1; digit >= 0; digit--) ( if(number > 0) ( showDigit(number % 10, digit) ; number = number / 10; ) ) ) ) ) // Відображаємо задане число на даному розряді 7-сегментного індикатора void showDigit(int number, int digit) (digitalWrite(digitPins, HIGH); for(int segment = 1; segment< 8; segment++) { boolean isBitSet = bitRead(numeral, segment); // isBitSet будет истинным, если данный бит будет 1 // isBitSet = ! isBitSet; // опционально // раскомментируйте опциональную строчку выше для индикатора с общим анодом digitalWrite(segmentPins, isBitSet); } delay(5); digitalWrite(digitPins, LOW); }

Нові статті

● Проект 7: Матриця 4-розрядна із 7-сегментних індикаторів. Робимо динамічну індикацію

У цьому експерименті ми розглянемо роботу Arduino із 4-розрядною семисегментною матрицею. Отримаємо уявлення динамічної індикації, що дозволяє використовувати одні висновки Arduino при виведенні інформації на кілька семисегментних індикаторів.

Необхідні компоненти:

Матриця 4-розрядна із семисегментних індикаторів складається з чотирьох семисегментних індикаторів і призначена для одночасного виведення на матрицю 4 цифр, також є можливість виведення десяткової точки. Схема 4-розрядної матриці на 7-сегментних індикаторах показано на рис. 7.1.

Мал. 7.1. Схема 4-розрядної матриці на 7-сегментних індикаторах

Для виведення цифри необхідно запалити потрібні світлодіоди на контактах A-G та DP та вибрати потрібну матрицю подачею LOW на висновок 6, 8, 9 або 12.
Підключимо контакти матриці до плати Arduino і виводитимемо цифри на різні розряди матриці. Для підключення нам знадобляться 12 висновків Arduino. Схема з'єднань для підключення 4-розрядної матриці до плати Arduino показана на рис. 7.2. При підключенні контактів використовують обмежувальні резистори 510 Ом.

Мал. 7.2. Схема підключення 4-розрядної матриці до Arduino

Напишемо скетч послідовного виведення цифр (0-9) на довільний регістр матриці. Для вибору випадкового значення діапазону будемо використовувати функцію random(). У масиві numbers зберігаються значення, відповідні даним для відображення цифр 0-9 (старший розряд байта відповідає мітці сегмента A індикатора, а молодший - сегменту G), в масиві pins - значення контактів для сегментів A-G і DP, в масиві pindigits - значення контактів для вибору розряду матриці Вміст скетчу показано у лістингу 7.1.

// Змінна для зберігання значення поточної цифри int number = 0; // семисегментного індикатора int digit = 0; void setup()( for (int i = 0; i<8 ;i++) pinMode(pins[i],OUTPUT); for (int i=0 ;i<4 ;i++) {pinMode(pindigits[i],OUTPUT); digitalWrite(pindigits[i],HIGH); } } void loop ()( number=(number+1 )%10 ; showNumber(number); // DS for (int i=0 ;i<4 ;i++) digitalWrite(pindigits[i],HIGH); digit=random(0 ,4 ); digitalWrite(pindigits,LOW); delay(3000 ); } void showNumber ( int num)( for (int i = 0; i<7 ;i++) { if (bitRead(numbers,7 -i)==HIGH) // запалити сегмент // згасити сегмент digitalWrite(pins[i],LOW); )
Порядок підключення:

1. Підключаємо семисегментний індикатор за схемою на рис. 7.3.
2. Завантажуємо до плати Arduino скетч з лістингу 7.2.

// Список висновків Arduino для підключення до розрядів a-g // семисегментного індикатора int pins = (9, 13, 4, 6, 7, 10, 3, 5); // Значення для виведення цифр 0-9 byte numbers = (B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B111111111; // Змінна для зберігання та обробки поточного значення int number = 0; int number1 = 0; int number2 = 0; // семисегментного індикатора int pindigits = (2, 8, 11, 12); // Змінна для зберігання поточного розряду int digit = 0; // для відмірювання 100 мс unsigned long millis1 = 0; // Режим 1 - секундомір працює mode = 0; const int BUTTON=14; // Контакт 14(A0) для підключення кнопки int tekButton = LOW; // Змінна для збереження поточного стану кнопки int prevButton = LOW; // Змінна для збереження попереднього стану// до нопки boolean ledOn = false; // Поточний стан світлодіода (ввімкнений/вимкнений) void setup(){ // Налаштувати контакт кнопки як вхід pinMode (BUTTON, INPUT); // Налаштувати контакти як виходи for (int i=0; i<8 ;i++) pinMode(pins[i],OUTPUT); for (int i=0 ;i<4 ;i++) {pinMode(pindigits[i],OUTPUT); digitalWrite(pindigits[i],HIGH); } } void loop ()( tekButton = debounce(prevButton); if (prevButton == LOW && tekButton == HIGH) // якщо натискання... ( mode=1 -mode; // Зміна режиму if (mode==1) number=0; ) if (millis()-millis1>=100 && mode==1 ) (millis1=millis1+100 ; number=number+1 ; if (number==10000 ) number=0 ; ) number1=number; for (int i=0; i<4 ;i++) { number2=number1%10 ; number1=number1/10 ; showNumber(number2,i); for (int j=0 ;j<4 ;j++) digitalWrite(pindigits[j],HIGH); digitalWrite(pindigits[i],LOW); delay(1 ); } } // функція виведення цифри на семисегментний індикатор void showNumber ( int num, int dig)( for (int i = 0; i<8 ;i++) { if (bitRead(numbers,7 -i)==HIGH) // запалити сегмент digitalWrite(pins[i],HIGH); else // згасити сегмент digitalWrite(pins[i],LOW); ) if (dig==1 ) // десяткова точка для другого розряду digitalWrite(pins,HIGH); ) // Функція згладжування брязкоту. Приймає як // Аргумент попередній стан кнопки і видає фактичний. boolean debounce ( boolean last)(boolean current = digitalRead(BUTTON); // Вважати стан кнопки, if (last! = current) // якщо змінилося...(d elay ( 5 ) ; // Чекаємо 5 м з current = digitalRead (BUTTON); // зчитуємо стан кнопки return current; // Повертаємо стан кнопки } }

3. Натисканням кнопки запускаємо або зупиняємо секундомір.



Сподобалася стаття? Поділіться їй