Мазмұны:

Arduino шу машинасы: 4 қадам
Arduino шу машинасы: 4 қадам

Бейне: Arduino шу машинасы: 4 қадам

Бейне: Arduino шу машинасы: 4 қадам
Бейне: FluidNC ESP32 ЧПУ шкаф управления 4 2024, Желтоқсан
Anonim
Arduino шу машинасы
Arduino шу машинасы
Arduino шу машинасы
Arduino шу машинасы
Arduino шу машинасы
Arduino шу машинасы

Мен ескі ПК -ны бұзу кезінде кішкентай динамик таптым. қайта өңдеу үшін және Arduino Tone () функциясын қолдану арқылы бұл қалай көрінетінін көремін деп ойладым. Мен қадамды бақылау үшін 10Ω потенциометрден бастадым және біраз шу шығаруды бастадым. Tone () функциясы импульстің қарапайым үлгісін қолданады. Ол төртбұрышты толқын түрінде әр түрлі жиілікте дыбысты қосады және өшіреді. Менде тағы екі потенциометр бар еді, сондықтан мен оларды дыбыстың ұзақтығын бақылау үшін қолдандым. Бірі тонның ұзындығын, екіншісі тондар арасындағы үнсіз кеңістікті басқарады. Бұл негізінен басқа квадраттық толқын үлгісін қолданады, бірақ әлдеқайда төмен жиілікте. Бұл тізбектің көмегімен әр түрлі шуылға қол жеткізуге болады. Ол пьезо -дыбыстық сигналмен де жақсы жұмыс істейді, бірақ динамиктің басс жауаптары жоқ.

1 -қадам: Сізге қажет бөлшектер

Ардуино Уно

Нан тақтасы мен секіргіш сымдар

1 Кішкене динамик немесе пьезо дыбысы

1 батырманың қосқышы

3 10Ω Потенциометрлер

12 22Ω резистор

1 10 кОм резистор

2 -қадам: Схеманы құрыңыз

Циклды құрыңыз
Циклды құрыңыз

Нан тақтасын Arduino 5V түйреуішіне және GND -ге қосыңыз. Pushbutton қосқышын нан тақтасының оң жақ немесе сол жағына орналастырыңыз және оны 5 кВ -қа қосыңыз және 10 кОм резистор арқылы жерге қосыңыз. Ажыратқыш тізбегінен сымды Arduino құрылғыңыздағы 2 -ші істікке қосыңыз.

Нан тақтасының екінші жағында динамик/пьезо тізбегін 5В -қа орнатыңыз және 220Ω резисторды қолданып жерге қосыңыз. Бұл резистор токты басқарады, осылайша дыбыс деңгейін басқарады; мұнда жоғары немесе төмен дыбыс үшін әр түрлі резисторларды қолдануға болады.

Потенциометрлерді тақтаның ортасына қойыңыз, ол тұтқалармен скрипкаға жеткілікті орын береді. Әр кастрюль 5 В -қа қосылуы керек және олардың әрқайсысында орталық түйреуіштер A0, A1 және A2 аналогтық түйреуіштеріне қосылады.

3 -қадам: Кодекс

Потенциометр немесе кастрюль - бұл Arduino -ға қосылған кезде 0 мен 1023 аралығындағы мәнді қайтаратын айнымалы резистор. Біз бұл мәндерді өз қажеттіліктерімізге сәйкес өзгерту үшін map () функциясын қолданамыз. Map () функциясы бес аргументті қабылдайды, ал біздің жағдайда ақылға қонымды дыбыс шығару үшін диапазонды 220 мен 2200 аралығында қайта картаға түсіру қажет.

Функция келесідей көрінеді:

карта (горшок, 0, 1023, 220, 2200);

Сіз жоғары және төменгі жиілік реңктері үшін соңғы екі мәнмен ойнай аласыз, тек итті ренжітпеу үшін абай болыңыз.

Noise_Machine.ino

/* Аналогты кірістерге қосылған үш потенциометрді қолданатын шу машинасы
және пьезо немесе шағын динамик. Түйме шу мен потенциометрді қосады
Arduino tone () функциясын қолдана отырып, қадамды басқарыңыз және екі кідіріс
әр тонның ұзындығы мен арасындағы ұзындықты басқаратын мәндер
әр тон. Потенциометрлер өзгертілетін аналогты мәндерді береді
map () функциясын сіздің қалауыңыз бойынша үлкен немесе кіші диапазонда қолданыңыз
музыкалық талғам.
Бұл код қоғамдық доменде.
Мэтт Томас 05.04.2019 ж
*/
constint buttonPin = 2; // 2 түйме түйреуіші
континент спикері = 9; // Динамик немесе пьезо 9 түйреуіште
int buttonState = 0; // Батырманың айнымалылары
int potZero; // және потенциометрлер
int potOne;
int potTwo;
voidsetup () {
pinMode (9, OUTPUT); // Динамик/пьезо шығыс түйреуіші
}
voidloop () {
buttonState = digitalRead (buttonPin); // Түймешік күйін оқыңыз
potZero = analogRead (A0); // Аналогты мәндерді оқуға арналған айнымалылар
potOne = analogRead (A1);
potTwo = analogRead (A2);
int htz = map (potZero, 0, 1023, 0, 8800); // Аналогты көрсеткіштерді картаға салыңыз
int high = map (potOne, 0, 1023, 0, 100); // жаңа сандар диапазоны және құру
int low = карта (potTwo, 0, 1023, 0, 100); // жаңа айнымалылар
if (buttonState == HIGH) {// Егер түймешік басылса…
үн (динамик, гц); // Дыбыс қосулы
кешіктіру (жоғары); // Тонның ұзақтығы
noTone (динамик); // Дыбыс өшірулі
кешіктіру (төмен); // Келесі үнге дейін уақыт
} басқа {
noTone (динамик); // Түйме босатылса, дыбыс жоқ
}
}

rawNoise_Machine.ino -ды GitHub ұсынған ❤ арқылы қараңыз

4 -қадам: Соңы

Сондықтан мұның бәрі бар. Кодтағы мәндермен ойнаңыз, көбірек кастрюльдер /түймелер қосыңыз және тағы нені басқаруға болатынын көріңіз. Егер мен қателескен болсам, маған хабарлаңыз және сізге музыка ұнайды деп үміттенемін.

Ұсынылған: