Come costruire una tastiera musicale con Arduino

Con alcune resistenze e pulsanti è possibile costruire una piccola tastiera musicale con Arduino.

Anche se è possibile semplicemente collegare un numero di pulsanti a ingressi digitali per avere toni diversi, in questo progetto useremo una rete di resistenze a scala.

Questa permette di leggere più pulsanti usando un solo input analogico: è una tecnica utile se ti trovi a corto di ingressi digitali.

Per fare ciò si devono collegare i pulsanti in parallelo a un piedino analogico come A0. La maggior parte di questi pulsanti è collegata all’alimentazione attraverso una resistenza. Quando premi ogni pulsante, un livello diverso di tensione viene applicato al piedino di ingresso. Se premi due bottoni insieme hai un unico input basato sulla relazione tra due resistenze in parallelo.

Le scale di resistenze sono un modo semplice per aumentare gli ingressi digitali di un sistema collegandosi a un ingresso analogico.

Componenti da utilizzare:

  • 1x  Arduino Uno
  • 4x Pulsanti
  • 1x buzzer passivo
  • 1x resistenza da 220 ohm
  • 2x resistenza da 10 kilo ohm
  • 1x resistenza da 1 mega ohm
  • Vari jumper

Diagramma di collegamento:

Arduino

Posiziona i pulsanti sulla breadboard come mostrato qui sopra. Questa disposizione di resistenze e pulsanti che alimenta un ingresso analogico è chiamato retee di resistenze a scala. Collega la prima resistenza direttamente all’alimentazione. Collega il secondo, il terzo e il quarto pulsante all’alimentazione attraverso, rispettivamente, resistenze da 220 ohm, 10 kilo ohm e 1 mega ohm. Collega tutte le uscite dei pulsanti insieme in unico punto. Collegalo a massa con una resistenza da 10 kilo ohm e collegalo anche al piedino analogico 0. Ognuna di queste resistenze si comporta da partitore di tensione.

Il codice

La funzione tone ha alcune limitazioni. Può creare solo onde quadre, non sinusoidi o triangoli. Le onde quadre non sembrano davvero delle onde e sono una serie di impulsi acceso/spento.

In questo codice abbiamo utilizzando un array. Che cosa è? 

Si può immaginare un array come una sorta di contenitore, le cui caselle sono dette celle (o elementi) dell’array stesso. Ciascuna delle celle si comporta come una variabile tradizionale; tutte le celle sono variabili di uno stesso tipo preesistente, detto tipo base dell’array. Si parlerà perciò di tipi come “array di interi”, “array di stringhe”, “array di caratteri” e così via. Quello che si ottiene dichiarandolo è dunque un contenitore statico ed omogeneo di valori, variabili o oggetti.

L’array è un insieme di elementi omogenei tra loro. Con una variabile possiamo indicare un solo dato, con l’array possiamo indicare tanti dati dello stesso tipo con un solo nome collettivo di variabile: l’identificatore dell’array. Gli elementi si distinguono uno dall’altro attraversi l’indice che viene assegnato nell’array, e che viene posto accanto all’identificatore dell’array.

Per maggiori info vi invito di leggere il mio articolo: Arduino IDE: che cos’è un array o vettore #8.

Arduino

Conclusione

Se le resistenze sono vicine ai valori nel programma di esempio, quando premi i tasti dovresti sentire alcuni suoni dal buzzer. In caso contrario, controlla il monitor seriale per assicurarti che ciascuno dei pulsanti sia in un intervallo che corrisponde alle note contenute nella condizione if…else. Se stai ascoltando un suono stentoreo, prova ad aumentare un po’ l’intervallo.

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.