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

Arduino - Piezo Three Button Piano: 4 Steps
Arduino - Piezo Three Button Piano: 4 Steps

Video: Arduino - Piezo Three Button Piano: 4 Steps

Video: Arduino - Piezo Three Button Piano: 4 Steps
Video: Arduino - Three Button Piezo Piano 2024, Նոյեմբեր
Anonim
Image
Image

Երեք կոճակով դաշնամուրը նախագիծ է սկսնակների համար, ովքեր ունեն որոշակի փորձ Arduino- ից:

Ես անզգուշորեն սփռվեցի ՝ փորձելով դա ստեղծել ՝ առաջին անգամ պիեզո -բզզերի հետ խաղալիս: Այնքան բարձր էր! Փորձելով պարզել զանազան ազդանշաններն ավելի հանգիստ դարձնելու և տարբեր հաճախականություններ փորձելով ՝ օգտագործելով տոն () և noTone () ֆունկցիաները, ես հասկացա, որ զվարճալի կլինի փորձել և խառնել պիեզո ազդանշանը իմ Arduino- ի մյուս սիրած բաղադրիչների հետ: հավաքածու ՝ կոճակներ և պոտենցիոմետր:

Անհրաժեշտ նյութերը ներառում են.

  • 1 Արդուինո
  • 1 Հացաթուղթ
  • 1 USB մալուխ
  • Jumper Wires (տարբեր գույներ)
  • 1 330 կիլո-օմ դիմադրություն
  • 1 Piezo Buzzer
  • 3 կոճակ
  • 1 պոտենցիոմետր

Քայլ 1: Piezo Buzzer

Պիեզո Բուզզեր
Պիեզո Բուզզեր

Սկսելու համար պիեզոն տեղադրեք Արդուինոյի հացահատիկի վրա: Դրա մի կողմը (ոտքի ավելի կարճ կողմը) պետք է վազի գետնին: Մյուս կողմը (ոտքի ավելի երկար կողմը) պետք է միանա թվային մուտքի քորոցին: Ես ընտրեցի այն միացնել 8 -ին:

Քայլ 2: Սեղմեք կոճակները

Հրել կոճակներ
Հրել կոճակներ
Հրել կոճակներ
Հրել կոճակներ

Հաջորդը, ժամանակն է տեղադրել կոճակները: Ինչպես պիեզոն, այնպես էլ սեղմման կոճակները պետք է միանան գետնին և թվային մուտքի քորոցին:

Քայլ 3: Պոտենցիոմետր

Պոտենցիոմետր
Պոտենցիոմետր
Պոտենցիոմետր
Պոտենցիոմետր

Ֆիզիկական կառուցվածքի վերջին քայլը պոտենցիոմետրն է: Պոտենցիոմետրերը գալիս են մի քանի տարբեր ձևերով: Մենք պոտենցիոմետրը կօգտագործենք որպես լարման բաժանարար, այնպես որ դրա երեք ոտքերը պետք է միացված լինեն:

Աջ ոտք. Բացասական ձող (գետնին)

Միջին ոտք. Անալոգային կապում 0

Ձախ ոտքը `դրական բար

Քայլ 4: Կոդ:

Այս ծրագրի համար ծածկագիր գրելիս ես հղում էի կատարում մի քանի տեսակի գործառույթների վերաբերյալ տեղեկատվությանը.

տոնայնություն ()

noTone () (Ես վերջնականապես չօգտագործեցի այս մեկը: Դրա փոխարեն ես սահմանեցի հաճախականությունը «0»):

քարտեզ ()

Մեկ այլ հրաշալի տեղեկանք Piezo Buzzers- ի առաջին անգամ օգտագործողների համար կարելի է գտնել այստեղ: Թեև պիեզո -բզզերի ձայնը փոխելու գաղափարը պարզ է թվում, այն սկզբում կարող է մի փոքր ճնշող լինել:

Ton () գործառույթը կարելի է բաժանել երեք մասի.

  1. Պին (այն քորոցը, որին միացված է պիեզո ազդանշանը)
  2. Հաճախականություն (ձայնի հաճախականությունը հերցում)
  3. Տևողությունը (միլիվայրկյանում տրված ձայնի տևողությունը)

Հիմնականում այն ունի հետևյալ տեսքը ՝ տոն (քորոց, հաճախականություն, տևողություն): Երրորդ բաղադրիչը (տևողությունը) պարտադիր չէ, մինչդեռ մյուս երկուսը անհրաժեշտ են ազդանշանի գործարկման համար: Տոնային գործառույթի «հաճախականության» բաղադրիչն այն է, ինչ կարելի է համարել որպես «ձայն», որն արտադրվում է ազդանշանի միջոցով:

Դուք նաև կնկատեք, որ ծածկագիրը պարունակում է ծածկագրի երկու այլ բիթ: Կան որոշ/այլ հայտարարություններ, որոնք Arduino- ին ասելու են, թե ինչ անել, եթե տարբեր կոճակներ սեղմվեն, ինչպես նաև այն սահմանել «հաճախականություն = 0» այն իրավիճակներում, երբ ոչ մի կոճակ չի սեղմվում: Եթե/այլ հայտարարություններում քարտեզի () գործառույթներն օգտագործվում են պոտենցիոմետրի սանդղակը հաճախականությունների վրա քարտեզագրելու համար: Սրանք կարող են փոխվել! Խաղացեք հաճախությունների տարբեր արժեքներով ՝ տեսնելու, թե ինչ տարբեր հնչյուններ կարող եք ստանալ պիեզոյից:

Ստուգեք այն կոդը, որով ես օգտագործել եմ երեք կոճակով դաշնամուրը այստեղ կամ ստուգեք ստորև:

int piezoPin = 8; // Կարգավորեք Piezo- ին միացված կապը:

int sensorPin = 0; // Տեղադրեք սենսորին միացված քորոց (պոտենցիոմետր): int sensorValue = 0;

int կոճակ 1 = 5; // Կարգավորեք կոճակներին միացված մուտքային կապում:

int կոճակ 2 = 4; int կոճակ 3 = 3;

int հաճախականություն = 0;

const int delayTime = 500; // Ստեղծեք հաստատուն տոն () գործառույթի հետաձգման ժամանակի փոփոխականի համար:

void setup () {

pinMode (կոճակ 1, INPUT_PULLUP); pinMode (կոճակ 2, INPUT_PULLUP); pinMode (կոճակ 3, INPUT_PULLUP); }

դատարկ շրջան () {

sensorValue = analogRead (sensorPin); // Կարդացեք սենսորը: // Քարտեզագրեք պոտենցիոմետրի տարբեր արժեքները երեք կոճակներից յուրաքանչյուրի հաճախականությունների մի շարք: if (digitalRead (button1) == LOW) {հաճախականությունը = քարտեզը (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {հաճախականությունը = քարտեզը (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {հաճախականությունը = քարտեզը (sensorValue, 0, 1023, 600, 699); } else {հաճախականություն = 0; } տոն (piezoPin, հաճախականություն, delayTime); // Ստեղծեք տոն () գործառույթները փոփոխականներով: }

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