Stap 4: Arduino UNO - geluidskaart
Ik ben met behulp van de Uno te spelen de muziek bestanden via een SD-schild. Ik ben met behulp van de SimpleSDAudio bibliotheek om te spelen de stereo ASF-bestanden via PWM outputs 9 en 10. Ik vond een oude hoofdtelefoonaansluiting die ik gesoldeerd aansluitende terminals op. Dit is de audio-uitgang naar sluit de luidsprekers aan. Het aangesloten op het breadboard en is aangesloten op de uitgangen 9 en 10 door sommige weerstanden en condensatoren zoals in het voorbeeld SimpleSDAudio Base Minimum. Pin 9---100 uF condensator---10 k weerstand---rechterkanaal input op jack---1 k weerstand---GND. Pin 10 is bedraad het linkerkanaal op de jack-ingang (als u controleren het enige spoor van de stem wilt) op dezelfde manier.
Pin 2 is ingesteld als uitgang en bedraad aan invoer pin 50 van de Mega.
Pin 7 is geconfigureerd als een input_pullup en aangesloten via de knop op de grond (te vervangen met een welkom mat switch)
De schets is gebaseerd op een gewijzigde versie van het absolute Minimum voorbeeld opgenomen met de SimpleSDAudio-bibliotheek.
De eerste versie van deze sketch, "BooFrightersAudioUNO", speelt een bestand op de SD-kaart "skel.asf" genoemd. U kunt de naam van uw bestand skel of lijn 26 omzetten in de juiste bestandsnaam.
De nieuwe versie, BooFrightersRandAudioUNO", kiest willekeurig een lied van de SD-kaart. Alle van de bestandsnamen zijn nummers. Bijvoorbeeld, mij verdopen "skel.afs" voor "1.afs", het volgende nummer is "2.afs", enzovoort. Regel 31 in de schets moet worden veranderd om te bepalen van het aantal bestanden om uit te kiezen. Op dit ogenblik ik heb 2 nummers voor testdoeleinden. Regel 31 luidt als volgt:
fileToPlay = random(1,3);
1 is het eerste nummer van de willekeurige volgorde en 3 is het hoogste aantal plus 1. Als u hebt 10 bestanden om uit te kiezen, zou het tweede nummer 11.
De volgende coderegel zet het getal in een tekenreeks en de extensie toegevoegd.
sprintf (AudioFileName, "% d.afs", fileToPlay);
In de volgende regel wordt de naam van het bestand om te spelen.
if (!. SdPlay.setFile(AudioFileName)) {}
Ik ben met behulp van willekeurige zaad van analoge pin 0 om een echt willekeurige afspeelvolgorde.