PROJETO 4 - TOCADOR DE MELODIA COM SONORIZADOR PIEZO

Olá pessoal, neste projeto você aprenderá como fazer melodias ao invés de fazer apenas barulhos irritantes. Você fará com seu Arduino o refrão da música “Puff, the Magic Dragon”. O esquema será igual ao Projeto 3, porém com o código modificado. Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!

COMPONENTES NECESSÁRIOS

1 Arduino Uno R3

1 Protoboard

1 Sonorizador piezo (ou disco piezo)

Fios jumpers

CONECTANDO OS COMPONENTES

Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, pegue sua protoboard, o sonorizador piezo e os fios, e conecte tudo como mostra a figura.

Observação importante: Verifique a polaridade do sonorizador piezo.

 

Não importa se você utiliza fios de cores diferentes ou furos diferentes na protoboard, desde que os componentes e os fios estejam conectados na mesma ordem da figura. Tenha cuidado ao inserir os componentes na protoboard. Caso sua protoboard seja nova, a superfície dos furos ainda estará rígida. A não inserção cuidadosa dos componentes pode resultar em danos. Certifique-se de que todos os componentes estejam conectados corretamente. Quando você estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e conecte o cabo USB.

AGORA VAMOS AO CÓDIGO

// Projeto 4 – Tocador de melodia com sonorizador piezo

/* A diretiva #define é muito simples e útil, esta diretiva simplesmente
um valor e seu token correspondente, por exemplo, #define PI 3.141592653
589793238462643. No decorrer do seu programa você não precisa digitar
todo o valor de PI, apenas #define PI.*/

#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277

#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494

#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.125
#define SIXTEENTH 0.0625

// Definimos um array de valores inteiro tune[], preenchendo as notas da...
//melodia "Puff, o Dragão Mágico"
int tune[] = { NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_B3,
NOTE_G3, NOTE_A3, NOTE_C4, NOTE_C4, NOTE_G3, NOTE_G3, NOTE_F3,
NOTE_F3, NOTE_G3, NOTE_F3, NOTE_E3, NOTE_G3, NOTE_C4, NOTE_C4,
NOTE_C4, NOTE_C4, NOTE_A3, NOTE_B3, NOTE_C4, NOTE_D4};

// Criamos um array de floats que armazena a duração de cada nota,
//conforme melodia tocada
float duration[] = { EIGHTH, QUARTER+EIGHTH, SIXTEENTH, QUARTER,
QUARTER, HALF, HALF, HALF, QUARTER, QUARTER, HALF+QUARTER,
QUARTER, QUARTER, QUARTER, QUARTER+EIGHTH, EIGHTH, QUARTER,
QUARTER, QUARTER, EIGHTH, EIGHTH, QUARTER, QUARTER, QUARTER,
QUARTER, HALF+QUARTER};

int length;// Este inteiro será utilizado para calcular e armazenar o...
//comprimento do array (número de notas na melodia)

void setup() {
pinMode(8, OUTPUT); // Definimos o pino digital 8 como saída
// A função sizeof retorna o número de bytes
length = sizeof(tune) / sizeof(tune[0]);
}
void loop() {
// Definimos um loop que itera o número de vezes correspondente as...
//notas da melodia
for (int x = 0; x < length; x ++) {
// Então a próxima nota do array tune[] é reproduzida no pino digita 8
tone(8, tune[x]);
// Aqui esperamos o tempo necessario para que a melodia seja reproduzida
delay(1500 * duration[x]);
// Antes que a nota seguinte seja tocada você cessa o tom gerado no pino 8
noTone(8);
}
delay(5000); // Espera 5 segundos antes de tocar a melodia novamente
}


Os países anglófonos mantiveram a utilização de letras para a nomenclatura das notas musicais. As letras A, B, C, D, E, F e G são utilizadas para as notas lá, si, do, ré, mi, fá e sol, respectivamente (fonte: Wikipedia).

Para certificar se o código está correto pressione o botão Verify/Compile. Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino. Pronto, no seu terceiro projeto você ouvirá o som sendo emitido pelo sonorizador piezo.

fonte: facacomarduino.info