Главная » Статьи » Радиотехника » Познавательные статьи |
Arduino-синтезатор.
Предыстория: У многих было желание собрать музыкальный инструмент, но сборка полноценного инструмента занятие весьма серьезное и не дешевое. Так у меня и зародилась идея собрать простой синтезатор. Заглянувв шкафчик я обнаружил Arduino Uno и было решено собирать на ней. Основы и принципы: Было принято решение собирать не простой кнопочный, так как это слишком просто и неинтересно, а нарисованный на бумаге, который бы работал за счет проводимости графита. После 5 минут рисования, получилось следующие: Далее следует подключить сие чудо следующим образом, крайние контакты к аналоговым входам на arduino, центральные же к GND.После всех манипуляций имеем следующее: Собственно все, часть сборки закончена, теперь немного объяснений: Перемычки, между центральными и крайними контактами имеют большое сопротивление, более 100Ком и выполняют роль подтягивающего резистора, подтягивая аналоговые входы к 0. Так как человек имеет некоторый заряд, то как только мы прикасаемся к «клавишам» этого муз. инструмента, на аналоговых входах мы будем иметь значение отличное от 0, на этом и основана наша программа. Программирование: Долго тянуть не буду и покажу код сразу. void setup() { Serial.begin(9600); pinMode(A0, INPUT); pinMode(A5, INPUT); pinMode(7, OUTPUT); } void loop() { if(analogRead(A0)>100) Ton(1); if(analogRead(A5)>100) Ton(3); } void Ton (int v) { digitalWrite(7, HIGH); delay(v); digitalWrite(7, LOW); } Код не замудренный, так же как и схема, но все же немного пояснений дня новичков: void Ton (int v) { digitalWrite(7, HIGH); delay(v); digitalWrite(7, LOW); } Описываем функцию Ton, которая и будет воспроизводить звук по средствам подачи 1 и 0 на наш динамик с определенной частотой, которая и задается входным параметром функции(НО! Важно, что чем больше входной параметр, тем меньше частота), можно(и даже нужно) использовать библиотеку Tone, но она у меня отказалась работать, так что так. if(analogRead(A0)>100) Ton(1); Проверяем, если на аналоговом входе больше 100, то играем звук(Логичный вопрос, почему больше 100, а не больше 0, ведь раньше я писал, что на входе будет 0?Все просто, и объяснено атмосферными шумами и наводками, которые могут отклонять значения на входе в не большом диапазоне). Собственно все, все готово, прошиваем скетч и смотри на результат. Ах да, чуть не забыл, данная схема легко расширяется до кол-ва аналоговых входов на плате, по средствам подключения аналогичных клавишных модулей и объявления этих входов в коде. Так же можно поэкспериментировать с различными проводниками, например, бананами, но в данном случае банан к GND притягивается через резистор 100Ком и больше, чем больше тем – тем лучше( в разумных пределах), так я доводил до срабатывание на дистанции. Собственно все, всем спасибо за внимание. © Антон Печенев для сайта http://vladimir-z.at.ua/ | |
Просмотров: 1715 | Комментарии: 2 | | |
Всего комментариев: 2 | |
|