Имперский марш спикером, Arduino

Доброго времени суток, Пикабушники. Думаю вас уже достали тонны постов о программировании микроконтроллеров, в частности arduino. Да? Жаль, поэтому это ещё один пост в ту же копилку :(

Ну, если же кто-то решил читать дальше, то начнем!

Вдохновившись постами одного видеоблогера (@AlexGyver, привет :D), особенно его словами: "микроконтроллер по цене шаурмы" решил заказать себе сию приблуду. Подождав месяц, а потом ещё месяц, все запчасти наконец дошли до меня. Первым делом я тренировался, мигал встроенным светодиодом и радовался жизни. Потом переходил на "сложные вещи". Так как сразу заказал себе ультразвуковой дальномер, то собрал себе простейший парктроник (это было лишком просто и я решил не пилить об этом пост, если кто попросит, сразу расскажу). Но это все присказка, перейдем к делу!


Разобрав старый стационарный ПК я обнаружил там спикер (удивительно, да?) и, не успев выкинуть, решил посмотреть в Инете, а нельзя ли его подсоединить к Ардуине, т.к. в суровое паскалевское детство мы неплохо делали сирену на таких динамиках. Оказалось можно. И..немного поиграв с пищалкой (чем достал жену и соседей), решил сыграть что-то более гуманное  мелодичное. Выбор пал на недавнюю премьеру, а точнее самое банальное..имперский марш! Нагуглив ноты и тональность нот я приступил к сборке. Немного фото:

Имперский марш спикером, Arduino Arduino, Имперский марш, Гайд, Своими руками, Пищалка, Мелодия, Для начинающих, Микроконтроллеры, Видео, Длиннопост

Моя Ардуинка собственной персоной (всегда думал что она синяя, а она красная пришла).

Имперский марш спикером, Arduino Arduino, Имперский марш, Гайд, Своими руками, Пищалка, Мелодия, Для начинающих, Микроконтроллеры, Видео, Длиннопост

Спикер. Добыт из недр системного блока.


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

Имперский марш спикером, Arduino Arduino, Имперский марш, Гайд, Своими руками, Пищалка, Мелодия, Для начинающих, Микроконтроллеры, Видео, Длиннопост

Светодиод трехцветный (RGB).

Имперский марш спикером, Arduino Arduino, Имперский марш, Гайд, Своими руками, Пищалка, Мелодия, Для начинающих, Микроконтроллеры, Видео, Длиннопост
Имперский марш спикером, Arduino Arduino, Имперский марш, Гайд, Своими руками, Пищалка, Мелодия, Для начинающих, Микроконтроллеры, Видео, Длиннопост

Подключив все по стандартной схеме приступил к написанию кода. Приведу лишь маленькие примеры из скетча, что бы какое-то представление имелось (что-то заимствовал из Интернета, что-то писал сам).

Сначала я объявил константы в виде нот, найдя в Инете их тон:

const int c = 261; // Нота До

const int d = 294; // Нота Ре 

и т.д.

Нужно задействовать светодиод, не скажу, что гениальное решение, но ничего другого в голову не пришло.. Если тон меньше 600 Герц, то синий, выше 600, но ниже 750 - зеленый, ещё выше - красный. Пишется это очень просто:

if (ton<=600)

{

digitalWrite(2,HIGH);

digitalWrite(4,LOW);

digitalWrite(7,LOW);

Остальное по аналогии.

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

Я назову её beep...потому что её все так называют. И имеет она у меня два параметра нота (писал выше) и время звучания ноты. Далее все как по нотам :D

beep(a, 500);

beep(a, 500);

beep(a, 500);

beep(f, 350);

На этом все. Не претендую на уникальность и гениальность, просто немного HOW TO вам в ленту. Спасибо тем кто дочитал, если есть вопросы отвечу. Коротенькое видео того, что получилось: