Arduino Musical Tune Generator Circuit

Arduino Musical Tune Generator Circuit

Du kan bruge dette lille Arduino musikalske melodigenerator kredsløb til en foretrukken applikation, såsom til at lave en interessant dørklokke, som et omvendt horn i bilen eller en musikboks til at give nogen eller bare til personlig morskab.



Hardware krævet

Den nødvendige hardware til projektet gives som følger:

  • Arduino eller Genuino bord
  • piezo-summer eller en højttaler
  • tilslutningsledninger

Arduino er forsynet med en 9V, 500mA strømforsyningsindgang, som kan være fra enhver standard SMPS AC til DC-adapter, eller du kan også prøve din mobiltelefonoplader til det samme.





Pin # 8 fra Arduino kan konfigureres direkte med højttaleren, som ikke må klassificeres over 8 ohm og 1 watt.

Så den ene ledning af højttaleren forbinder med pin nr. 8 på Arduino-kortet, og den anden ledning går til den negative linje eller jordlinjen på kortet.



For forstærket output

For højere eller meget forstærket lyd kan du konfigurere stift nr. 8 med et transistordrivertrin, der består af en TIP31-transistor, hvis base kan være forbundet med pin8 via en 1K-modstand, emitter til jord og samleren til en af ​​ledningerne i højttaler, den anden ledning af spaker forbinder nu med den positive forsyning, der er 9V forsyningen (+).

Her skal du sørge for, at højttaleren er vurderet til 8 ohm, men ved meget højere watt kan den være på omkring 5 watt for en forstærket musikgenerering.

Denne skitse er kodet til at spille og generere ret mange tilfældige
melodier i rækkefølge ved hjælp af 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)
}

Forbindelsesdiagrammet til det foreslåede Arduino musical tune generator circuit er vist nedenfor:

Arduino Musical Tune Generator Circuit

Til forstærket lytning med høj effekt kan den samme opsætning opgraderes med en effekttransistor som angivet i følgende figur:




Forrige: 4 enkle Power Bank-kredsløb forklaret Næste: Arduino RGB-flydende sekventielt lyskredsløb