06 de novembro de 2017

Player em Arduino com ajuste de velocidade

Neste primeiro projeto vamos aprender a montar um player que executa a música Dó Ré Mi utilizando o Arduino.

As peças necessárias são:

  • Arduino Uno ou similar
  • 1 Potenciômetro 100k ohm (ou LDR similar)
  • Buzzer (ou Piezo elétrico)
  • 1 Resistor 220 ohm

O Circuito pode ser visto abaixo ou no link:

E por fim temos o código com comentários para facilitar o entendimento:

// Definição das notas
#define NOTE_C4  262
#define NOTE_D4  294
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_G4  392

// Variáveis de configuração da porta do Arduino e total de notas da música
int speaker     = 7;
int total_notes = 32;

// Array com as notas da música
int song[] = {
  NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, 0, NOTE_F4, NOTE_F4, 0,
  NOTE_C4, NOTE_D4, NOTE_C4, NOTE_D4, 0, NOTE_D4, NOTE_D4, 0,
  NOTE_C4, NOTE_G4, NOTE_F4, NOTE_E4, 0, NOTE_E4, NOTE_E4, 0,
  NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, 0, NOTE_F4, NOTE_F4, 0
};

void setup() {
  // Função não utilizada neste projeto
}

void loop() {
  // Loop para percorrer todas as notas da música
  for (int i = 0; i < total_notes; i++) {
    // Verifica a velocidade da música de acordo com a leitura do potenciômetro
    // e divide por 4 para ajustar o tempo de uma forma mais conveniente.
    int song_speed = analogRead(A0) / 4;

    // Limita a velocidade da música
    if (song_speed <= 100) { song_speed = 100; }
    
    // Executa a nota
    tone(speaker, song[i], song_speed);
    delay(song_speed);
  }
}

Este é um projeto simples, que não envolve muitos componentes e de fácil montagem, embora tenha um resultado muito interessante.

É possível tocar outras músicas bastando apenas alterar o array com as notas, mas é claro que para isso será necessário algum conhecimento musical.

Espero que sejá útil em seus estudos com o Arduino.

Um abraço e até a próxima.

Visualizações: 18



Eletrônica

12 de novembro de 2017

LEDs sequenciais em Arduino

Projeto Arduino de LEDs sequenciais.

Sérgio Toledo | Full-Stack Web Developer | LinkedIn | GitHub | YouTube

Todos os direitos reservados ©