Sommario:

Arduino - Pianoforte piezoelettrico a tre pulsanti: 4 passaggi
Arduino - Pianoforte piezoelettrico a tre pulsanti: 4 passaggi

Video: Arduino - Pianoforte piezoelettrico a tre pulsanti: 4 passaggi

Video: Arduino - Pianoforte piezoelettrico a tre pulsanti: 4 passaggi
Video: How To Make Arduino Piano With Buzzer | | Tinker Cad 2024, Dicembre
Anonim
Image
Image

Il pianoforte a tre pulsanti è un progetto per principianti con una certa esperienza nell'uso di Arduino.

Sono stato inavvertitamente travolto dal tentativo di creare questo mentre giocavo con il cicalino piezoelettrico per la prima volta. Era così rumoroso! Nel cercare di capire vari metodi per rendere il cicalino più silenzioso e provare diverse frequenze usando la funzione tone() e noTone(), mi sono reso conto che potrebbe essere divertente provare a mescolare il cicalino piezo con gli altri miei componenti preferiti del mio Arduino kit: pulsanti e potenziometro.

I materiali necessari includono:

  • 1 Arduino
  • 1 tagliere
  • 1 cavo USB
  • Ponticelli (vari colori)
  • 1 resistenza da 330 kilo-ohm
  • 1 cicalino piezoelettrico
  • 3 pulsanti
  • 1 Potenziometro

Passaggio 1: cicalino piezoelettrico

Cicalino piezoelettrico
Cicalino piezoelettrico

Per iniziare, imposta il piezo sulla breadboard di Arduino. Un lato di esso (il lato della gamba più corta) deve correre a terra. L'altro lato (il lato della gamba più lunga) deve essere collegato a un pin di ingresso digitale. Ho scelto di collegarlo a 8.

Passaggio 2: pulsanti

Premi i pulsanti
Premi i pulsanti
Premi i pulsanti
Premi i pulsanti

Successivamente, è il momento di impostare i pulsanti. Come il piezo, i pulsanti devono essere collegati a terra ea un pin di ingresso digitale.

Passaggio 3: potenziometro

Potenziometro
Potenziometro
Potenziometro
Potenziometro

Il passaggio finale nella costruzione fisica è il potenziometro. I potenziometri sono disponibili in diverse forme. Useremo il potenziometro come divisore di tensione, quindi tutte e tre le sue gambe devono essere collegate.

Gamba destra: barra negativa (terra)

Gamba centrale: pin analogico 0

Gamba sinistra: barra positiva

Passaggio 4: codice

Durante la scrittura del codice per questo progetto, ho fatto riferimento alle informazioni su alcuni tipi specifici di funzioni:

tono()

noTone() (non ho finito per usare questo. Ho invece impostato la frequenza su "0".)

carta geografica()

Un altro meraviglioso riferimento per gli utenti alle prime armi dei Piezo Buzzer può essere trovato qui. Sebbene l'idea di cambiare il suono del cicalino piezoelettrico sembri semplice, all'inizio può essere un po' travolgente!

La funzione tone() può essere suddivisa in tre parti:

  1. Pin (il pin a cui è collegato il cicalino piezoelettrico)
  2. Frequenza (la frequenza del suono in hertz)
  3. Durata (la durata del suono espressa in millisecondi)

Fondamentalmente, assomiglia a questo: tono (pin, frequenza, durata). Il terzo componente (durata) è opzionale, mentre gli altri due sono necessari per il funzionamento del buzzer. La componente "frequenza" della funzione tono è ciò che può essere pensato come "il suono" prodotto dal cicalino.

Noterai anche che il codice contiene altri due bit di codice. Ci sono alcune istruzioni if/else impostate per dire ad Arduino cosa fare se vengono premuti pulsanti diversi e per impostarlo con "frequenza = 0" in situazioni in cui nessuno dei pulsanti viene premuto. All'interno delle istruzioni if/else, le funzioni map() vengono utilizzate per mappare la scala del potenziometro su un insieme di frequenze. Questi possono essere modificati! Gioca con diversi valori di frequenza per vedere quali suoni diversi puoi ottenere dal piezo.

Dai un'occhiata al codice che ho usato per creare il pianoforte a tre pulsanti qui o controlla qui sotto.

int piezoPin = 8; //Imposta il pin collegato a Piezo.

int sensorePin = 0; //Imposta il pin collegato al sensore (il potenziometro). int valoresensore = 0;

pulsante int1 = 5; //Imposta i pin di input collegati ai pulsanti.

int pulsante2 = 4; int pulsante3 = 3;

int frequenza = 0;

const int delayTime = 500; //Imposta una costante per la variabile del tempo di ritardo nella funzione tone().

void setup() {

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

ciclo vuoto() {

sensorValue = analogRead(sensorPin); //Leggi il sensore. //Mappa i diversi valori del potenziometro su un insieme di frequenze per ciascuno dei tre pulsanti. if (digitalRead(pulsante1) == LOW) { frequency = map(sensorValue, 0, 1023, 400, 499); } else if (digitalRead(button2) == LOW) { frequency = map(sensorValue, 0, 1023, 500, 599); } else if (digitalRead(button3) == LOW) { frequency = map(sensorValue, 0, 1023, 600, 699); } else { frequenza = 0; } tone(piezoPin, frequency, delayTime); //Imposta le funzioni tone() con le variabili. }

Consigliato: