Съдържание:

Музикални феерични светлини: 6 стъпки (със снимки)
Музикални феерични светлини: 6 стъпки (със снимки)

Видео: Музикални феерични светлини: 6 стъпки (със снимки)

Видео: Музикални феерични светлини: 6 стъпки (със снимки)
Видео: Клип на дораму Светлый пепел луны | Till the End of the Moon (Tantai Jin & Ye Xiwu) - Сколько раз MV 2024, Ноември
Anonim
Image
Image

От IanCummingFollow Още от автора:

Интервалометър Arduino
Интервалометър Arduino
Не просто таймер за час
Не просто таймер за час
Не просто таймер за час
Не просто таймер за час
Термометър с един пиксел
Термометър с един пиксел
Термометър с един пиксел
Термометър с един пиксел

За: Обичам да правя неща от ракети до електроника. Повече за IanCumming »

Добре дошли всички

Почти е празничният сезон и редица магазини започнаха да пускат празничните си декорации. Мислех, че е крайно подходящият момент за изграждане на музикални феерични светлини!

Стъпка 1: Използвани части

Използвани части
Използвани части

Ще използвам следното:

  • 12 светодиода
  • 12 Резистори за ограничаване на тока
  • 1 ULN 2803 Дарлингтънски транзисторен масив
  • Някои джъмперни проводници
  • Пиезо високоговорител
  • Една дъска и
  • един Arduino
  • За да направя низ от феерични светлини, използвах 5 проводника от Ethernet кабел

Стъпка 2: Кодът

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms байт nrLEDS = 4; // 4 базови светодиода, Можете да добавите много паралелни байтови светодиоди = {3, 4, 5, 6}; байтов говорител = 11; байт моделLength = 64; // модел Дължина на байт songLength = 51; const байт песен = {// Данни на 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}; // Структурата е номер на бележка след това // NoteLength в 8 -ия байтов модел на const = {// Pattern Data 0b0001, 0b0010, 0b0100, 0b1000, // Битовете съответстват на Leds в масив 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b110, 0b110, 0b0000 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b0000, 0b0011, 0b0011, 0b0000, 0b0011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Първо декларирам моите променливи, като интересните са Song и Pattern.

  • Песента съхранява мелодията; в случая това са Jingle bells.
  • Моделът съхранява позиции за включване и изключване в битовете на стойностите в масива.

Персонализирани функции

// ФУНКЦИИ int noteToHz (int note) {// Конвертиране на бележка Nr. към Frequency float freq = 440 * (pow (1.059463094359, бележка-21)); // -21 ви дава бележка 1 в C3 (мисля) return int (freq); // Резултатите са точни до 1hz} void lightLEDs (байт PORT_X) {// Състояние на контролния светодиод за (int q = 0; q

Двете функции, които имам, ще направят следното:

  • Изчислете честотата за тоналната функция в цикъла
  • включва или изключва светодиодите в зависимост от стойността, предадена на функцията

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

void setup () {// настройка OUTPUT щифтове pinMode (високоговорител, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (светодиоди [t], OUTPUT); }}

В функцията за настройка зададох необходимите щифтове на OUTPUT.

Циклична функция

void loop () {// Музикален цикъл за (int t = 0; t <songLength; t ++) {// Бележки, дължина и възпроизвеждане на мелодията int note = noteToHz (песен [t * 2]); int length = ((песен [(t * 2) +1] * barTime) / 8); тон (високоговорител, бележка, дължина - 50); // Мигащи светлини! lightLEDs (модел [t % patternLength]); забавяне (дължина); } // Silence Loop 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 "ON"
  • Пин 2 включва 17. И т.н.
  • Пин 9 е заземен
  • Свържете щифт 9 на чипа към заземяващата шина
  • Свържете положителната шина към клемна лента, една лента над щифт 18. (Ще видите защо след минута)
  • Свържете щифт 1 на чипа към щифт 3 на Arduino
  • 2 отива на 4
  • 3 от чипа отива на 5 и
  • 4 отива към пин 6 на Arduino
  • Поставете LED низа върху дъската. Когато общият аноден проводник е свързан към лентата, свързана към 5 волта. Останалите приказни светлинни щифтове трябва да отидат на пин 18, 17, 16 и 15 на чипа.

Стъпка 5: Добавяне на звук

Добавяне на звук
Добавяне на звук
  • Свържете пиезо високоговорителя между 2 клемни ленти
  • Свържете отрицателния полюс на пиезо елемента към земята и
  • Другият край на високоговорителя към щифт 11

Стъпка 6: Заключение

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

Имам поредица от светлини, които на случаен принцип ще свирят звънци, за да ми напомнят, че е празничният сезон.

Препоръчано: