В этом проекте вы примените знания из предыдущих проектов и создадите светодиодную панель, управляемую потенциометром.
Нам понадобится
- Плата Arduino
- Макетная плата
- Перемычки
- 9 светодиодов
- Потенциометр с сопротивлением 50 кОм
- 9 резисторов с сопротивлением 220 Ом каждый


Принцип работы
Устройство из этого проекта представляет собой ряд светодиодов в виде линии. Нечто подобное вы могли видеть в виде спектроанализатора на аудиотехнике и в аудиопрограммах. Панель состоит из ряда светодиодов с аналоговым входом, например потенциометром или микрофоном. В этом проекте вы будете подавать аналоговый сигнал от потенциометра для управления светодиодами. Когда вы поворачиваете ручку потенциометра в одну сторону, светодиоды загораются по очереди, как показано на рис. 3.1 (а), пока они не будут включены все, как показано на рис. 3.1 (б). Когда вы поворачиваете его в другую сторону, они поочередно выключаются, как показано на рис. 3.1 (в).



Сборка
1. Установите светодиоды на макетную плату, при этом короткие ножки (катоды) должны быть подключены к шине заземления. Подключите шину заземления к контакту GND платы Arduino с помощью перемычки.
2. Установите на макетную плату по одному резистору с сопротивлением 220 Ом на каждый светодиод, одна ножка резистора должна быть соединена с длинной ножкой (анодом) светодиода. Другую ножку каждого резистора подключите к цифровым контактам 2-10 соответственно, как показано на рис. 3.2. Важно, чтобы резисторы при подключении как бы образовали «мостики» через канавку макетной платы, как показано на рисунке.


Как упоминалось в проекте 2, на самом деле не имеет значения, каким образом подключаются внешние контакты потенциометра. В тексте я привел инструкции в соответствии с показанным изображением.

3. Установите потенциометр на макетную плату и подключите его центральную ножку потенциометра к контакту АО платы Arduino. Подключите правую внешнюю ножку потенциометра к контакту 5V платы Arduino, а левую потенциометра — к контакту GND платы Arduino.
4. Загрузите в память Arduino код скетча, приведенный в разделе «Скетч» далее в этом проекте.
Скетч
Сначала скетч считывает данные с потенциометра. Код распределяет входное значение в виде выходного диапазона, в данном случае на девять светодиодов. Затем запускается цикл for для подачи питания на выводы. Если номер выхода светодиода на панели меньше, чем значение в диапазоне, светодиод включается; если больше — отключается. Как видите, все просто. Если вы повернете ручку потенциометра вправо, светодиоды будут последовательно загораться. Повернете влево — гаснуть один за другим.
const int analogPin = A0; // Контакт, к которому подключен потенциометр const int ledCount = 9; // Количество светодиодов int ledPins[] = {2,3,4,5,6,7,8,9,10}; // Контакты, к которым подключены светодиоды void setup () { for (int thisLed = 0; thisLed < ledCount; thisLed++) { pinMode(ledPins[thisLed], OUTPUT); // Перевод контактов, к которым подключены светодиоды, в режим вывода } } // Начало цикла void loop () { int sensorReading = analogRead(analogPin); // Аналоговый вход int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); for (int thisLed = 0; thisLed < ledCount; thisLed++) { if (thisLed < ledLevel) { // Последовательное включение светодиодов digitalWrite(ledPins[thisLed] , HIGH); } else { // Последовательное выключение светодиодов digitalWrite(ledPins[thisLed], LOW); } } }
Теги: