Sadržaj:
Video: Arduino - Piezo glasovir s tri gumba: 4 koraka
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Klavir s tri tipke projekt je za početnike s određenim iskustvom u korištenju Arduina.
Nehotično sam bio zahvaćen pokušajima da to stvorim dok sam se prvi put igrao s piezo zujalicom. Bilo je tako glasno! Pokušavajući shvatiti različite metode kako bi zujalica postala tiša i isprobavajući različite frekvencije pomoću funkcije tone () i noTone (), shvatio sam da bi moglo biti zabavno pokušati miješati piezo zujalicu zajedno s mojim omiljenim komponentama mog Arduina komplet: tipke i potenciometar.
Potrebni materijali uključuju:
- 1 Arduino
- 1 Oglasna ploča
- 1 USB kabel
- Žice za spajanje (različite boje)
- 1 330 Kilo-ohmski otpornik
- 1 Piezo zujalica
- 3 tipke
- 1 Potenciometar
Korak 1: Piezo zujalica
Za početak postavite piezo na ploču Arduina. Jedna njegova strana (kraća strana noge) mora trčati o tlo. Druga strana (duža strana) mora se spojiti na pin za digitalni ulaz. Odlučio sam ga spojiti na 8.
Korak 2: Pritisnite gumbe
Zatim je vrijeme za postavljanje tipki. Kao i piezo, gumbi se moraju spojiti na masu i na pin za digitalni ulaz.
Korak 3: Potenciometar
Posljednji korak u fizičkoj izgradnji je potenciometar. Potenciometri dolaze u nekoliko različitih oblika. Potenciometar ćemo koristiti kao razdjelnik napona, pa sve tri noge moraju biti spojene.
Desna noga: Negativna traka (uzemljenje)
Srednja noga: analogni pin 0
Lijeva noga: Pozitivna traka
Korak 4: Kodirajte
Prilikom pisanja koda za ovaj projekt referencirao sam informacije o nekoliko specifičnih vrsta funkcija:
ton()
noTone () (Nisam ovo završio. Umjesto toga postavio sam frekvenciju na "0".)
karta()
Još jednu divnu referencu za prve korisnike Piezo zujalica možete pronaći ovdje. Iako se ideja o promjeni zvuka piezo zujalice čini jednostavnom, u početku može biti pomalo neodoljiva!
Funkcija tone () može se podijeliti na tri dijela:
- Pin (pin na koji je povezan piezo zujalica)
- Frekvencija (frekvencija zvuka u hercima)
- Trajanje (trajanje zvuka u milisekundama)
U osnovi, to izgleda ovako: ton (pin, frekvencija, trajanje). Treća komponenta (trajanje) nije obavezna, dok su ostale dvije potrebne za rad zujalice. "Frekvencijska" komponenta tonske funkcije je ono što se može zamisliti kao "zvuk" koji proizvodi zujalica.
Također ćete primijetiti da kôd sadrži još dva bita koda. Postoje neke if/else naredbe postavljene da kažu Arduinu što učiniti ako se pritisnu različiti gumbi, kao i da se postavi s "frekvencija = 0" u situacijama kada se ne pritisne niti jedna tipka. Unutar if/else naredbi, funkcije map () koriste se za preslikavanje ljestvice potenciometra na skup frekvencija. To se može promijeniti! Poigrajte se različitim vrijednostima frekvencije kako biste vidjeli koje različite zvukove možete dobiti iz pieza.
Ovdje provjerite kôd koji sam koristio za stvaranje klavira s tri tipke ili provjerite u nastavku.
int piezoPin = 8; // Postavite pin spojen na Piezo.
int sensorPin = 0; // Postavite pin spojen na senzor (potenciometar). int sensorValue = 0;
int button1 = 5; // Postavljanje ulaznih pinova spojenih na gumbe.
int gumb2 = 4; int gumb3 = 3;
int frekvencija = 0;
const int delayTime = 500; // Postavljanje konstante za varijablu vremena kašnjenja u funkciji tone ().
void setup () {
pinMode (button1, INPUT_PULLUP); pinMode (button2, INPUT_PULLUP); pinMode (button3, INPUT_PULLUP); }
void loop () {{100} {101}
sensorValue = analogRead (sensorPin); // Očitavanje senzora. // Preslikajte različite vrijednosti potenciometra na skup frekvencija za svaku od tri tipke. if (digitalRead (button1) == LOW) {frekvencija = karta (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {frekvencija = karta (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {frekvencija = karta (sensorValue, 0, 1023, 600, 699); } else {frekvencija = 0; } ton (piezoPin, frekvencija, delayTime); // Postavljanje funkcija tone () s varijablama. }