Arduino kontrollerade Animatronic skelett rockband - pågående (4 / 7 steg)
Steg 4: Arduino UNO - ljudkort
Jag använder Uno för att spela musik filen/filerna genom en SD sköld. Jag använder SimpleSDAudio biblioteket för att spela ASF stereo filer via PWM utgångar 9 och 10. Jag hittade en gammal hörlursuttag som jag lödda förbindande terminalerna på. Detta är ljudet att ansluta de nätanslutna högtalarna till. Det ansluts till bakbord och är kopplad till utgångar 9 och 10 genom några motstånd och kondensatorer som visas i exemplet SimpleSDAudio Base Minimum. PIN 9---100 uF kondensator---10 k resistor---höger kanal input på jack---1 k motstånd---GND. Pin 10 fast på samma sätt till vänster kanal input på jack (om du vill övervaka röst enda spåret).
Stift 2 in som en utgång och wired till ingångsstiftet 50 på Mega.
Stift 7 är konfigurerad som en input_pullup och fast knappen till marken (som ska ersättas med en Välkommen mat switch)
Skissen är baserad på en modifierad version av den kala minimien exempel medföljer SimpleSDAudio biblioteket.
Den första versionen av denna skiss, "BooFrightersAudioUNO", spelar en fil på SD-kortet kallas "skel.asf". Antingen kan du namnge din fil skel eller ändra linje 26 till rätt filnamn.
Den nya versionen, BooFrightersRandAudioUNO", väljer en låt slumpmässigt från SD-kortet. Alla filnamn är siffror. Till exempel jag gav nytt namn "skel.afs" till "1.afs", nästa låt är "2.afs" och så vidare. Linje 31 i sketchen måste ändras för att fastställa antalet filer att välja mellan. Just nu har jag 2 låtar för teständamål. Rad 31 lyder:
fileToPlay = random(1,3);
1 är det första numret av slumpmässig sekvens 3 är flest plus 1. Om du har 10 filer att välja mellan, skulle den andra siffran vara 11.
Nästa rad i koden konverterar numret till en sträng och lägger till filändelsen.
sprintf (AudioFileName, "% d.afs", fileToPlay);
Nästa rad anger filnamnet för att spela.
IF (!. SdPlay.setFile(AudioFileName)) {
Jag använder slumptalsfrö från analoga stift 0 ha en verkligen randomiserad uppspelningsordningen.