Circuit generador de melodies Arduino

Proveu El Nostre Instrument Per Eliminar Problemes





Podeu utilitzar aquest petit circuit generador de melodies Arduino per a una aplicació preferida, com per fer un timbre de porta interessant, com a trompa del cotxe o una caixa de música per regalar a algú o simplement per a diversió personal.

Es requereix maquinari

El maquinari necessari per al projecte es dóna de la següent manera:



  • Tauler Arduino o Genuino
  • un zumbador piezoelèctric o un altaveu
  • cables de connexió

L'Arduino s'alimenta amb una font d'alimentació de 9V i 500mA que pot ser de qualsevol adaptador SMPS de CA a CC estàndard, o també podeu provar el mateix carregador de telèfon mòbil.

El pin # 8 de l'Arduino es pot configurar directament amb l'altaveu que no s'ha de classificar per sobre de 8 ohm i 1 watt.



Per tant, un cable de l’altaveu es connecta amb el pin número 8 de la placa Arduino i l’altre cable passa a la línia negativa o a la línia de terra de la placa.

Per a sortida amplificada

Per obtenir un so més fort o molt amplificat, podeu configurar el pin # 8 amb una etapa de control de transistor, que consisteix en un transistor TIP31, la base del qual es pot connectar amb el pin8 mitjançant una resistència de 1 K, l’emissor a terra i el col·lector a un dels cables de la altaveu, l’altre cable de l’aparell es connecta ara amb l’alimentació positiva que és l’alimentació de 9V (+).

Aquí assegureu-vos que l’altaveu tingui una classificació de 8 ohms, però amb una potència molt més alta, pot ser d’uns 5 watts per a una generació de música amplificada.

Aquest esbós està codificat per reproduir-se i generar molts aleatoris
melodies en seqüència mitjançant una escala pentatònica
/*
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)
}

A continuació es mostra el diagrama de connexió del circuit generador de melodies Arduino proposat:

Circuit generador de melodies Arduino

Per a una escolta amplificada d’alta potència, es pot actualitzar la mateixa configuració amb un transistor de potència tal com s’indica a la figura següent:




Anterior: S'han explicat 4 circuits senzills de banc d'alimentació Següent: Circuit de llum seqüencial que flueix Arduino RGB