Аналоговые входы на Arduino Mega

Аналоговые входы на Arduino Mega

Плавное включение и выключение 12 светодиодов поочередно с использованием платы Arduino Mega.

В этом примере демонстрируется постепенное зажигание и затухание 12 светодиодов один за другим на плате Arduino Mega, используя увеличенное количество цифровых пинов с поддержкой ШИМ на этой плате.

Нам понадобятся:

  • Плата Arduino Mega
  • 12 красных светодиодов
  • 12 резисторов по 220 Ом
  • Провода
  • Макетная плата


Подключение:

Схема:


Подключите более длинные положительные ноги (аноды) 12 светодиодов к цифровым пинам со 2 по 13 через резисторы ограничения по 220 Ом.
Подключите более короткие ноги (катоды) к земле.

Код:

/*
Плавное мерцание светодиодов на Arduino Mega
Этот скетч осуществляет плавное мерцание светодиодов один за другим на цифровых пинах с 2 по 13.
Этот скетч был написан для Arduino Mega и не будет работать на других платах.

Схема:
Светодиоды подключены от пинов 2 до 13 к земле.
*/

// Эти константы не будут изменены. Они используются для именования использованных пинов:
const int lowestPin = 2;
const int highestPin = 13;

void setup() {
  // устанавливаем пины с 2 по 13 в режим вывода:
  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);
  }
}

В функции setup() кода используется цикл for(), чтобы объявить цифровые пины 2-13 Mega как выходы.

Затем в функции loop() программы используется три вложенных цикла for().

Первый из этих циклов,
for (int thisPin = lowestPin; thisPin <= highestPin; thisPin++)
последовательно проходит через каждый светодиод, от самого низкого пина к самому высокому.
Прежде чем этот цикл сможет перейти к следующему пину, должны быть выполнены две задачи.
Во-первых, индивидуальный светодиод зажигается с использованием следующего кода:

for (int brightness = 0; brightness < 255; brightness++) { 
  analogWrite(thisPin, brightness); 
  delay(2); 
}


На каждом шаге цикла переменная brightness увеличивается на единицу, и это значение записывается на выбранный в данный момент пин в основном цикле.
Как только пин достигает максимального значения ШИМ (255), запускается следующий цикл:

for (int brightness = 255; brightness >= 0; brightness--) { 
  analogWrite(thisPin, brightness); 
  delay(2); 
}

Этот цикл вычитает единицу из переменной brightness, плавно гася светодиод до 0.
Когда достигается ноль, возобновляется основной цикл for(), и программа переходит к следующему пину светодиода, повторяя все вышеописанные шаги.

5 примеров использования:

Декоративная подсветка: Используйте этот пример для создания эффектной декоративной подсветки в интерьере. Подключите 12 светодиодов к Arduino Mega и создайте уникальные световые сценарии, подчеркивая атмосферу в комнате.

Сигнальная система: Можно использовать 12 светодиодов для создания сигнальной системы.
Например, при подключении к различным сенсорам или датчикам каждый светодиод может сигнализировать о разных условиях.

Индикатор производительности: Примените этот пример для создания визуального индикатора производительности системы. Каждый светодиод может представлять определенный параметр, такой как использование процессора, объем памяти, заряда батареи и другие.

Учебные цели: Этот проект идеально подходит для обучения основам программирования Arduino и работы с цифровыми и аналоговыми пинами.
Учащиеся могут изучить принципы управления светодиодами и использовать различные циклы.

Световое искусство: Примените эти мерцающие светодиоды для создания уникальных световых инсталляций и искусственного освещения.
Этот пример отлично подходит для художественных проектов и экспериментов с цветом и движением света.

Дополнительные материалы по теме
Музыкальная клавиатура на Ардуино
Динамики ардуино. Подключение динамиков к Arduino
Аналоговый вход, аналоговый выход, вывод в последовательный монитор порта
"Подключение фоторезистора к плате Ардуино" Урок № 2
Фоторезистор 5506
Подключение пищалки (BUZZER) к плате Ардуино
Звуки Ардуино из разных динамиков.
Музыкальная шкатулка. Ардуино
VU METR Музыка в цвете
Мелодии для Ардуино на пищалке. Пример и код.