Arduino Musical Tune Generator Circuit

Prøv Instrumentet Vårt For Å Eliminere Problemer





Du kan bruke denne lille Arduino musikalske melodigjernekretsen til en foretrukket applikasjon, for eksempel for å lage en interessant dørklokke, som et bakvendt horn eller musikkboks for å gi noen eller bare for personlig underholdning.

Maskinvare kreves

Maskinvaren som kreves for prosjektet er gitt som følger:



  • Arduino eller Genuino bord
  • piezo-summer eller en høyttaler
  • tilkoblingskabler

Arduino drives av en 9V, 500mA strømforsyningsinngang som kan være fra hvilken som helst standard SMPS AC til DC-adapter, eller du kan også prøve mobiltelefonladeren din for det samme.

Pin # 8 fra Arduino kan konfigureres direkte med høyttaleren som ikke må være rangert over 8 ohm og 1 watt.



Så den ene ledningen på høyttaleren kobles til pinne nr. 8 på Arduino-kortet, og den andre ledningen går til den negative linjen eller bakken.

For forsterket utgang

For høyere eller enormt forsterket lyd kan du konfigurere pinnen # 8 med et transistordrivertrinn, bestående av en TIP31-transistor, hvis base kan være koblet til pin8 via en 1K motstand, emitter til jord og samleren til en av ledningene til høyttaler, kobles den andre ledningen til spaker nå med den positive forsyningen som er 9V-forsyningen (+).

Her må du sørge for at høyttaleren er vurdert til 8 ohm, men med mye høyere watt, kan være på rundt 5 watt for en forsterket musikkgenerering.

Denne skissen er kodet for å spille og generere ganske mange tilfeldige
melodier i rekkefølge ved hjelp av en pentatonisk skala
/*
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)
}

Koblingsskjemaet for den foreslåtte Arduino musikalske generatorgeneratoren er vist nedenfor:

Arduino Musical Tune Generator Circuit

For forsterket lytting med høy effekt, kan samme oppsett oppgraderes med en strømtransistor som angitt i følgende figur:




Forrige: 4 enkle strømbanekretser forklart Neste: Arduino RGB Flowing Sequential Light Circuit