Cuprins:

Arduino - Piezo Pian cu trei butoane: 4 pași
Arduino - Piezo Pian cu trei butoane: 4 pași

Video: Arduino - Piezo Pian cu trei butoane: 4 pași

Video: Arduino - Piezo Pian cu trei butoane: 4 pași
Video: How To Make Arduino Piano With Buzzer | | Tinker Cad 2024, Iunie
Anonim
Image
Image

Pianul cu trei butoane este un proiect pentru începători cu o anumită experiență în utilizarea Arduino.

Am fost involuntar măturat în încercarea de a crea acest lucru în timp ce mă jucam cu buzzer-ul piezo pentru prima dată. A fost atât de tare! În încercarea de a afla diverse metode pentru a face buzzerul mai liniștit și a încerca diferite frecvențe folosind funcția tone () și noTone (), mi-am dat seama că ar putea fi amuzant să încerc să amestec buzzer-ul piezo împreună cu celelalte componente preferate ale Arduino-ului meu. kit: butoane și potențiometru.

Materialele necesare includ:

  • 1 Arduino
  • 1 Pană de pâine
  • 1 cablu USB
  • Sârme jumper (diverse culori)
  • 1 330 Kilo-ohm Rezistor
  • 1 Piezo Buzzer
  • 3 Butoane de apăsare
  • 1 Potențiometru

Pasul 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Pentru a începe, configurați piezo pe panoul de bord al Arduino. O parte a acestuia (partea piciorului mai scurtă) trebuie să alerge la sol. Cealaltă parte (partea cea mai lungă a piciorului) trebuie să se conecteze la un pin digital de intrare. Am ales să-l conectez la 8.

Pasul 2: Apăsați butoanele

Apasa butoanele
Apasa butoanele
Apasa butoanele
Apasa butoanele

Apoi, este timpul să configurați butoanele. La fel ca piezo-ul, butoanele trebuie să se conecteze la masă și la un pin de intrare digital.

Pasul 3: Potențiometru

Potențiometru
Potențiometru
Potențiometru
Potențiometru

Ultimul pas în construcția fizică este potențiometrul. Potențiometrele vin în câteva forme diferite. Vom folosi potențiometrul ca divizor de tensiune, astfel încât toate cele trei picioare ale acestuia trebuie conectate.

Piciorul drept: bara negativă (la sol)

Picior mijlociu: Pin analogic 0

Piciorul stâng: bara pozitivă

Pasul 4: Cod

În timp ce scria codul pentru acest proiect, am făcut referire la informații despre câteva tipuri specifice de funcții:

ton()

noTone () (Nu am ajuns să-l folosesc pe acesta. În schimb, am setat frecvența la „0”).

Hartă()

O altă referință minunată pentru utilizatorii pentru prima dată de Piezo Buzzers poate fi găsită aici. Deși ideea de a schimba sunetul sonorului piezo pare simplă, la început poate fi un pic copleșitoare!

Funcția ton () poate fi împărțită în trei părți:

  1. Pin (pinul la care este conectat buzzerul piezo)
  2. Frecvența (frecvența sunetului în hertz)
  3. Durata (durata sunetului dată în milisecunde)

Practic, arată astfel: ton (pin, frecvență, durată). A treia componentă (durata) este opțională, în timp ce celelalte două sunt necesare pentru funcționarea sonorului. Componenta „frecvență” a funcției tonului este ceea ce poate fi considerat „sunetul” produs de buzzer.

Veți observa, de asemenea, că codul prezintă alți doi biți de cod. Există câteva instrucțiuni if / else configurate pentru a spune Arduino ce trebuie să facă dacă sunt apăsate diferite butoane, precum și pentru a o configura cu „frecvență = 0” în situațiile în care niciunul dintre butoane nu este apăsat. În cadrul instrucțiunilor if / else, funcțiile map () sunt utilizate pentru a mapa scala potențiometrului pe un set de frecvențe. Acestea pot fi schimbate! Redați-vă cu diferite valori de frecvență pentru a vedea ce sunete diferite puteți obține din piezo.

Verificați codul pe care l-am folosit pentru a crea pianul cu trei butoane aici sau verificați mai jos.

int piezoPin = 8; // Configurați pinul conectat la Piezo.

int sensorPin = 0; // Configurați pinul conectat la senzor (potențiometrul). int sensorValue = 0;

butonul int1 = 5; // Configurați pinii de intrare conectați la butoane.

butonul int2 = 4; butonul int3 = 3;

frecvența int = 0;

const int delayTime = 500; // Configurați o constantă pentru variabila timpului de întârziere în funcția ton ().

configurare nulă () {

pinMode (butonul1, INPUT_PULLUP); pinMode (butonul2, INPUT_PULLUP); pinMode (buton3, INPUT_PULLUP); }

bucla nulă () {

sensorValue = analogRead (senzorPin); // Citiți senzorul. // Asociați diferitele valori ale potențiometrului la un set de frecvențe pentru fiecare dintre cele trei butoane. if (digitalRead (button1) == LOW) {frecvență = hartă (senzorValoare, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {frecvență = hartă (senzorValoare, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {frecvență = hartă (senzorValoare, 0, 1023, 600, 699); } else {frecvență = 0; } ton (piezoPin, frecvență, delayTime); // Configurați funcțiile tone () cu variabile. }

Recomandat: