Схема на генератор за музикална мелодия Arduino

Схема на генератор за музикална мелодия Arduino

Можете да използвате тази малка схема на генератор на музикални мелодии Arduino за предпочитано приложение, като например за направа на интересна камбана на вратата, като клаксон за задна кола или музикална кутия за подаряване на някого или просто за лично забавление.



Необходим хардуер

Хардуерът, необходим за проекта, е даден, както следва:

  • Дъска Arduino или Genuino
  • пиезо зумер или високоговорител
  • свързващи проводници

Arduino се захранва с 9V, 500mA захранващ вход, който може да бъде от всеки стандартен SMPS AC към DC адаптер, или можете също да опитате зарядното си за мобилен телефон за същото.





Пин # 8 от Arduino може да бъде конфигуриран директно с високоговорителя, който не трябва да бъде номинален над 8 ома и 1 ват.

Така че единият проводник на високоговорителя се свързва с щифт # 8 на платката Arduino, а другият проводник отива към отрицателната линия или към заземяващата линия на платката.



За усилен изход

За по-силен или силно усилен звук можете да конфигурирате щифт # 8 с транзисторен драйвер, състоящ се от транзистор TIP31, чиято основа може да бъде свързана с pin8 чрез 1K резистор, емитер към земята и колектор към един от проводниците на високоговорител, другият проводник на спайкера сега се свързва с положителното захранване, което е захранването 9V (+).

Тук се уверете, че високоговорителят е с мощност 8 ома, но при много по-висока мощност може да бъде около 5 вата за усилено поколение музикална мелодия.

Тази скица е кодирана, за да играе и генерира доста много произволни
мелодии в последователност, използвайки пентатонична скала
/*
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)
}

Схемата на свързване за предложената схема на генератор на музикални мелодии Arduino е показана по-долу:

Схема на генератор за музикална мелодия Arduino

За усилено слушане с висока мощност, същата настройка може да бъде надстроена със силов транзистор, както е показано на следващата фигура:




Предишен: Обяснени 4 прости вериги на Power Bank Следваща: Arduino RGB течаща последователна светлинна верига