Оглавление:

Музыкальные сказочные огни: 6 шагов (с изображениями)
Музыкальные сказочные огни: 6 шагов (с изображениями)

Видео: Музыкальные сказочные огни: 6 шагов (с изображениями)

Видео: Музыкальные сказочные огни: 6 шагов (с изображениями)
Видео: Моцарт Колыбельная для Малышей - Колыбельная Для Малышей - Спокойная Музыка для Сна 2024, Июль
Anonim
Image
Image

Автор: IanCummingFollow Другие материалы автора:

Интервалометр Arduino
Интервалометр Arduino
Не просто часовой таймер
Не просто часовой таймер
Не просто часовой таймер
Не просто часовой таймер
Однопиксельный термометр
Однопиксельный термометр
Однопиксельный термометр
Однопиксельный термометр

О себе: Мне нравится делать разные вещи, от ракет до электроники. Подробнее о IanCumming »

Добро пожаловать

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

Шаг 1: Используемые детали

Используемые детали
Используемые детали

Я буду использовать следующее:

  • 12 светодиодов
  • 12 токоограничивающих резисторов
  • 1 ULN 2803 Транзисторная матрица Дарлингтона
  • Некоторые перемычки
  • Пьезо-динамик
  • Макетная плата и
  • Arduino
  • Для изготовления гирлянды я использовал 5 проводов от кабеля Ethernet.

Шаг 2: Код

// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ int barTime = 1200; // 8/8 = байт 1000 мс nrLEDS = 4; // 4 базовых светодиода, вы можете добавить несколько параллельно байтовых светодиодов = {3, 4, 5, 6}; байт динамик = 11; byte patternLength = 64; // Длина паттерна байт songLength = 51; const byte song = {// Данные Jingle Bells 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 3, 30, 1, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 29, 2, 27, 2, 27, 2, 29, 2, 27, 4, 32, 4, 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 32, 2, 32, 2, 30, 2, 27, 2, 25, 8}; // Структура - это номер ноты, затем // длина ноты в шаблоне константного байта восьмого = {// Данные шаблона 0b0001, 0b0010, 0b0100, 0b1000, // Биты соответствуют светодиодам в массиве 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100b, 010101001000, 0b0100b, 0101100100, 0b0100b, 01011001000, 0b0100, 010101000, 0 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100b, 01100b 01100b 01100b 01100b 01100b 0110011, 01100b 0110011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Сначала я объявляю свои переменные, наиболее интересными из которых являются Song и Pattern.

  • Песня хранит мелодию; в данном случае это колокольчики Jingle.
  • В шаблоне сохраняются положения включения и выключения в битах значений в массиве.

Пользовательские функции

// ФУНКЦИИ int noteToHz (int note) {// Преобразование примечания Nr. to Freq = Freq = 440 * (pow (1.059463094359, note-21)); // -21 дает вам примечание 1 в C3 (я думаю) return int (freq); // Результаты с точностью до 1 Гц} void lightLEDs (byte PORT_X) {// Контроль состояния светодиода для (int q = 0; q

Две мои функции будут делать следующее:

  • Рассчитайте частоту тональной функции в петле.
  • включить или выключить светодиоды в зависимости от значения, переданного в функцию

Функция настройки

void setup () {// настройка выводов ВЫХОДА pinMode (динамик, ВЫХОД); для (int t = 0; t <nrLEDS; t ++) {pinMode (светодиоды [t], ВЫХОД); }}

В функции настройки я установил контакты, необходимые для ВЫХОДА.

Функция петли

void loop () {// Музыкальный цикл for (int t = 0; t <songLength; t ++) {// Ноты, длина и воспроизведение мелодии int note = noteToHz (song [t * 2]); int length = ((песня [(t * 2) +1] * barTime) / 8); тон (динамик, нота, длина - 50); // Мигающие огни! светодиоды (шаблон [t% patternLength]); задержка (длина); } // Цикл тишины int randomSilence = random (1000, 5000); для (int t = 0; t

У меня есть 2 цикла в функции Main Loop. Петля песни и петля тишины

Цикл песни будет считывать данные из массива песен, играть ноту, используя функцию тона.

Цикл песни будет,

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

В петле тишины

горят только светодиоды

Подключите Arduino и загрузите код. (Затем отключите его)

Шаг 3: Запуск схемы

Запуск схемы
Запуск схемы
Запуск схемы
Запуск схемы
Запуск схемы
Запуск схемы
Запуск схемы
Запуск схемы

Я собираюсь начать с гирлянды

  • Я использовал провод от кабеля Ethernet и четыре раза припаял 3 светодиода параллельно, следя за тем, чтобы светодиоды располагались равномерно на расстоянии около 2 метров.
  • Я припаял анод каждого провода к одному проводу.
  • Затем катод каждого светодиода на 4 отдельных провода. С резистором конечно
  • Я повторил этот процесс 3 раза, чтобы получить цепочку из 12 светодиодов, и поместил контакты заголовка на конец 5 проводов.

Подключите положительную и заземляющую шины к макетной плате.

Шаг 4: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Поместите микросхему ULN2308 на макетную плату.

ULN2308 - это микросхема с массивом транзисторов; из таблицы данных я вижу

  • Этот контакт 1 является входом, который включает контакт 18.
  • Контакт 2 включает 17. И т.п.
  • Контакт 9 заземлен
  • Подключите вывод 9 микросхемы к шине заземления.
  • Подключите положительную шину к клеммной колодке, на одну полосу выше контакта 18. (Вы поймете, почему через минуту)
  • Подключите контакт 1 микросхемы к контакту 3 Arduino.
  • 2 идет к 4
  • 3 фишки переходит в 5 и
  • 4 идет на вывод 6 Arduino
  • Поместите светодиодный шнур на макетную плату. Где общий анодный провод подключен к полосе, подключенной к 5 вольт. Остальные булавки Fairy Light должны подключаться к контактам 18, 17, 16 и 15 микросхемы.

Шаг 5: Добавление звука

Добавление звука
Добавление звука
  • Подключите пьезо-динамик между 2 клеммными колодками.
  • Подключите отрицательный полюс пьезоэлемента к земле и
  • Другой конец динамика к выводу 11

Шаг 6: Заключение

Заключение
Заключение
Заключение
Заключение

У меня есть гирлянда, которая в случайном порядке будет звенеть колокольчиками, чтобы напомнить мне, что сейчас праздничный сезон.

Рекомендуемые: