Tento malý obvod generátoru hudební melodie Arduino můžete použít pro upřednostňovanou aplikaci, například pro výrobu zajímavého zvonku u dveří, jako klakson automobilu nebo hudební skříňku pro obdarování někoho, nebo jednoduše pro osobní zábavu.
Je vyžadován hardware
Hardware požadovaný pro projekt je uveden následovně:
- Deska Arduino nebo Genuino
- piezo bzučák nebo reproduktor
- připojovací vodiče
Arduino je napájeno 9 V, 500 mA napájecím vstupem, který může být z jakéhokoli standardního adaptéru SMPS AC na DC, nebo můžete také vyzkoušet nabíječku mobilního telefonu.
Pin # 8 z Arduina lze přímo konfigurovat pomocí reproduktoru, který nesmí mít jmenovitý výkon vyšší než 8 ohmů a 1 watt.
Jeden vodič reproduktoru se tedy spojí s vývodem č. 8 desky Arduino a druhý vodič jde do záporné nebo zemní linky desky.
Pro zesílený výstup
Pro hlasitější nebo silně zesílený zvuk můžete nakonfigurovat pin # 8 s tranzistorovým budičem, který se skládá z tranzistoru TIP31, jehož základna může být připojena k pin8 přes odpor 1K, emitor k zemi a kolektor k jednomu z vodičů reproduktor, druhý vodič reproduktoru se nyní spojuje s kladným napájením, kterým je napájení 9V (+).
Zde se ujistěte, že reproduktor je dimenzován na 8 ohmů, ale při mnohem vyšším příkonu, může být kolem 5 wattů pro generování zesílené hudební melodie.
Tento náčrt je kódován pro přehrávání a generování spousty náhodných
melodie postupně pomocí pentatonické stupnice /*
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)
}
Schéma připojení navrhovaného obvodu generátoru hudební melodie Arduino je uvedeno níže:
Pro poslech s vysokým výkonem lze stejné nastavení upgradovat výkonovým tranzistorem, jak je uvedeno na následujícím obrázku:
Předchozí: Vysvětlení 4 jednoduchých obvodů powerbanky Další: Okruh sekvenčního světla Arduino RGB