8

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

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

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

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


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

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

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


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

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

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

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

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 вам в ленту. Спасибо тем кто дочитал, если есть вопросы отвечу. Коротенькое видео того, что получилось:

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества