Hino do Brasil com Arduino

Tocar melodias utilizando a frequência das notas é muito simples com Arduino e um buzzer. As frequências são obtidas através do Arquivo pitches.h e deve ser incluído na mesma pasta onde o software vai ser compilado. Neste exemplo vamos tocar o hino nacional do Brasil.

Dificuldade:

Montagem:

Programação:


Material Utilizado:

Arduino Uno

Cabo USB A para B

Protoboard 830

Buzzer

Alguns Jumpers

A Montagem

O Sketch

Para baixar o Sketch junto com o arquivo pitches.h clique aqui

 

#include "pitches.h"
#define NO_SOUND 0

// Notas que devem ser tocadas ordenadamente;

int
melodia[] = {   

NOTE_C4, NOTE_F4,NOTE_E4,NOTE_F4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_AS4, NOTE_B4,NOTE_C5,NOTE_F4,NOTE_C4, NOTE_F4,NOTE_E4,NOTE_G4,NOTE_F4,NOTE_A4,NOTE_G4,NOTE_AS4,NOTE_A4, NOTE_FS4,NOTE_G4,NO_SOUND,NO_SOUND,NOTE_C4, NOTE_G4,NOTE_FS4,NOTE_G4,NOTE_A4,NOTE_AS4,NOTE_A4,NOTE_AS4,NOTE_B4,
NOTE_CS5,NOTE_D5,NOTE_G4,NOTE_C4, NOTE_G4,NOTE_F4,NOTE_A4,NOTE_G4,NOTE_AS4,NOTE_A4,NOTE_B4,NOTE_AS4, NOTE_GS4,NOTE_A4,NO_SOUND,NOTE_A4,NOTE_A4, NOTE_AS4,NOTE_A4,NO_SOUND,NOTE_A4,NOTE_AS4,NOTE_A4, NOTE_A4,NOTE_D5,NOTE_C5,NOTE_AS4, NOTE_AS4,NOTE_A4,NOTE_A4,NOTE_G4,NOTE_G4,NOTE_F4,NOTE_F4,NOTE_E4,   
NOTE_E4,NOTE_D4,NO_SOUND,NOTE_G4,NOTE_G4, NOTE_A4,NOTE_G4,NO_SOUND,NOTE_G4,NOTE_A4,NOTE_G4, NOTE_G4,NOTE_C5,NOTE_B4,NOTE_A4, NOTE_A4,NOTE_G4,NOTE_G4,NOTE_F4,NOTE_F4,NOTE_E4,NOTE_E4,NOTE_D4, NOTE_D4,NOTE_C4,NO_SOUND,NOTE_C4,NOTE_E4,NOTE_G4, NOTE_AS4,NOTE_C4,NOTE_E4,NOTE_G4,NOTE_AS4,NOTE_C4,NOTE_E4,NOTE_G4,   
NOTE_AS4,NOTE_AS4,NOTE_C4, NOTE_F4,NOTE_E4,NOTE_F4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_A4,NOTE_AS4, NOTE_B4,NOTE_C5,NOTE_F4,NOTE_C4, NOTE_F4,NOTE_E4,NOTE_G4,NOTE_F4,NOTE_A4,NOTE_G4,NOTE_AS4,NOTE_A4, NOTE_FS4,NOTE_G4,NO_SOUND,NOTE_C4, NOTE_G4,NOTE_FS4,NOTE_G4,NOTE_A4,NOTE_AS4,NOTE_A4,NOTE_AS4,NOTE_B4,   
NOTE_CS5,NOTE_D5,NOTE_G4,NOTE_C4, NOTE_G4,NOTE_FS4,NOTE_A4,NOTE_G4,NOTE_AS4,NOTE_A4,NOTE_C5,NOTE_AS4, NOTE_GS4,NOTE_A4,NO_SOUND,NO_SOUND,NOTE_F4, NOTE_G4,NOTE_F4,NOTE_E4,NOTE_F4,NOTE_E4,NOTE_F4,NOTE_G4,NOTE_F4, NOTE_F4,NOTE_AS4,NOTE_AS4,NO_SOUND,NOTE_G4, NOTE_A4,NOTE_G4,NOTE_FS4,NOTE_G4,NOTE_FS4,NOTE_G4,NOTE_A4,NOTE_G4,     
NOTE_G4,NOTE_C5,NOTE_C5,NO_SOUND,NOTE_A4, NOTE_AS4,NOTE_A4,NOTE_GS4,NOTE_A4,NOTE_GS4,NOTE_A4,NOTE_AS4,NOTE_A4, NOTE_A4,NOTE_D5,NOTE_C5,NOTE_AS4,NOTE_G4, NOTE_G4,NOTE_F4,NO_SOUND,NOTE_E4,NOTE_F4,NOTE_G4, NOTE_AS4,NOTE_A4,NOTE_E4,NOTE_F4,NOTE_CS4,NOTE_D4,NOTE_AS4,NOTE_G4, NOTE_G4,NOTE_F4,NO_SOUND,NOTE_G4,NOTE_A4,NOTE_AS4,   

NOTE_B4,NOTE_C5,NOTE_A4,NOTE_F4,NOTE_D4,NOTE_AS4, NOTE_A4,NOTE_F4,NOTE_D4,NOTE_C4,NOTE_D4,NOTE_E4,   
NOTE_F4            

};

// Duração das Notas: Colcheia:8; Semínima: 4; Mínima:2; Semibreve:1


int
tempoNotas[] = {   
4,   
6,16,6,16,6,16,6,16,   
3,8,4,4,   
6,16,6,16,6,16,6,16,   
4,4,4,16,8,   
6,16,6,16,6,16,6,16,   

3,8,4,4,   
6,16,6,16,6,16,6,16,   
4,4,4,6,16,   
4,4,8,8,6,16,   
4,2,8,8,   
8,8,8,8,8,8,8,8,   

4,4,4,6,16,   
4,4,8,8,6,16,   
4,2,8,8,   
8,8,8,8,8,8,8,8,   
4,4,8,8,8,8,   
8,8,8,8,8,8,8,8,   

2,4,4,   
6,16,6,16,6,16,6,16,   
3,8,4,4,   
6,16,6,16,6,16,6,16,   
4,4,4,4,   
6,16,6,16,6,16,6,16,   

3,8,4,4,   
6,16,6,16,6,16,6,16,   
4,4,4,8,16,   
6,16,6,16,6,16,6,16,   
3,8,4,8,8,   
6,16,6,16,6,16,6,16,      

3,8,4,8,8,   
6,16,6,16,6,16,6,16,   
4,3,8,8,8,   
4,4,8,8,8,8,   
8,8,8,8,8,8,8,8,   
4,4,8,8,8,8,      

8,8,8,8,4,4,   
4,6,16,4,6,16,   
2

};

const
int compasso = 1500; // Altera o compasso da música

void
setup() {   
for (int Nota = 0; Nota < 230; Nota++) {//o número 80 indica quantas notas tem a nossa matriz.     
int tempo = compasso/tempoNotas[Nota]; //Tempo = compasso dividido pela indicação da matriz tempoNotas.     
tone
(8, melodia[Nota],tempo); //Toca a nota indicada pela matriz melodia durante o tempo.     
// Para distinguir as notas adicionamos um tempo entre elas (tempo da nota + 20%).
   
delay(tempo*1.2);   
}

}

void loop()
{   
//Não é necessária a repetição pois a mesma será feita pelo botão Reset.

}

//Fim de Programa