Відмінності між версіями «Константи»
Oogway (обговорення • внесок) (Створена сторінка: Константи Константи в мові Arduino – це наперед визначені змінні. Їх використовують для п...) |
Oogway (обговорення • внесок) |
||
| Рядок 1: | Рядок 1: | ||
| − | Константи | + | ==Константи== |
| Рядок 5: | Рядок 5: | ||
| − | Константи, що визначають логічні рівні: true чи false (Булеві константи) | + | ===Константи, що визначають логічні рівні: true чи false (Булеві константи)=== |
У мові Arduino є дві константи, що позначають істинність чи хибність, - true та false. | У мові Arduino є дві константи, що позначають істинність чи хибність, - true та false. | ||
| − | false | + | ====false==== |
false найлегше визначити із цієї пари. false задається як 0 (нуль). | false найлегше визначити із цієї пари. false задається як 0 (нуль). | ||
| − | true | + | |
| + | ====true==== | ||
true часто визначають як 1, що є правильним, проте не єдино можливим варіантом. Будь-яке ціле число, котре не є нулем, буде true у контексті Булевої логіки. Наприклад, значення -1, 2 і -200 усі будуть істинні (true) у Булевому сенсі. | true часто визначають як 1, що є правильним, проте не єдино можливим варіантом. Будь-яке ціле число, котре не є нулем, буде true у контексті Булевої логіки. Наприклад, значення -1, 2 і -200 усі будуть істинні (true) у Булевому сенсі. | ||
| Рядок 20: | Рядок 21: | ||
| − | Константи, що визначають рівень напруги на виводах: HIGH та LOW | + | ===Константи, що визначають рівень напруги на виводах: HIGH та LOW=== |
Цифрові виводи можуть виводити або зчитувати лише два значення: HIGH чи LOW. | Цифрові виводи можуть виводити або зчитувати лише два значення: HIGH чи LOW. | ||
| − | HIGH | + | |
| − | Значення цифрового виводу HIGH відрізняється залежно від того, чи запрограмовано вивід як вхід (INPUT) чи як вихід (OUTPUT). Коли вивід сконфігуровано як вхід (INPUT) за допомогою функції pinMode(), то під час зчитування (через функцію digitalRead())Arduino ( | + | |
| + | ====HIGH==== | ||
| + | |||
| + | Значення цифрового виводу HIGH відрізняється залежно від того, чи запрограмовано вивід як вхід (INPUT) чи як вихід (OUTPUT). Коли вивід сконфігуровано як вхід (INPUT) за допомогою функції pinMode(), то під час зчитування (через функцію digitalRead())Arduino (Atmega) видасть значення HIGH, якщо: | ||
| + | |||
• напруга на виводі більша за 3 В (5-вольтові плати); | • напруга на виводі більша за 3 В (5-вольтові плати); | ||
| + | |||
• напруга на виводі більша за 2 В (3,3-вольтові плати). | • напруга на виводі більша за 2 В (3,3-вольтові плати). | ||
| + | |||
Окрім того, сконфігурованому як вхід (INPUT) виводу можна задати значення HIGH через функцію digitalWrite(). Це запустить в дію внутрішні підтягувальні резистори номіналом 20 кОм і призведе до виникнення на виводі високого рівня HIGH. Під час зчитування значення HIGH утримуватиметься доти, доки вивід не опустять до значення LOW зовнішні елементи схеми. Саме так працює змінна INPUT_PULLUP, про що детальніше буде описано нижче. | Окрім того, сконфігурованому як вхід (INPUT) виводу можна задати значення HIGH через функцію digitalWrite(). Це запустить в дію внутрішні підтягувальні резистори номіналом 20 кОм і призведе до виникнення на виводі високого рівня HIGH. Під час зчитування значення HIGH утримуватиметься доти, доки вивід не опустять до значення LOW зовнішні елементи схеми. Саме так працює змінна INPUT_PULLUP, про що детальніше буде описано нижче. | ||
| + | |||
| + | |||
Коли вивід сконфігуровано як вихід (OUTPUT) через функцію pinMode() і на нього подано високий рівень напруги HIGH через функцію digitalWrite(), напруга на виводі буде: | Коли вивід сконфігуровано як вихід (OUTPUT) через функцію pinMode() і на нього подано високий рівень напруги HIGH через функцію digitalWrite(), напруга на виводі буде: | ||
| + | |||
• 5 В (5-вольтові плати); | • 5 В (5-вольтові плати); | ||
| + | |||
• 3,3 В (3,3-вольтові плати). | • 3,3 В (3,3-вольтові плати). | ||
| + | |||
У такому стані він може подавати струм, наприклад, живити світлодіод, послідовно під’єднаний через резистор до землі. | У такому стані він може подавати струм, наприклад, живити світлодіод, послідовно під’єднаний через резистор до землі. | ||
| − | LOW | + | |
| − | Константа LOW також має різні значення залежно від того, сконфігуровано вивід як вхід або як вихід. Коли за допомогою pinMode()вивід запрограмовано як вхід (INPUT), під час зчитування через digitalRead() Arduino ( | + | |
| + | ====LOW==== | ||
| + | |||
| + | Константа LOW також має різні значення залежно від того, сконфігуровано вивід як вхід або як вихід. Коли за допомогою pinMode()вивід запрограмовано як вхід (INPUT), під час зчитування через digitalRead() Arduino (Atmega) видасть значення LOW, якщо: | ||
| + | |||
• напруга на виводі менша за 3 В (5-вольтові плати); | • напруга на виводі менша за 3 В (5-вольтові плати); | ||
| + | |||
• напруга на виводі менша за 2 В (3,3-вольтові плати). | • напруга на виводі менша за 2 В (3,3-вольтові плати). | ||
| + | |||
Коли ж вивід сконфігуровано як OUTPUT за допомогою pinMode()і запрограмовано на LOW через функцію digitalWrite(), він має напругу 0 В (для обох 5- і 3,3-вольтових плат). В цьому стані струм може втікати у вивід, наприклад, від світлодіода, котрий послідовно під’єднано через резистор до +5 В (або +3,3 В). | Коли ж вивід сконфігуровано як OUTPUT за допомогою pinMode()і запрограмовано на LOW через функцію digitalWrite(), він має напругу 0 В (для обох 5- і 3,3-вольтових плат). В цьому стані струм може втікати у вивід, наприклад, від світлодіода, котрий послідовно під’єднано через резистор до +5 В (або +3,3 В). | ||
| − | Константи, що визначають режим цифрового виводу: INPUT, INPUT_PULLUP та OUTPUT | + | |
| + | ===Константи, що визначають режим цифрового виводу: INPUT, INPUT_PULLUP та OUTPUT=== | ||
| + | |||
Цифрові виводи можна використовувати в режимах INPUT (вхід), INPUT_PULLUP та OUTPUT (вихід). Через зміну виводу за допомогою функції pinMode() міняється його режим роботи. | Цифрові виводи можна використовувати в режимах INPUT (вхід), INPUT_PULLUP та OUTPUT (вихід). Через зміну виводу за допомогою функції pinMode() міняється його режим роботи. | ||
| − | Виводи, сконфігуровані як вхід | + | |
| − | Виводи Arduino (ATmega), сконфігуровані як вхід через pinMode() , перебувають у високоімпедансному стані (стані повного опору). Такі виводи потребують дуже небагато ресурсів від плати, як і послідовний резистор опором 100 Ом, розміщений перед виводом. Завдяки цьому такий режим виводу зручний для зчитування сигналів із датчиків. | + | ====Виводи, сконфігуровані як вхід==== |
| + | |||
| + | Виводи Arduino (ATmega), сконфігуровані як вхід через pinMode() , перебувають у високоімпедансному стані (стані повного опору). Такі виводи потребують дуже небагато ресурсів від плати, як і послідовний резистор опором 100 Ом, розміщений перед виводом. Завдяки цьому такий режим виводу зручний для зчитування сигналів із датчиків. | ||
| + | |||
Якщо ви сконфігурували вивід як вхід і хочете зчитати стан перемикача, коли той увімкнений, вивід почне «плавати» з непередбачуваним результатом. Цю проблему вирішує підтягувальний або відтягувальний резистор. Його функція – підтягувати вивід до необхідного стану, коли перемикач увімкнено. Зазвичай для цього беруть 10-кілоомний резистор, оскільки 10 кОм якраз достатньо, щоб запобігти «плаванню» входу і водночас не використовувати надто багато струму, коли перемикач вимкнено. Детальніше див. у - Digital Read Serial. | Якщо ви сконфігурували вивід як вхід і хочете зчитати стан перемикача, коли той увімкнений, вивід почне «плавати» з непередбачуваним результатом. Цю проблему вирішує підтягувальний або відтягувальний резистор. Його функція – підтягувати вивід до необхідного стану, коли перемикач увімкнено. Зазвичай для цього беруть 10-кілоомний резистор, оскільки 10 кОм якраз достатньо, щоб запобігти «плаванню» входу і водночас не використовувати надто багато струму, коли перемикач вимкнено. Детальніше див. у - Digital Read Serial. | ||
| + | |||
Якщо використовувати відтягувальний резистор, вхідний вивід буде LOW , коли перемикач увімкнено, і HIGH, коли перемикач вимкнено. | Якщо використовувати відтягувальний резистор, вхідний вивід буде LOW , коли перемикач увімкнено, і HIGH, коли перемикач вимкнено. | ||
| + | |||
З підтягувальним резистором навпаки: HIGH, коли перемикач увімкнено, та LOW, коли його вимкнено. | З підтягувальним резистором навпаки: HIGH, коли перемикач увімкнено, та LOW, коли його вимкнено. | ||
| − | Виводи, сконфігуровані як INPUT_PULLUP | + | |
| − | Мікроконтроллер | + | |
| + | ====Виводи, сконфігуровані як INPUT_PULLUP==== | ||
| + | |||
| + | Мікроконтроллер Atmega має вбудовані підтягувальні резистори (вони внутрішньо під’єднуються до живлення), до яких є доступ. Щоб використати їх замість зовнішніх підтягувальних резисторів, знадобиться режим INPUT_PULLUP у функції pinMode(). | ||
| + | |||
Див. Input Pullup Serial як приклад використання цього режиму. | Див. Input Pullup Serial як приклад використання цього режиму. | ||
| + | |||
Виводи, сконфігуровані як INPUT чи INPUT_PULLUP, можна пошкодити або вивести з ладу, якщо під’єднати їх до напруги, нижчої за землю (від’ємна напруга), або до напруги, вищої за напругу живлення (5 В або 3 В). | Виводи, сконфігуровані як INPUT чи INPUT_PULLUP, можна пошкодити або вивести з ладу, якщо під’єднати їх до напруги, нижчої за землю (від’ємна напруга), або до напруги, вищої за напругу живлення (5 В або 3 В). | ||
| − | Виводи, сконфігуровані як вихід | + | |
| − | Виводи, сконфігуровані як вихід через pinMode(), перебувають у низькоімпедансному стані. Це означає, що вони можуть постачати достатньо струму до інших елементів схеми. Виводи | + | |
| + | ====Виводи, сконфігуровані як вихід==== | ||
| + | |||
| + | Виводи, сконфігуровані як вихід через pinMode(), перебувають у низькоімпедансному стані. Це означає, що вони можуть постачати достатньо струму до інших елементів схеми. Виводи Atmega можуть постачати або поглинати струм до 40 мА від інших пристроїв/схем. Саме тому їх зручно використовувати для живлення світлодіодів, адже останні потребують менше 40 мА. Для більших навантажень (наприклад, для моторів), знадобиться транзистор або інші додаткові елементи керування. | ||
| + | |||
Виводи, сконфігуровані як вихід, можна пошкодити або вивести з ладу, якщо під’єднати їх до джерела напруги. | Виводи, сконфігуровані як вихід, можна пошкодити або вивести з ладу, якщо під’єднати їх до джерела напруги. | ||
| − | Вбудована константа: LED_BUILTIN | + | |
| + | |||
| + | ===Вбудована константа: LED_BUILTIN=== | ||
| + | |||
Більшість плат Arduino мають вивід, під’єднаний до вбудованого світлодіода з послідовним резистором. Константа – це номер виводу, до якого під’єднано вбудований світлодіод. На більшості плат це вивід номер 13. | Більшість плат Arduino мають вивід, під’єднаний до вбудованого світлодіода з послідовним резистором. Константа – це номер виводу, до якого під’єднано вбудований світлодіод. На більшості плат це вивід номер 13. | ||
| + | |||
| + | |||
Див. також | Див. також | ||
| + | |||
• pinMode() | • pinMode() | ||
| + | |||
• Цілочисельні константи | • Цілочисельні константи | ||
| + | |||
• Змінні Boolean | • Змінні Boolean | ||
Версія за 22:55, 9 липня 2016
Зміст
Константи
Константи в мові Arduino – це наперед визначені змінні. Їх використовують для полегшення читабельності програм. Існують наступні групи констант:
Константи, що визначають логічні рівні: true чи false (Булеві константи)
У мові Arduino є дві константи, що позначають істинність чи хибність, - true та false.
false
false найлегше визначити із цієї пари. false задається як 0 (нуль).
true
true часто визначають як 1, що є правильним, проте не єдино можливим варіантом. Будь-яке ціле число, котре не є нулем, буде true у контексті Булевої логіки. Наприклад, значення -1, 2 і -200 усі будуть істинні (true) у Булевому сенсі.
Зверніть увагу, що константи true та false пишуть з малої літери, на відміну від HIGH, LOW, INPUT та OUTPUT.
Константи, що визначають рівень напруги на виводах: HIGH та LOW
Цифрові виводи можуть виводити або зчитувати лише два значення: HIGH чи LOW.
HIGH
Значення цифрового виводу HIGH відрізняється залежно від того, чи запрограмовано вивід як вхід (INPUT) чи як вихід (OUTPUT). Коли вивід сконфігуровано як вхід (INPUT) за допомогою функції pinMode(), то під час зчитування (через функцію digitalRead())Arduino (Atmega) видасть значення HIGH, якщо:
• напруга на виводі більша за 3 В (5-вольтові плати);
• напруга на виводі більша за 2 В (3,3-вольтові плати).
Окрім того, сконфігурованому як вхід (INPUT) виводу можна задати значення HIGH через функцію digitalWrite(). Це запустить в дію внутрішні підтягувальні резистори номіналом 20 кОм і призведе до виникнення на виводі високого рівня HIGH. Під час зчитування значення HIGH утримуватиметься доти, доки вивід не опустять до значення LOW зовнішні елементи схеми. Саме так працює змінна INPUT_PULLUP, про що детальніше буде описано нижче.
Коли вивід сконфігуровано як вихід (OUTPUT) через функцію pinMode() і на нього подано високий рівень напруги HIGH через функцію digitalWrite(), напруга на виводі буде:
• 5 В (5-вольтові плати);
• 3,3 В (3,3-вольтові плати).
У такому стані він може подавати струм, наприклад, живити світлодіод, послідовно під’єднаний через резистор до землі.
LOW
Константа LOW також має різні значення залежно від того, сконфігуровано вивід як вхід або як вихід. Коли за допомогою pinMode()вивід запрограмовано як вхід (INPUT), під час зчитування через digitalRead() Arduino (Atmega) видасть значення LOW, якщо:
• напруга на виводі менша за 3 В (5-вольтові плати);
• напруга на виводі менша за 2 В (3,3-вольтові плати).
Коли ж вивід сконфігуровано як OUTPUT за допомогою pinMode()і запрограмовано на LOW через функцію digitalWrite(), він має напругу 0 В (для обох 5- і 3,3-вольтових плат). В цьому стані струм може втікати у вивід, наприклад, від світлодіода, котрий послідовно під’єднано через резистор до +5 В (або +3,3 В).
Константи, що визначають режим цифрового виводу: INPUT, INPUT_PULLUP та OUTPUT
Цифрові виводи можна використовувати в режимах INPUT (вхід), INPUT_PULLUP та OUTPUT (вихід). Через зміну виводу за допомогою функції pinMode() міняється його режим роботи.
Виводи, сконфігуровані як вхід
Виводи Arduino (ATmega), сконфігуровані як вхід через pinMode() , перебувають у високоімпедансному стані (стані повного опору). Такі виводи потребують дуже небагато ресурсів від плати, як і послідовний резистор опором 100 Ом, розміщений перед виводом. Завдяки цьому такий режим виводу зручний для зчитування сигналів із датчиків.
Якщо ви сконфігурували вивід як вхід і хочете зчитати стан перемикача, коли той увімкнений, вивід почне «плавати» з непередбачуваним результатом. Цю проблему вирішує підтягувальний або відтягувальний резистор. Його функція – підтягувати вивід до необхідного стану, коли перемикач увімкнено. Зазвичай для цього беруть 10-кілоомний резистор, оскільки 10 кОм якраз достатньо, щоб запобігти «плаванню» входу і водночас не використовувати надто багато струму, коли перемикач вимкнено. Детальніше див. у - Digital Read Serial.
Якщо використовувати відтягувальний резистор, вхідний вивід буде LOW , коли перемикач увімкнено, і HIGH, коли перемикач вимкнено.
З підтягувальним резистором навпаки: HIGH, коли перемикач увімкнено, та LOW, коли його вимкнено.
Виводи, сконфігуровані як INPUT_PULLUP
Мікроконтроллер Atmega має вбудовані підтягувальні резистори (вони внутрішньо під’єднуються до живлення), до яких є доступ. Щоб використати їх замість зовнішніх підтягувальних резисторів, знадобиться режим INPUT_PULLUP у функції pinMode().
Див. Input Pullup Serial як приклад використання цього режиму.
Виводи, сконфігуровані як INPUT чи INPUT_PULLUP, можна пошкодити або вивести з ладу, якщо під’єднати їх до напруги, нижчої за землю (від’ємна напруга), або до напруги, вищої за напругу живлення (5 В або 3 В).
Виводи, сконфігуровані як вихід
Виводи, сконфігуровані як вихід через pinMode(), перебувають у низькоімпедансному стані. Це означає, що вони можуть постачати достатньо струму до інших елементів схеми. Виводи Atmega можуть постачати або поглинати струм до 40 мА від інших пристроїв/схем. Саме тому їх зручно використовувати для живлення світлодіодів, адже останні потребують менше 40 мА. Для більших навантажень (наприклад, для моторів), знадобиться транзистор або інші додаткові елементи керування.
Виводи, сконфігуровані як вихід, можна пошкодити або вивести з ладу, якщо під’єднати їх до джерела напруги.
Вбудована константа: LED_BUILTIN
Більшість плат Arduino мають вивід, під’єднаний до вбудованого світлодіода з послідовним резистором. Константа – це номер виводу, до якого під’єднано вбудований світлодіод. На більшості плат це вивід номер 13.
Див. також
• pinMode()
• Цілочисельні константи
• Змінні Boolean
