В этом проекте вы примените знания из предыдущих проектов и создадите светодиодную панель, управляемую потенциометром.
Нам понадобится
- Плата Arduino
- Макетная плата
- Перемычки
- 9 светодиодов
- Потенциометр с сопротивлением 50 кОм
- 9 резисторов с сопротивлением 220 Ом каждый
Рисунок 2.0: Нам понадобитсяПринцип работы
Устройство из этого проекта представляет собой ряд светодиодов в виде линии. Нечто подобное вы могли видеть в виде спектроанализатора на аудиотехнике и в аудиопрограммах. Панель состоит из ряда светодиодов с аналоговым входом, например потенциометром или микрофоном. В этом проекте вы будете подавать аналоговый сигнал от потенциометра для управления светодиодами. Когда вы поворачиваете ручку потенциометра в одну сторону, светодиоды загораются по очереди, как показано на рис. 3.1 (а), пока они не будут включены все, как показано на рис. 3.1 (б). Когда вы поворачиваете его в другую сторону, они поочередно выключаются, как показано на рис. 3.1 (в).
Рисунок 3.1(а)
Рисунок 3.1(б)
Рисунок 3.1(в)Сборка
1. Установите светодиоды на макетную плату, при этом короткие ножки (катоды) должны быть подключены к шине заземления. Подключите шину заземления к контакту GND платы Arduino с помощью перемычки.
2. Установите на макетную плату по одному резистору с сопротивлением 220 Ом на каждый светодиод, одна ножка резистора должна быть соединена с длинной ножкой (анодом) светодиода. Другую ножку каждого резистора подключите к цифровым контактам 2-10 соответственно, как показано на рис. 3.2. Важно, чтобы резисторы при подключении как бы образовали «мостики» через канавку макетной платы, как показано на рисунке.
Подключение
Рисунок 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);
}
}
}
Теги: