Video: Arduino - pieso kolme nupuga klaver: 4 sammu
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Kolme nupuga klaver on projekt algajatele, kellel on Arduino kasutamise kogemus.
Mul tekkis tahtmatult tahtmine seda luua esimest korda piesosummeriga mängides. See oli NII vali! Proovides välja mõelda erinevaid meetodeid, kuidas helisignaali vaiksemaks muuta, ja proovides erinevaid sagedusi, kasutades tooni () ja noTone () funktsiooni, mõistsin, et võib olla lõbus proovida pieso -helisignaali segada minu teiste Arduino lemmikkomponentidega komplekt: nupud ja potentsiomeeter.
Vajalike materjalide hulka kuuluvad:
- 1 Arduino
- 1 Leivalaud
- 1 USB -kaabel
- Jumper juhtmed (erinevad värvid)
- 1 330 kilo-oomi takisti
- 1 Piezo summer
- 3 Vajutage nuppe
- 1 potentsiomeeter
Samm 1: Pietsosummer
Alustuseks seadistage pieso Arduino leivalauale. Selle üks külg (lühem jalapool) peab jooksma maapinnale. Teine pool (pikem sääre pool) peab olema ühendatud digitaalse sisendpistikuga. Valisin selle ühendamiseks 8 -ga.
Samm: vajutage nuppe
Järgmisena on aeg surunupud üles seada. Nagu pieso, peavad ka nupud olema ühendatud maaga ja digitaalse sisendpistikuga.
Samm: potentsiomeeter
Füüsilise ehituse viimane samm on potentsiomeeter. Potentsiomeetrid on saadaval mitmel erineval kujul. Me kasutame potentsiomeetrit pingejagurina, nii et kõik selle kolm jalga peavad olema ühendatud.
Parem jalg: negatiivne riba (maapind)
Keskjalg: analoogpinge 0
Vasak jalg: positiivne riba
4. samm: kood
Selle projekti jaoks koodi kirjutades viitasin mõnele teatud tüüpi funktsioonile:
toon ()
noTone () (ma ei kasutanud seda. Ma määrasin sageduseks hoopis "0".)
kaart ()
Veel ühe suurepärase viite Piezo summeride esmakasutajatele leiate siit. Kuigi piesosummeri heli muutmise idee tundub lihtne, võib see esialgu pisut üle jõu käia!
Tooni () funktsiooni saab jagada kolmeks osaks:
- Tihvt (tihvt, millega piesosummer on ühendatud)
- Sagedus (heli sagedus hertsides)
- Kestus (heli kestus millisekundites)
Põhimõtteliselt näeb see välja selline: toon (tihvt, sagedus, kestus). Kolmas komponent (kestus) on valikuline, samas kui ülejäänud kaks on vajalikud helisignaali toimimiseks. Toonifunktsiooni "sageduse" komponent on see, mida võib pidada "heliks", mida helisignaal tekitab.
Samuti märkate, et koodil on kaks muud koodibitti. Arduinole on seatud mõned avaldused, kui nad ütlevad, mida teha, kui erinevaid nuppe vajutatakse, ja seadistada parameetrile "sagedus = 0" olukordades, kus ühtegi nuppu ei vajutata. Väidetes if/else kasutatakse potentsiomeetri skaala kaardistamiseks sageduste kogumile map () funktsioone. Neid saab muuta! Mängige erinevate sagedusväärtustega, et näha, milliseid erinevaid helisid pieso annab.
Vaadake koodi, mida kasutasin kolme nupuga klaveri loomisel, või vaadake allpool.
int piesoPin = 8; // Piezoga ühendatud pin seadistamine.
int sensorPin = 0; // Anduri (potentsiomeetri) külge ühendatud tihvti seadistamine. int sensorValue = 0;
int nupp1 = 5; // Seadistage nuppudega ühendatud sisendpoldid.
int nupp2 = 4; int nupp3 = 3;
int sagedus = 0;
const int delayTime = 500; // Seadistage funktsioonis tone () viivituse muutujale konstant.
tühine seadistus () {
pinMode (nupp1, INPUT_PULLUP); pinMode (nupp2, INPUT_PULLUP); pinMode (nupp3, INPUT_PULLUP); }
void loop () {
sensorValue = analogRead (sensorPin); // Anduri lugemine. // Kaardista potentsiomeetri erinevad väärtused iga kolme nupu sageduste komplekti. if (digitalRead (button1) == LOW) {sagedus = kaart (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {sagedus = kaart (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {sagedus = kaart (sensorValue, 0, 1023, 600, 699); } muu {sagedus = 0; } toon (piesoPin, sagedus, viivitusaeg); // Seadista toonide () funktsioonid muutujatega. }