Circuito generatore di melodie musicali Arduino

Prova Il Nostro Strumento Per Eliminare I Problemi





Puoi usare questo piccolo circuito generatore di melodie musicali Arduino per un'applicazione preferita, come per creare un campanello interessante, come un clacson per auto o un carillon per regalare qualcuno, o semplicemente per divertimento personale.

Hardware richiesto

L'Hardware necessario per il progetto è fornito come segue:



  • Scheda Arduino o Genuino
  • cicalino piezoelettrico o altoparlante
  • cavi di collegamento

Arduino è alimentato con un ingresso di alimentazione da 9 V, 500 mA che potrebbe provenire da qualsiasi adattatore SMPS da CA a CC standard, oppure puoi anche provare il caricabatterie del tuo cellulare per lo stesso.

Il pin # 8 di Arduino può essere configurato direttamente con l'altoparlante che non deve essere valutato sopra 8 ohm e 1 watt.



Quindi un filo dell'altoparlante si collega al pin n. 8 della scheda Arduino e l'altro filo va alla linea negativa o alla linea di terra della scheda.

Per uscita amplificata

Per un suono più forte o enormemente amplificato è possibile configurare il pin # 8 con uno stadio driver a transistor, costituito da un transistor TIP31, la cui base può essere collegata al pin8 tramite una resistenza da 1K, emettitore a massa e il collettore a uno dei fili del altoparlante, l'altro filo del diffusore ora si collega con l'alimentazione positiva che è l'alimentazione 9V (+).

Qui assicurati che l'altoparlante abbia una potenza nominale di 8 ohm ma con una potenza molto più alta, potrebbe essere di circa 5 watt per una generazione di brani musicali amplificati.

Questo schizzo è codificato per essere riprodotto e generare molti casuali
melodie in sequenza utilizzando una scala pentatonica
/*
Musician
Plays a (fairly) random tune until the program is stopped.
8-ohm speaker on digital pin 8.
//Copyright (c) 2012 Jeremy Fonte
//This code is released under the MIT license
//https://opensource.org/licenses/MIT
*/
int randomNote = 131
int randomDuration = 2
int noteStep = 1
int notes[15]
void setup() {
pinMode(8, OUTPUT)
notes[1] = 131
notes[2] = 147
notes[3] = 165
notes[4] = 196
notes[5] = 220
notes[6] = 262
notes[7] = 294
notes[8] = 330
notes[9] = 392
notes[10] = 440
notes[11] = 523
notes[12] = 587
notes[13] = 659
notes[14] = 784
notes[15] = 880
randomNote = random(1, 15)
}
void loop() {
noteStep = random(-3, 3)
randomNote = randomNote + noteStep
if(randomNote <1) {
randomNote = random(1, 15)
}
else if(randomNote > 15) {
randomNote = random(1, 15)
}
randomDuration = random(1, 8)
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/randomDuration
tone(8, notes[randomNote],noteDuration)
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30
delay(pauseBetweenNotes)
// stop the tone playing:
noTone(8)
}

Di seguito è mostrato lo schema di collegamento per il circuito generatore di melodia musicale Arduino proposto:

Circuito generatore di melodie musicali Arduino

Per l'ascolto amplificato ad alta potenza, lo stesso allestimento può essere aggiornato con un transistor di potenza come indicato nella figura seguente:




Precedente: 4 semplici circuiti Power Bank spiegati Avanti: Arduino RGB Flowing Sequential Light Circuit