Sons no Arduino
Você sabia que é possível gerar sons a partir do Arduíno ?
Não só é possível, como é bem simples: basta usar a função "tone". Perfeito para quem, ao
contrário deste que vos escreve, tem intimidade com a música.
A função tone tem o seguinte formato :
tone(pino, frequencia, duração)
onde a frequencia do tom é setada em hertz, e a duração, em milisegundos.
Para efeito de testes, usei um pequeno buzzer, desses que se usam em placa-mãe de
computador, como esse abaixo :
A ligação é feita com o pino 10 do Arduino ligado ao "+" do buzzer/falante, e o outro pino do
buzzer ligado ao GND :
Para testar, carregue o programa abaixo e ouça uma linda melodia :
//Programa : Som no Arduino - Do Re Mi
//Autor : Arduino e Cia
void setup() {
pinMode(10,OUTPUT); //Pino do buzzer
}
void loop()
{
delay(2000);
tone(10,262,200); //DO
delay(200);
tone(10,294,300); //RE
delay(200);
tone(10,330,300); //MI
delay(200);
tone(10,349,300); //FA
delay(300);
tone(10,349,300); //FA
delay(300);
tone(10,349,300); //FA
delay(300);
tone(10,262,100); //DO
delay(200);
tone(10,294,300); //RE
delay(200);
tone(10,262,100); //DO
delay(200);
tone(10,294,300); //RE
delay(300);
tone(10,294,300); //RE
delay(300);
tone(10,294,300); //RE
delay(300);
tone(10,262,200); //DO
delay(200);
tone(10,392,200); //SOL
delay(200);
tone(10,349,200); //FA
delay(200);
tone(10,330,300); //MI
delay(300);
tone(10,330,300); //MI
delay(300);
tone(10,330,300); //MI
delay(300);
tone(10,262,200); //DO
delay(200);
tone(10,294,300); //RE
delay(200);
tone(10,330,300); //MI
delay(200);
tone(10,349,300); //FA
delay(300);
tone(10,349,300); //FA
delay(300);
tone(10,349,300); //FA
delay(300);
}
Depois dessa aula de música, que tal uma sirene de policia ? Use este programa :
//Programa : Som no Arduino - Sirene
//Autor : Arduino e Cia
#define tempo 10
int frequencia = 0;
int Pinofalante = 10;
void setup()
{
pinMode(Pinofalante,OUTPUT); //Pino do buzzer
}
void loop()
{
for (frequencia = 150; frequencia < 1800; frequencia += 1) {
tone(Pinofalante, frequencia, tempo);
delay(1);
}
for (frequencia = 1800; frequencia > 150; frequencia -= 1) {
tone(Pinofalante, frequencia, tempo);
delay(1);
}
}
Até a próxima !