Просто мелодии на Arduino Uno

KorolOrol
Offline
Зарегистрирован: 08.03.2020

Здравствуйте, Вот за пару вечеров набросал небольшой проект. Дело в том, что нормального проекта на мелодии для пищалки в интернете не найти: у одного велосипед с ошибками, другие лентой пишут... Я решил использовать за основу "ленту", но использовать цикл и массив:

<<Начало программы

#define BP 10

int const fTick = 98;

int tick = 0;

int const note[fTick] = {988, 1109, 1175, 988, 1109, 1175, 587, 1319, 1480, 1175, 1319, 1480, 659, 1480, 1661, 1319, 1480, 1661, 784, 1720, 1976, 1568, 1720, 1976, 1976, 0, 1976, 1976, 1976, 1976, 0, 2637, 2637, 0, 2637, 0, 2093, 2637, 0, 3136, 0, 784, 0, 2093, 0, 1568, 0, 1319, 0, 1720, 0, 1976, 0, 1865, 1720, 0, 784, 1319, 0, 1568, 1720, 0, 1397, 1568, 0, 1319, 0, 1047, 1175, 988, 0, 2093, 0, 1568, 0, 1319, 0, 1720, 0, 1976, 0, 1865, 1720, 0, 784, 1319, 0, 1568, 880, 0, 1397, 1568, 0, 1319, 0, 1047, 1175, 988}; 
int const timer[fTick] = {200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 400, 200, 200, 200, 200, 600, 1000, 200, 200, 100, 200, 100, 200, 200, 200, 400, 200, 400, 200, 400, 100, 400, 100, 400, 100, 200, 100, 200, 100, 200, 200, 100, 200, 200, 100, 200, 200, 100, 200, 200, 100, 200, 100, 200, 200, 200, 200, 400, 100, 400, 100, 400, 100, 200, 100, 200, 100, 200, 200, 100, 200, 200, 100, 200, 200, 100, 200, 200, 100, 200, 100, 200, 200, 200};

void setup() { }

void loop()
{
while(tick < fTick) 
 {
 tone(BP, note[tick], timer[tick]); 
 delay(timer[tick]); 
 tick++; 
 }
while (true) {} 
}

<<Конец программы

В общем, программа проста: 4 переменные: один счётчик, число нот, сами ноты в Герцах и длина нот. Сдесь записана мелодия из танчиков и Марио. В таком виде писать мелодия достаточно удобно, скачать миди и от туда взять тона. Сложность только одна: все эти числа нужно где-то держать. Я использовал бумажку, но можно и заполнять таблицей в Экселе.

Железо просто Ардуинка и пьезо-пищалка, которая отлично втыкается в землю и 10 пин без макетки и перемычек.

bwn
Offline
Зарегистрирован: 25.08.2014

Не, я напраздновался, пускай Araris думает, что с этим делать.(((

Araris
Offline
Зарегистрирован: 09.11.2012

Думаю, на проект пока не тянет, в "Песочницу".

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Araris пишет:

Думаю, на проект пока не тянет, в "Песочницу".

Круто, конечно, но не хватает специфики - обозначения нот (диезы там разные, бемоли, октавы опять же). Так что на 100% согласен. На проект не тянет.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

mykaida пишет:

Araris пишет:

Думаю, на проект пока не тянет, в "Песочницу".

Круто, конечно, но не хватает специфики - обозначения нот (диезы там разные, бемоли, октавы опять же). Так что на 100% согласен. На проект не тянет.

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

Но даже в таком виде - одноголосый меандр на проект IMHO все равно не тянет.

Проект - это что-то подобное: https://www.youtube.com/watch?v=7xIEA66e7eI