Как сделать led анимацию звука в arduino

Звук на Arduino

звук на ArduinoВ этой статье я рассмотрю примеры работы со звуков на контроллере Arduino

Данный пример я планирую использовать в системе звукового оповещения домашней метеостанции, чтобы своевременно реагировать на критические значения измеряемых параметров.

Подключение пьезоизлучателя к Arduino

На самом деле подключение очень простое:

  • 1 вывод пьезоизлучателя подключаем к 9 дискретному пину Arduino
  • 2 вывод пьезоизлучателя подключаем к GND Arduino

звук на Arduino

Генерация звуков на Arduino

Для генерации звуков на Arduino существует функция tone()

Функция tone()

Генерирует сигнал прямоугольной формы с заданной частотой. Длительность может быть задана параметром. Без указания длительности сигнал генерируется пока не будет вызвана функция noTone(). К порту Arduino может быть подключен к пьезо или другой высокоомный динамик для воспроизведения сигнала. Одновременно может воспроизводиться только один сигнал.

Синтаксис функции tone()

  • tone(pin, частота)
  • tone(pin, частота, длительность)

Пример использования функции tone()

const int SoundPin = 9; // Пин подключения пьезоизлучателя – 9 дискретный
int DelaySound = 1000; // Пауза 1 секунда

void setup()
<
>

void loop()
<
// Пример использования tone()
//tone(pin, частота)
tone(SoundPin, 1915); // Воспроизводим сигнал с частотой 1915 Гц
delay(DelaySound); // Пауза 1 секунда (1000 миллисекунд – значение переменной DelaySound ) – длительность воспроизведения сигнала

tone(SoundPin, 1700);
delay(DelaySound);

tone(SoundPin, 1519);
delay(DelaySound);

tone(SoundPin, 1432);
delay(DelaySound);

tone(SoundPin, 1275);
delay(DelaySound);

tone(SoundPin, 1136);
delay(DelaySound);

tone(SoundPin, 1014);
delay(DelaySound);

noTone(9); // Выключаем звук
>

Невероятно эффектная цветомузыка на Arduino и светодиодах

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

Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.

Как большой поклонник, так называемых адресных светодиодов, хочу показать вам очень простую и удивительную цветомузыку. Я вообще такой ни разу не видел. Пока не собрал за один вечер. Итак, визуализатор звука!

Инструкция

Схема очень простая!

Вам понадобятся Arduino Nano, или Uno. Или какая там у вас есть? Два потенциометра, пять резисторов, пару конденсаторов и линейка (лента) из 180 светодиодов WS2812b. Всё! Светодиодов в линейке может быть 60, 120 или 180.

В визуализаторе с помощью алгоритма быстрого преобразования Фурье выделяются 8 частот (порог чувствительности на каждую частоту свой, снижается от 1 к 8), преобразуются в цвет и выводятся на линейку светодиодов по одному из восьми алгоритмов. Скетч писал Майкл Крампас, парни из Чип и Дипа добавили функционал, а библиотека для светодиодов и быстрого преобразования Фурье (FFT) написана в Адафрут для проекта Piccolo. Библиотека FFT для 128 точек, адаптированная для AVR микроконтроллеров написана на ассемблере.

Сам скетч и библиотеку FFT нужно скачать здесь и здесь.

Не теряйте время на разбор алгоритмов, просто соберите, залейте скетч и наслаждайтесь шоу.
Это всего лишь развлечение!

В момент первого включения нужно сделать пару настроек:

Яркость: удерживайте кнопку color при включении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки param измените яркость. По завершении нажмите кнопку color еще раз, и ваша конфигурация будет сохранена в памяти.

Длина светодиодной полосы: удерживайте кнопку pattern при включении питания. Отобразится один, два или три красных светодиода. Используйте ручку param, чтобы выбрать длину светодиодной полосы в зависимости от количества красных светодиодов:

1=60 светодиодов
2=120 светодиодов
3=180 светодиодов

По завершении нажмите кнопку pattern еще раз, и ваша конфигурация будет сохранена в памяти.

Алгоритмы

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

Танцы минус: то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.

Световая полоса: в пиках освещается вся полоса.

Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.

Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.

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

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

Цветовые схемы

Случайная двухцветная схема: выбраны два случайных цвета и только они используются для отображения пиков сигнала. Со временем будут выбраны новые цвета. Используйте param, чтобы настроить скорость изменения цветовой схемы. Если ручка потенциометра «параметры» в верхнем положении, цвета будут меняться часто и каждый пик сигнала будет иметь новый цвет. Рекомендую установить ручку в средину.

Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.

Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.

Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.

Это видеоинструкция по настройке и она же демонстрация визуализатора в работе. Там в конце две музыкальные композиции с разными алгоритмами.

Последовательное включение светодиодов Ардуино

На этом занятии мы будем включать последовательно шкалу из десятка светодиодов. Научившись управлять несколькими светодиодами на предыдущих занятиях, разобраться с последовательным включением светодиодов на Ардуино не составит труда. Также мы рассмотрим уже знакомый нам цикл for, который служит для повторения операторов в конструкции и служит своего рода циклом в цикле loop.

Последовательное включение светодиодов на Ардуино

Для данной задачи можно использовать простейший скетч из нашего первого занятия &#8212; Что такое Ардуино. В скетче можно прописать последовательное включение всех светодиодов с заданной скоростью и дальнейшее их последовательное выключение. Но можно и воспользоваться циклом for, который значительно упростит нашу задачу. Во первых, с помощью данного цикла мы можем задать количество светодиодов.

Вместо прописывания в скетче всех пинов с 2 по 13, как выходы, мы воспользовались одним циклом for . Сразу отметим, что использование всех выходов на Ардуино для последовательного включения светодиодов или подключения светодиодной шкалы не рационально. На практике для этого используют сдвиговый регистр 74hc165 или, еще более простой вариант драйвер светодиодов М5450В7 для микроконтроллера Ардуино.

Подключение светодиодной шкалы к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • 11 светодиодов или светодиодная шкала;
  • 11 резисторов на 220 Ом;
  • провода «папа-папа» и «папа-мама».

Схема подключения светодиодной шкалы к Ардуино

Схема подключения светодиодной шкалы к Ардуино

Соберите схему из светодиодов на макетной плате или подключите к Ардуино светодиодную шкалу, как на рисунке выше. Обратите внимание, что в светодиодной шкале нет встроенных резисторов, поэтому не забывайте их добавить в схему, чтобы диоды не сгорели. После сборки схемы скопируйте скетч последовательного включения светодиодной шкалы на Arduino UNO и загрузите в плату.

Скетч последовательного включения светодиодов

Пояснения к коду:
  1. цикл loop в скетче содержит в себе два цикла for, работающих попеременно;
  2. переменная типа byte может хранить 8-битное беззнаковое число от 0 до 255.

В следующем примере изменен порядок последовательного выключения светодиодов на Ардуино. Для этого во втором цикле for все условия повторяются, меняется лишь состояние пинов у светодиодов в цикле с HIGH на LOW. В коде используются глобальные переменные типа byte, поэтому их можно вызывать в любом месте программы, в отличии от локальных переменных в языке Ардуино.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *