Para tornar o seu projeto Arduino mais interativo, pode ser divertido colocar sons que correspondam a certas ações. Neste tutorial, veremos como reproduzir um arquivo de áudio WAV gravado num cartão SD com o Arduino
Pré-requisitos: Ler e escrever num cartão SD, Criar ou modificar um arquivo de áudio para o Arduino
Material
- Computador
- Arduino UNO
- Cabo USB para ligar o Arduino ao computador
- Shield ou módulo de cartão SD
- Amplificador de áudio ou módulo transistor
- Caixa de som
Esquema de ligação

O esquema de ligação pode variar em função dos componentes utilizados. Algumas informações podem ajudar na adaptação deste tutorial ao seu projeto. No nosso exemplo, o pino CS (Chip Select) do módulo de cartão SD está ligado ao pino 10 para comunicar com a placa Arduino. Este pino pode variar em função do shield utilizado e do local onde se liga o pino. Para mais informações sobre como ligar o módulo de cartão SD, leia este artigo. Na placa Arduino UNO, apenas o pino 9 é compatível com a biblioteca TMRpcm.h. Verifique a documentação (5, 6, 11 ou 46 para Mega; 9 para Uno, Nano, etc.). Dependendo da caixa de som utilizada, é preferível alimentá-la por uma fonte de tensão externa, para não danificar a placa Arduino.
Código para reproduzir um arquivo de áudio
Coloque o arquivo WAV no cartão SD e insira o cartão no módulo SD Card. Em seguida, carregue o código a seguir na placa Arduino. Para reproduzir o arquivo de áudio, utilizaremos a biblioteca TMRPcm.h, que permite reproduzir arquivos de áudio WAV de forma assíncrona a partir de um cartão SD. Neste exemplo, o arquivo de áudio é reproduzido a cada segundo.
Funções para conhecer:
- tmrpcm.play(char*) para reproduzir o arquivo
- tmrpcm.setVolume(int) para definir o volume da caixa de som
- tmrpcm.stopPlayback() ou tmrpcm.disable() para parar a reprodução
- tmrpcm.isPlaying() para saber se o arquivo está sendo reproduzido
Para mais informações, consulte a documentação.
//Libraries
#include <SD.h>
#include <TMRpcm.h>
//Constants
#define SD_ChipSelectPin 10//4
const int speakerPin = 9;
char* file = "bonjour.wav";
//Variables
unsigned long previousTime = 0;
unsigned long interval = 1000;
//Objects
TMRpcm tmrpcm;
/*******************************************************************
MAIN
*******************************************************************/
void setup() {
/* function setup */
Serial.begin(9600);
//Init sd shield
if (!SD.begin(SD_ChipSelectPin)) {
Serial.println("SD fail");
return;
}
//Init speaker
tmrpcm.speakerPin = speakerPin;
tmrpcm.setVolume(3);
}
void loop() {
/* function loop */
if (millis() - previousTime > interval) {
activateOutput();
previousTime = millis();
}
}
/*******************************************************************
FUNCTIONS
*******************************************************************/
void activateOutput() {
/* function activateOutput */
Serial.println("Play sound");
tmrpcm.play(file);
while (tmrpcm.isPlaying()) {} //wait until file is played
//delay(1000);tmrpcm.stopPlayback(); // or wait 1sec and stop music
}
Obs: Na função activateOutput(), é possível optar por não esperar que o arquivo seja lido para executar outras ações. Para isso, basta comentar a linha com while. Agora já pode reproduzir qualquer som com a sua placa Arduino.
Fonte
Próximos passos
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie
amigo ou amiga… em relação ao transistor… é PNP ou NPN … Amplificador de áudio ou módulo transistor
tem o esquema de ligação de qual transistor:
Olá, é um transístor NPN
Olá amigo… Testei e só dá chiado… Não toca o som … Saberia o que é? Nenhum componente foi substituído, todos da lista estão ali funcionando… Arduíno uno estou usando… Usei um auto falante pequeno, um menor e Já separei a saida e coloquei um amplificador funcionando… Mas nada de som … Somente chiado.
Se adicionar tmrpcm.stopPlayback() ou tmrpcm.disable() o assobio pára? O ficheiro no cartão SD está no formato correto e é lido corretamente?