Përmbajtje:

Arduino - Piezo Piano me tre Butona: 4 Hapa
Arduino - Piezo Piano me tre Butona: 4 Hapa

Video: Arduino - Piezo Piano me tre Butona: 4 Hapa

Video: Arduino - Piezo Piano me tre Butona: 4 Hapa
Video: Схема аналогового звукового генератора хай-хэта драм-машины DR-110 2024, Nëntor
Anonim
Image
Image

Pianoja me tre butona është një projekt për fillestarët me një përvojë në përdorimin e Arduino.

Unë u përfshiva pa dashje duke u përpjekur ta krijoja këtë ndërsa luaja për herë të parë me zile piezo. Ishte kaq me zë të lartë! Duke u përpjekur të kuptoj metoda të ndryshme për ta bërë zilen më të qetë dhe duke provuar frekuenca të ndryshme duke përdorur funksionin tone () dhe noTone (), kuptova se mund të jetë kënaqësi të provosh dhe të përziesh zilen piezo së bashku me përbërësit e mi të tjerë të preferuar të Arduino -s time. komplet: butonat dhe potenciometri.

Materialet e nevojshme përfshijnë:

  • 1 Arduino
  • 1 Breadboard
  • 1 kabllo USB
  • Tela Jumper (ngjyra të ndryshme)
  • 1 330 Rezistencë Kilo-ohm
  • 1 Piezo Buzzer
  • 3 butona shtytës
  • 1 Potenciometër

Hapi 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Për të filluar, vendosni piezo -n në pjatën e Arduino -s. Njëra anë e saj (ana e këmbës më të shkurtër) duhet të vrapojë në tokë. Ana tjetër (ana e këmbës më të gjatë) duhet të lidhet me një kunj dixhital të hyrjes. Zgjodha ta lidh me 8.

Hapi 2: Shtypni butonat

Butonat e Pushimit
Butonat e Pushimit
Butonat e Pushimit
Butonat e Pushimit

Tjetra, është koha për të vendosur butonat e shtypjes. Ashtu si piezo, butonat e shtytjes duhet të lidhen me tokën dhe me një kunj dixhital të hyrjes.

Hapi 3: Potenciometër

Potenciometër
Potenciometër
Potenciometër
Potenciometër

Hapi i fundit në ndërtimin fizik është potenciometri. Potenciometrat vijnë në disa forma të ndryshme. Ne do të përdorim potenciometrin si një ndarës të tensionit, kështu që të tre këmbët e tij duhet të lidhen.

Këmba e djathtë: Shirit negativ (në tokë)

Këmba e Mesme: Pin Analog 0

Këmba e majtë: Shirit pozitiv

Hapi 4: Kodi

Ndërsa shkruaja kodin për këtë projekt, unë iu referova informacionit për disa lloje specifike të funksioneve:

ton ()

noTone () (Unë nuk përfundova duke e përdorur këtë. Vendosa frekuencën në "0" në vend.)

hartë ()

Një referencë tjetër e mrekullueshme për përdoruesit e parë të Piezo Buzzers mund të gjendet këtu. Megjithëse ideja për të ndryshuar tingullin e zhurmës piezo duket e thjeshtë, mund të jetë pak e madhe në fillim!

Funksioni i tonit () mund të ndahet në tre pjesë:

  1. Pin (kunja me të cilën është lidhur zileja piezo)
  2. Frekuenca (frekuenca e zërit në herc)
  3. Kohëzgjatja (kohëzgjatja e zërit të dhënë në milisekonda)

Në thelb, duket kështu: toni (kunja, frekuenca, kohëzgjatja). Komponenti i tretë (kohëzgjatja) është opsional, ndërsa dy të tjerët janë të nevojshëm për funksionimin e ziles. Komponenti "frekuenca" e funksionit të tonit është ajo që mund të mendohet si "tingulli" që prodhohet nga zilja.

Ju gjithashtu do të vini re se kodi përmban dy pjesë të tjera të kodit. Ekzistojnë disa deklarata nëse/tjetër të vendosura për t'i treguar Arduino se çfarë të bëjë nëse shtypen butona të ndryshëm, si dhe për ta vendosur atë me "frekuencë = 0" në situata kur asnjë nga butonat nuk po shtypet. Brenda deklaratave nëse/tjetër, funksionet e hartës () përdoren për të hartuar shkallën e potenciometrit në një grup frekuencash. Këto mund të ndryshohen! Luani me vlera të ndryshme frekuence për të parë se çfarë tingujsh të ndryshëm mund të merrni nga piezo.

Shikoni kodin që kam përdorur për të krijuar pianon me tre butona këtu ose kontrolloni më poshtë.

int piezoPin = 8; // Konfiguro pin të lidhur me Piezo.

int sensorPin = 0; // Vendosni kunjin e lidhur me sensorin (potenciometrin). int sensorVlera = 0;

butoni int1 = 5; // Vendosni kunjat hyrëse të lidhura me butonat.

butoni int2 = 4; butoni int3 = 3;

frekuenca int = 0;

const int delayTime = 500; // Vendosni një konstante për ndryshoren e kohës së vonesës në funksionin tone ().

void setup () {

pinMode (butoni 1, INPUT_PULLUP); pinMode (butoni2, INPUT_PULLUP); pinMode (butoni3, INPUT_PULLUP); }

lak void () {

sensorVlera = analogRead (sensorPin); // Lexoni sensorin. // Hartoni vlerat e ndryshme të potenciometrit në një grup frekuencash për secilën nga tre butonat. nëse (digitalRead (button1) == LOW) {frekuenca = harta (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {frekuenca = harta (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {frekuenca = harta (sensorValue, 0, 1023, 600, 699); } else {frekuenca = 0; } ton (piezoPin, frekuenca, delayTime); // Vendosni funksionet e tonit () me ndryshore. }

Recommended: