Minimal Arduino Sound Effect Box

Introduction: Minimal Arduino Sound Effect Box

This is a quick project of a sound effect box.
The device reads a prerecorded wav file from a microSD assigned to a specific button and plays it when pressed.

Step 1: You Will Need :

Arduino pro mini (or other)
microSD module
A speaker with TRS (mic / aux) connection
Female TRS connector
4 Push Buttons
4 220ohm Resistors
Battery holder and batteries - I used the 2 CR2032 coin batteries but you can use other
Double sided male TRS (headphone) cable

Step 2: Connections

Each buttons connected to VCC and through a 220ohm resistor to GND (for pulling down false current on the cable) ahead of the resistor each button connected to the Arduino's digital pins 5,6,7,8.

The TRS connector is connected to GND and to the Arduino's 9th digital pin.

The microSD module is connected to the Arduino as follow :
GND => GND
Vcc => Vcc
MISO => 12
MOSI => 11
CS => 4
SCK => 13

The battery + is connected to RAW and - to GND

Step 3: Setting the Wave Files

The wav files should be at 16000khz 8bit mono.
Name them by the button number you are going to assign them (1,2,3,4)

You can use this site to convert your files
https://audio.online-convert.com/convert-to-wav

Step 4: The Code

The code uses 2 libraries you should make sure you have (if you don't download them through the lib manager) :
SD.h
TMRpcm.h

#include                            //include SD module library
#include //include speaker control library #define SD_ChipSelectPin 4 //define CS pin #define B1 5 //4 buttons pins connections #define B2 6 #define B3 7 #define B4 8 TMRpcm tmrpcm; //crete an object for speaker library void setup() { Serial.begin (9600); pinMode (5, INPUT); //4 bottons initialise as INPUTS pinMode (6, INPUT); pinMode (7, INPUT); pinMode (8, INPUT); tmrpcm.speakerPin = 9; //define speaker pin. //you must use pin 9 of the Arduino Uno and Nano //the library is using this pin if (!SD.begin(SD_ChipSelectPin)) { //see if the card is present and can be initialized return; //don't do anything more if not } tmrpcm.setVolume(6); //0 to 7. Set volume level tmrpcm.play("start.wav"); //the sound file "1" will play each time the arduino powers up, or is reset } void loop() { // Serial.println (digitalRead (8)); if (digitalRead (B1)) { Serial.println ("B1"); tmrpcm.play("1.wav"); delay (100); } if (digitalRead (B2)) { Serial.println ("B2"); tmrpcm.play("2.wav"); delay (100); } if (digitalRead (B3)) { Serial.println ("B3"); tmrpcm.play("3.wav"); delay (100); } if (digitalRead (B4)) { Serial.println ("B4"); tmrpcm.play("4.wav"); delay (100); } }

Step 5: Final Connections...

Connect the device through the TRS connector with the TRS cable to the speaker.
Connect the device to power and turn it ON

...HAVE FUN...

Arduino Contest 2019

Participated in the
Arduino Contest 2019

Be the First to Share

    Recommendations

    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Super-Size Speed Challenge

      Super-Size Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020

    5 Discussions

    0
    FredericoM3
    FredericoM3

    Question 3 months ago on Step 5

    Nice project !! Is it possible to increase the numbers of pins? Thank you

    0
    udubinsky
    udubinsky

    Reply 3 months ago

    By pins you mean buttons ? you can have much more, technically as much as you want

    0
    FredericoM3
    FredericoM3

    Reply 2 months ago

    oh thank you , yes buttons, how we can do that ? thanks

    0
    udubinsky
    udubinsky

    Reply 2 months ago

    The easiest way is to add new buttons to whatever free digital pins left, same as I did and assign following numbers to each one by duplicating the "if" code

    0
    FredericoM3
    FredericoM3

    Reply 2 months ago

    Okay , I ll try ... thanks a lot !!!