Kazalo:

Arduino - Piezo klavir s tremi gumbi: 4 koraki
Arduino - Piezo klavir s tremi gumbi: 4 koraki

Video: Arduino - Piezo klavir s tremi gumbi: 4 koraki

Video: Arduino - Piezo klavir s tremi gumbi: 4 koraki
Video: Играем ноты на Ардуино 2024, November
Anonim
Image
Image

Klavir s tremi gumbi je projekt za začetnike z nekaj izkušnjami pri uporabi Arduina.

Nehote me je poizkusilo ustvariti, medtem ko sem se prvič poigral s piezo zvočnikom. Bilo je tako glasno! Ko sem poskušal ugotoviti različne načine za utišanje brenčalca in preizkusiti različne frekvence s funkcijo tone () in noTone (), sem spoznal, da bi bilo lahko zabavno poskusiti mešati piezo brenčalec z mojimi najljubšimi komponentami mojega Arduina komplet: gumbi in potenciometer.

Potrebni materiali vključujejo:

  • 1 Arduino
  • 1 Ogledna plošča
  • 1 USB kabel
  • Mostične žice (različne barve)
  • 1 330 kilo-ohmski upor
  • 1 Piezo Buzzer
  • 3 potisni gumbi
  • 1 Potenciometer

1. korak: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Za začetek nastavite piezo na mizo Arduina. Ena njegova stran (krajša stran noge) mora teči na tla. Druga stran (daljša stran noge) se mora povezati z vhodom za digitalni vhod. Odločil sem se, da ga povežem z 8.

Korak: Pritisnite gumbe

Potisni gumbi
Potisni gumbi
Potisni gumbi
Potisni gumbi

Nato je čas za nastavitev potisnih gumbov. Tako kot piezo se morajo potisni gumbi povezati z maso in z vhodom za digitalni vhod.

3. korak: Potenciometer

Potenciometer
Potenciometer
Potenciometer
Potenciometer

Zadnji korak pri fizični gradnji je potenciometer. Potenciometri so v različnih oblikah. Potenciometer bomo uporabljali kot delilnik napetosti, zato je treba vse tri njegove noge povezati.

Desna noga: Negativna palica (tla)

Srednja noga: analogni pin 0

Leva noga: pozitivna vrstica

4. korak: Koda

Med pisanjem kode za ta projekt sem se skliceval na informacije o nekaj posebnih vrstah funkcij:

ton ()

noTone () (Tega nisem uporabil. Frekvenco sem nastavil na "0".)

zemljevid()

Še eno čudovito referenco za prve uporabnike Piezo Buzzerjev najdete tukaj. Čeprav se zdi zamisel o spreminjanju zvoka piezo brenčalnika preprosta, je lahko sprva malce presenetljiva!

Funkcijo tone () lahko razdelimo na tri dele:

  1. Pin (pin, na katerega je priključen piezo -zvočni signal)
  2. Frekvenca (frekvenca zvoka v hercih)
  3. Trajanje (trajanje zvoka v milisekundah)

V bistvu izgleda tako: ton (pin, frekvenca, trajanje). Tretja komponenta (trajanje) je neobvezna, drugi dve pa sta potrebni za delovanje brenčalnika. "Frekvenčna" komponenta tonske funkcije je tisto, kar si lahko omislimo kot "zvok", ki ga proizvaja brenčalo.

Opazili boste tudi, da ima koda še dva koda kode. Nastavljenih je nekaj stavkov if/else, ki Arduinu povedo, kaj naj stori, če pritisnejo različne gumbe, in ga nastavijo s "frekvenco = 0" v primerih, ko noben od gumbov ni pritisnjen. V stavkih if/else se funkcije map () uporabljajo za preslikavo merila potenciometra na niz frekvenc. Te je mogoče spremeniti! Poigrajte se z različnimi frekvenčnimi vrednostmi, da vidite, katere različne zvoke lahko dobite iz pieza.

Kodo, ki sem jo uporabil za ustvarjanje klavirja s tremi gumbi, preverite tukaj ali preverite spodaj.

int piezoPin = 8; // Nastavite pin priključen na Piezo.

int sensorPin = 0; // Nastavite pin, priključen na senzor (potenciometer). int sensorValue = 0;

gumb int1 = 5; // Nastavitev vhodnih zatičev, povezanih z gumbi.

gumb int2 = 4; gumb int3 = 3;

int frekvenca = 0;

const int delayTime = 500; // Nastavimo konstanto za spremenljivko zakasnitve v funkciji tone ().

void setup () {

pinMode (button1, INPUT_PULLUP); pinMode (button2, INPUT_PULLUP); pinMode (button3, INPUT_PULLUP); }

void loop () {

sensorValue = analogRead (sensorPin); // Preberite senzor. // Razporedimo različne vrednosti potenciometra na niz frekvenc za vsakega od treh gumbov. if (digitalRead (button1) == LOW) {frekvenca = zemljevid (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {frekvenca = zemljevid (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {frekvenca = zemljevid (sensorValue, 0, 1023, 600, 699); } else {frekvenca = 0; } ton (piezoPin, frekvenca, delayTime); // Nastavitev funkcij tone () s spremenljivkami. }

Priporočena: