Константи

Документація

Константи


Константи — це попередньо визначені вирази в мові Arduino. Вони використовуються, щоб програми було легше читати. Константи класифікуються по групах:

Визначення логічних рівнів: true та false (логічні константи)


Є дві константи, які використовуються, щоб відобразити істинність і хибність у мові Arduino: true та false.

false

false легший з двох для визначення. false визначається як 0 (нуль).

true

Часто кажуть, що true визначається як 1, що є правдою, проте true має ширше трактування. Будь-яке ненульове ціле число є true у логічному сенсі. Тому -1,2 та -200 визначаться як true теж, у логічному сенсі.

Зауважте, що константи true та false набираються у нижньому регістрі на відміну від HIGH, LOW, INPUT та OUTPUT.

Визначення рівнів пінів: HIGH та LOW


При читанні чи записуванні у цифрові піни існує лише два можливі значення, які вони можуть виводити або зчитувати: HIGH та LOW.

HIGH

Значення HIGH відрізняється залежно від того, пін налаштовано на вхід чи вихід. Коли пін налаштований як вхід командою pinMode(), а зчитується командою digitalRead(), Arduino (Atmega) звітуватиме про HIGH, якщо:

  • напруга на піні більша за 3 В (плата з живленням 5 В);

  • напруга на піні більша за 2 В (плата з живленням 3,3 В);

Пін також може бути налаштований як вхід командою pinMode(), і згодом видасть HIGH командою digitalWrite(). Підключення підтягуючих резисторів на 20 кОм дозволить досягнути сигналу HIGH, яких зберігатиметься, поки зовнішніми ланцюгами не буде сформовано сигнал LOW. Саме так працює INPUT_PULLUP, що описано детальніше нижче.

Коли пін сконфігуровано як вихід командою pinMode() та налаштовано на HIGH командою digitalWrite(), пін матиме напругу:

  • 5 В (на платах з живленням 5 В);

  • 3,3 В (на платах з живленням 3,3 В);

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

LOW

LOW теж має різне значення, залежно від того, пін налаштовано на вхід чи вихід. Коли пін налаштовано як вхід командою pinMode() та зчитується командою digitalRead(), Arduino (Atmega) звітуватиме LOW, якщо:

  • напруга на піні менше 1,5 В (для плат з живленням 5В);

  • напруга на піні менше 1 В (для плат з живленням 3,3 В);

Коли пін налаштовано на вихід командою pinMode() та на LOW команд digitalWrite(), напруга на ньому становитиме 0 В (для плат з живленням 3,3 та 5 В). У такому стані він може приймати струм, наприклад, від світлодіода, підключеного через резистор до 5 В (чи 3,3 В).

Визначення режимів цифрових пінів: INPUT, INPUT_PULLUP, and OUTPUT


Цифрові піни можуть бути використані як INPUT, INPUT_PULLUP чи OUTPUT. Зміна піна командою pinMode() змінює його електричну поведінку.

Піни сконфігурвані як INPUT

Піни Arduino (Atmega), сконфігуровані як INPUT командою pinMode(), перебувають у високоімпедансному стані. Піни, сконфігуровані на INPUT, роблять надзвичайно маленькі запити до ланцюга, який вони випробовують, еквівалентні резистору 100 МОм перед піном. Це робить їх корисними для зчитування датчиків.

Якщо ви скофігурували пін як INPUT і зчитуєте перемикач, коли перемикач перебуває у відкритому стані, вхідний пін буде “плаваючим”, що призводить до непередбачуваних результатів. Щоб забезпечити належне зчитування, коли перемикач відкритий, слід використовувати підтягуючі та стягуючі резистори. Призначення цього резистора полягає в тому, щоб підтягнути пін у потрібний стан, коли перемикач відкритий. Зазвичай використовують резистори на 10 кОм, адже це значення достатньо низьке для надійного запобігання плаваючого входу, і в той же час достатньо високе, щоб не притягнути забагато струму, коли перемикач замкнутий.

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

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

Піни сконфігуровані як INPUT_PULLUP

Мікроконтролер Atmega на Arduino має внутрішні підтягуючі резистори (резистори, які підключаються до живлення внутрішньо), до яких можна отримати доступ. Якщо Ви надаєте перевагу використовувати їх замість зовнішніх підтягуючих резисторів, можете скористатися аргументом INPUT_PULLUP у pinMode().

Піни сконфігуровані як входи за допомогою INPUT або INPUT_PULLUP можуть бути пошкоджені або знищені, якщо вони підключені до напруг нижче землі (негативні напруги) чи вище позитивної шини живлення (5 В чи 3 В).

Піни сконфігуровані як OUTPUT

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

Піни, сконфігуровані як виходи можуть бути пошкоджені або знищені, якщо вони під’єднані до землі або позитивної шини живлення.

Визначення вбудованих модулів: LED_BUILTIN


Більшість плат Arduino мають пін, підключений до вбудованого на плату світлодіода послідовно з резистором. Константа LED_BUILTIN є числом пінів, до яких під’єднано вбудований світлодіод. У більшості плат вбудований світлодіод приєднаний до цифрового піна 13.

Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.