Arduino Musical Tune Generator Circuit

Prova Vårt Instrument För Att Eliminera Problem





Du kan använda den här lilla Arduino musikalströmgeneratorkretsen för en föredragen applikation, till exempel för att skapa en intressant dörrklocka, som ett bakåthorn eller en musikbox för att ge någon någon eller bara för personlig nöje.

Maskinvara krävs

Maskinvaran som krävs för projektet ges enligt följande:



  • Arduino eller Genuino-kort
  • piezo-summer eller en högtalare
  • anslutningskablar

Arduino drivs med en 9V, 500mA strömförsörjningsingång som kan komma från vilken SMPS-nätadapter som helst, eller så kan du också prova din mobiltelefonladdare för samma sak.

Stift nr 8 från Arduino kan konfigureras direkt med högtalaren som inte får vara högre än 8 ohm och 1 watt.



Så en tråd på högtalaren ansluts till stift nr 8 på Arduino-kortet och den andra kabeln går till den negativa linjen eller jordlinjen på kortet.

För förstärkt utgång

För starkare eller enormt förstärkt ljud kan du konfigurera stift nr 8 med ett transistordrivsteg, bestående av en TIP31-transistor, vars bas kan anslutas med stift 8 via ett 1K-motstånd, sändare till jord och kollektorn till en av ledningarna i högtalare ansluts den andra ledaren till spakern nu med den positiva strömförsörjningen som är 9V-matningen (+).

Se här till att högtalaren har en klass på 8 ohm men vid mycket högre watt, kan den vara på cirka 5 watt för en förstärkt musikljudgenerering.

Denna skiss är kodad för att spela och generera ganska många slumpmässiga
melodier i sekvens med 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)
}

Anslutningsdiagrammet för den föreslagna Arduino-musikgeneratorns krets visas nedan:

Arduino Musical Tune Generator Circuit

För högeffektsförstärkt lyssnande kan samma inställning uppgraderas med en effekttransistor som anges i följande bild:




Tidigare: 4 enkla Power Bank-kretsar förklarade Nästa: Arduino RGB Flowing Sequential Light Circuit