„Arduino“ muzikinių melodijų generatoriaus grandinė

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šią mažą „Arduino“ muzikos melodijų generatoriaus schemą galite naudoti pageidaujamai programai, pavyzdžiui, gamindami įdomų durų varpą, kaip automobilio atbulinės eigos garsą ar muzikinę dėžutę, norėdami ką nors padovanoti ar tiesiog asmeninėms pramogoms.

Būtina aparatinė įranga

Projektui reikalinga techninė įranga pateikiama taip:



  • „Arduino“ arba „Genuino“ lenta
  • pjezo garsiakalbis arba garsiakalbis
  • prijungimo laidai

„Arduino“ maitinamas 9 V, 500 mA maitinimo šaltiniu, kuris gali būti iš bet kurio standartinio SMPS kintamosios srovės ir nuolatinės srovės adapterio, taip pat galite išbandyti savo mobiliojo telefono įkroviklį.

„Arduino“ kaištį Nr. 8 galima tiesiogiai sukonfigūruoti su garsiakalbiu, kuris neturi būti didesnis nei 8 omai ir 1 vatas.



Taigi vienas garsiakalbio laidas jungiasi su „Arduino“ plokštės kaiščiu Nr. 8, o kitas laidas eina į neigiamą arba plokštės įžeminimo liniją.

Už sustiprintą išvestį

Garsesniam ar labai sustiprintam garsui galite sukonfigūruoti kaištį Nr. 8 su tranzistoriaus tvarkyklės pakopa, susidedančia iš TIP31 tranzistoriaus, kurio pagrindas gali būti sujungtas su pin8 per 1K rezistorių, emiterį į žemę ir kolektorių prie vieno iš laidų. garsiakalbį, kitas garsiakalbio laidas dabar jungiasi su teigiamu maitinimo šaltiniu, ty 9 V maitinimo šaltiniu (+).

Įsitikinkite, kad garsiakalbio reitingas yra 8 omai, bet kur kas didesnis galingumas gali būti maždaug 5 vatai, jei norite sukurti sustiprintą muzikos melodiją.

Šis eskizas užkoduotas, kad būtų galima žaisti ir generuoti gana daug atsitiktinių
melodijos iš eilės naudojant pentatoninę skalę
/*
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)
}

Siūlomos „Arduino“ muzikos melodijos generatoriaus grandinės jungimo schema parodyta žemiau:

„Arduino“ muzikinių melodijų generatoriaus grandinė

Norint klausytis didelės galios sustiprinto klausymo, tą pačią sąranką galima atnaujinti naudojant maitinimo tranzistorių, kaip nurodyta šiame paveikslėlyje:




Pora: Paaiškintos 4 paprastos maitinimo banko grandinės Kitas: „Arduino RGB“ tekančios nuoseklios šviesos grandinė