Подключение 12 светодиодов к Arduino Mega |
![](https://kazus.ru/nuke/objects/circuits/0/006j51p84m3aja37o95ac02xn70k4yx9/image/22.png)
Подключите длинные, положительные контакты (аноды) 12 светодиодов к цифровым выводам 2-13 через токоограничивающие резисторы 220 Ом. Подключите короткие, отрицательные контакты (катоды) на землю.
Программа:
В функции setup() программы, for () loop используется для настройки цифровых выходов 2-13 Mega на вывод.
Далее, в функции loop () программы, используется три вложенных цикла for () loops.
Первый
for (int thisPin =lowestPin; thisPin ≤ highestPin; thisPin++)
проходит через каждый индикатор по одному, с первого контакта до последнего. До этого, когда разрешено переходить с одного контакта к следующему, две вещи должны быть выполнены. Во-первых, вы подсвечиваете отдельные светодиоды с помощью этого кода:
Код:
|
for (int brightness = 0; brightness < 255; brightness++) {
analogWrite (thisPin, brightness);
delay (2);
}
|
При каждом проходе через цикл выше, переменная увеличивает яркость на одно значение, и это значение записывается на выходе выбраного контакта в главном цикле. Когда на контакте максимальное значение ШИМ (255), следующий цикл гасит:
Код:
|
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite (thisPin, brightness);
delay (2);
}
|
Этот цикл вычитает из значение переменной яркости, затемняя светодиод. После достижения минимума, главным for () loop, и программа переходит к следующему светодиоду, повторяя все шаги.
Код:
|
/ * Мега analogWrite () пример
Схема: * Светодиоды: контакты от 2 до 13 и к земле.
*/ // Эти константы не изменяются. Они используются для обозначения выводов const int lowestPin = 2; const int highestPin = 13;
void setup () { //настраивает контакты на вывод: for (int thisPin =lowestPin; thisPin ≤ highestPin; thisPin++) { pinMode (thisPin, OUTPUT); } }
void loop () { // итерация по выводам: for (int thisPin =lowestPin; thisPin ≤ highestPin; thisPin++) { // зажигание светодиода: for (int brightness = 0; brightness < 255; brightness++) { analogWrite (thisPin, brightness); delay (2); } // светодиод гаснет: for (int brightness = 255; brightness >= 0; brightness--) { analogWrite (thisPin, brightness); delay (2); } // пауза между индикаторами: delay (100); } }
|
C этой схемой также часто просматривают: |
Детектор поля с линейной шкалой из восьми светодиодов, регулировкой чувствительности и звуковой индикацией
Подключение телефонной линии к звуковой карте
Сплитер (подключение 4-х мониторов)
ПОДКЛЮЧЕНИЕ ТРЕХФАЗНЫХ ПОТРЕБИТЕЛЕЙ К ОДНОФАЗНОЙ СЕТИ
Подключение монитора "Электроника 32 ВТЦ-202" к компьютеру семейства IBM.
Подключаем датчик температуры DS18S20/DS18B20 к Arduino
Подключение LCD HD44780 к Arduino Uno
Калибровка аналогового датчика для Arduino
USB порт как источник питания
| ![](/images/ru/clear.gif) |
Графический семиполосный эквалайзер-радуга на Arduino Nano и MSGEQ7
Часы реального времени для Arduino
Старинные часы-метеостанция
Блок питания для Arduino из ATX
ATX блок питания управляемый Arduino
Arduino своими руками с USB портом
Подключение монетоприемника к Arduino
Подключение PS/2 клавиатуры к Arduino
Пробуждение ПК по сети на Arduino
Запись/чтение на SD-карту с Arduino
|