Բովանդակություն:

Arduino Noise մեքենա ՝ 4 քայլ
Arduino Noise մեքենա ՝ 4 քայլ

Video: Arduino Noise մեքենա ՝ 4 քայլ

Video: Arduino Noise մեքենա ՝ 4 քայլ
Video: How to control DC Motor Speed with Arduino Uno using Push Button #arduino #engineer #electronics 2024, Դեկտեմբեր
Anonim
Arduino աղմուկի մեքենա
Arduino աղմուկի մեքենա
Arduino աղմուկի մեքենա
Arduino աղմուկի մեքենա
Arduino աղմուկի մեքենա
Arduino աղմուկի մեքենա

Ես գտա մի փոքրիկ բարձրախոս, երբ քանդում էի հին P. C. վերամշակման համար և մտածեցի, որ կտեսնեմ, թե ինչպես է հնչում ՝ օգտագործելով Arduino Tone () գործառույթը: Ես սկսեցի մեկ 10Ω պոտենցիոմետրով ՝ վերահսկելու սկիպիդարը և սկսեցի ինչ -որ աղմուկ բարձրացնել: Tone () գործառույթը օգտագործում է պարզ զարկերակային օրինակ: Այն միացնում և անջատում է ձայնը տարբեր հաճախականությունների քառակուսի ալիքի ձևով: Ես ունեի երկու այլ պոտենցիոմետրեր, այնպես որ դրանք ավելացրի և օգտագործեցի դրանք ՝ ձայնի տևողությունը վերահսկելու համար: Մեկը `տոնայնության երկարությունը վերահսկելու և մեկը` տոնների միջև ընկած լուռ տարածությունը վերահսկելու համար: Այն հիմնականում օգտագործում է մեկ այլ քառակուսի ալիքի ձև, բայց շատ ավելի ցածր հաճախականությամբ: Այս սխեմայով դուք կարող եք հասնել աղմուկի լավ բազմազանության: Այն լավ է աշխատում նաև պիեզո ազդանշանի հետ, բայց զուրկ է բարձրախոսի բաս արձագանքից:

Քայլ 1: Ձեզ անհրաժեշտ մասեր

Արդուինո Ունո

Breadboard եւ jumper լարերը

1 Փոքր բարձրախոս կամ Piezo ազդանշան

1 կոճակի անջատիչ

3 10Ω պոտենցիոմետր

1 22Ω դիմադրություն

1 10kΩ դիմադրություն

Քայլ 2: Կառուցեք շրջանը

Կառուցեք շրջանագիծը
Կառուցեք շրջանագիծը

Միացրեք տախտակը ձեր Arduino 5V քորոցին և GND- ին: Տեղադրեք Pushbutton անջատիչը տախտակի ծայրամասի աջ կամ ձախ մասում և միացրեք այն 5 Վ լարման և գետնին `օգտագործելով 10kΩ ռեզիստոր: Անջատիչ միացումից մի մետաղալար միացրեք ձեր Arduino- ի 2 -րդ կապին:

Հացահատիկի մյուս կողմում բարձրախոսը/պիեզո միացումը կարգավորեք 5 վ -ի և միացրեք ՝ օգտագործելով 220Ω դիմադրիչը: Այս ռեզիստորը վերահսկում է հոսանքը `դրանով իսկ վերահսկելով ձայնը; այստեղ կարող եք փորձել տարբեր ռեզիստորներ `ավելի մեծ կամ ավելի փոքր ծավալի համար:

Տեղադրեք ձեր պոտենցիոմետրերը տախտակի կենտրոնում ՝ բավականաչափ տեղ տալով բռնակներով բռունցքների համար: Յուրաքանչյուր կաթսա պետք է միացված լինի 5 Վ լարման և գետնին, իսկ յուրաքանչյուրի կենտրոնական կապում `միացված անալոգային A0, A1 և A2 կապին:

Քայլ 3: Կոդ

Պոտենցիոմետրը կամ կաթսան փոփոխական ռեզիստոր է, որը Arduino- ին միանալուց հետո արժեքը կվերադարձնի 0 -ից 1023 -ի սահմաններում: Մենք կօգտագործենք քարտեզի () գործառույթը `այդ արժեքները փոխելու համար` մեր կարիքներին համապատասխան: Քարտեզ () գործառույթը տևում է հինգ փաստարկ, և մեր դեպքում մենք պետք է նորից քարտեզագրենք միջակայքը 220-ից մինչև 2200-ի սահմաններում `ողջամիտ լսելի ձայն արտադրելու համար:

Ֆունկցիան այսպիսի տեսք ունի.

քարտեզ (զամբյուղ, 0, 1023, 220, 2200);

Դուք կարող եք խաղալ վերջին երկու արժեքների հետ `ավելի բարձր և ցածր հաճախականությամբ հնչերանգների համար, պարզապես զգույշ եղեք, որ ձեր շանը չնեղացնեք:

Noise_Machine.ino

/* Աղմուկի մեքենա, օգտագործելով երեք պոտենցիոմետր, որոնք միացված են անալոգային մուտքերին
և պիեզո կամ փոքր բարձրախոս: Կոճակը միացնում է աղմուկը ՝ պոտենցիոմետրերը
վերահսկել սկիպիդարը ՝ օգտագործելով Arduino tone () գործառույթը և երկու ուշացում
արժեքներ, որոնք վերահսկում են յուրաքանչյուր հնչերանգի երկարությունը և դրանց միջև եղած երկարությունը
յուրաքանչյուր տոնով: Պոտենցիոմետրերը տալիս են անալոգային արժեքներ, որոնք փոխվում են
օգտագործելով քարտեզ () գործառույթը ավելի մեծ կամ փոքր տիրույթներում, որը կհամապատասխանի ձեզ
երաժշտական նախասիրություններ:
Այս ծածկագիրը հանրային տիրույթում է:
Մեթ Թոմաս 2019-04-05
*/
սահմանափակման կոճակ Pin = 2; // Սեղմման կոճակ 2
սահմանափակման խոսնակ = 9; // Բարձրախոս կամ պիեզո 9 -րդ կապում
int կոճակ Պետություն = 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 = քարտեզ (potZero, 0, 1023, 0, 8800); // Քարտեզագրեք անալոգային ընթերցումները
int բարձր = քարտեզ (potOne, 0, 1023, 0, 100); // թվերի նոր տիրույթներ և ստեղծել
int ցածր = քարտեզ (potTwo, 0, 1023, 0, 100); // նոր փոփոխականներ
եթե (buttonState == HIGH) {// Եթե կոճակը սեղմված է…
տոն (խոսնակ, htz); // Ձայնը միացված է
ուշացում (բարձր); // Տոնի երկարություն
noTone (խոսնակ); // Ձայնը անջատված է
ուշացում (ցածր); // untilամանակը մինչև հաջորդ հնչերանգը
} ուրիշ {
noTone (խոսնակ); // Ոչ մի հնչերանգ, եթե կոճակը բաց է թողնված
}
}

դիտել rawNoise_Machine.ino- ն hosted -ի հետ հյուրընկալված GitHub- ում

Քայլ 4: Վերջ

Այսպիսով, դրանում ամեն ինչ կա: Խաղացեք կոդի արժեքների հետ, ավելացրեք ավելի շատ կաթսաներ /կոճակներ և տեսեք, թե ինչ այլ բան կարող եք վերահսկել: Թույլ տվեք ինձ իմանալ, եթե ես որևէ սխալ եմ թույլ տվել և հուսով եմ, որ դուք կվայելեք երաժշտությունը:

Խորհուրդ ենք տալիս: