Урок 4: Світлодіодна шкала 10 сегментів. Обертанням потенціометра міняємо кількість світних світлодіодів
В цьому експерименті ми розглянемо роботу аналогових входів Arduino, роботу потенціометра як аналогового датчика і будемо демонструвати показання аналогового датчика за допомогою світлодіодної шкали.
Необхідні компоненти:
- контролер Arduino UNO R3;
- плата для прототипування;
- потенціометр 2 кОм;
- світлодіодна шкала 10 сегментів;
- резистор 220 Ом;
- дроти тато-тато.
У попередніх експериментах ми розглядали роботу з цифровими виводами Arduino, вони мають тільки два можливих стани: увімкнене, HIGH або LOW, 1 або 0. Але для отримання інформації про навколишній світ необхідно працювати з аналоговими даними, що мають нескінченне число можливих значень в даному діапазоні. Для отримання аналогових даних Arduino має аналогові входи, оснащені 10-бітним аналогово-цифровим перетворювачем для аналогових перетворень. Точність АЦП визначена дозволом. 10-розрядний означає, що АЦП може розділити аналоговий сигнал на 210 різних значень. Отже, Arduino може привласнити 210 = 1024 аналогових значення, від 0 до 1023. Опорна напруга визначає максимальне напруження, його значення відповідає значенню 1 023 АЦП. При напрузі 0 В на контакті АЦП повертає значення 0, опорна напруга повертає значення 1023. Незважаючи на те що можна змінити опорну напругу, ми будемо використовувати опорну напругу 5 В.

Рис. 4.1. Схема підключення потенціометра як аналогового датчика
Розглянемо, як використовувати потенціометр як аналоговий датчик. Рис. 4.1 показує, як правильно підключити ваш потенціометр до Arduino як аналоговий датчик. Ми підключаємо один з крайніх виводів на землю, інший крайній вивід - до +5 В. Середній вивід потенціометра підключаємо до аналогового входу A0 плати Arduino. Для зчитування даних з аналогового порту в Arduino є функція analogRead (). Завантажуємо на плату Arduino скетч з лістингу 4.1 для зчитування значень з аналогового порту і виведення їх в монітор послідовного порту Arduino.
int valpot = 0; // змінна для зберігання значення потенціометра
void setup ()
{
Serial.begin (9600);
}
void loop ()
{
valpot = analogRead (POT); // читання даних потенциометра
Serial.println (valpot); // вивід значень в послідовний порт
delay (500); // затримка 0.5 сек
}
Порядок підключення:
- Підключаємо потенціометр за схемою на рис. 4.1.
- Завантажуємо в плату Arduino скетч з лістингу 4.1.
- Запускаємо в Arduino IDE монітор послідовного порту.
- Повертаємо ручку потенціометра і спостерігаємо вивід аналогових значень потенціометра в монітор послідовного порту (див. Рис. 4.2).

Рис. 4.2. вивід аналогових значень потенціометра в монітор послідовного порту
Тепер візуалізуємо аналогові дані потенціометра за допомогою 10-розрядної лінійної світлодіодним шкали. Шкала являє собою збірку з 10 незалежних світлодіодів з катодами з боку надпису на корпусі. Для підключення шкали до Arduino будемо використовувати 10 цифрових виводів D3-D12. Схема з'єднань показана на рис. 4.3. Кожен з світлодіодів шкали виводом анода з'єднаний з цифровим виведенням Arduino, а катодом на землю послідовно з'єднаний з резистором 220 Ом. Аналогові дані потенціометра (0-1023) масштабується в дані шкали (0-10) за допомогою функції map () і запалюємо відповідну кількість світлодіодів. Скетч приведений в лістингу 4.2.
int valpot = 0; // змінна для зберігання значення потенціометра
// список контактів підключення світлодіодної шкали
const int pinsled [10] = {3,4,5,6,7,8,9,10,11,12};
int countleds = 0; // змінна для зберігання значення шкали
void setup ()
{
for (int i = 0; i <10; i ++)
{
// Конфігурувати контакти приєднання шкали як виходи
pinMode (pinsled [i], OUTPUT);
digitalWrite (pinsled [i], LOW);
{
}
void loop ()
{
valpot = analogRead (POT); // читання даних потенциометра
// масштабується значення до інтервалу 0-10
countled = map (valpot, 0,1023,0,10);
// запалюємо кількість смужок на шкалі, рівне countled
for (int i = 0; i <10; i ++)
{
if (i
else // гасимо світлодіод шкали
digitalWrite (pinsled [i], LOW);
}
}
- Підключаємо потенціометр за схемою на рис. 4.1.
- Підключаємо виводи світлодіодним шкали контактами анодів через обмежувальні резистори номіналом 220 Ом до виводів Arduino D3-D12, контактами катодів - на землю (див. Рис. 4.3) .
- Завантажуємо в плату Arduino скетч з лістингу 4.2.
- Повертаємо ручку потенціометра і спостерігаємо на світлодіодним шкалою рівень значення потенціометра від максимального номіналу.

Рис. 4.3. Схема підключення лінійної світлодіодним шкали