"Eletroeletrônica e Informações"
Home
Artigos

Circuitos

Arduino
Pic
Informações
ARDUINO

Arduino Musical - 1

Autor: Ivanildo M. Gonçalves

Usando apenas um pequeno alto-falante ligado em série com um resistor de 100R, a sua placa Arduino pode executar uma musica.

* Um dos dois terminais do alto falante deve ser ligado a uma das portas PWM da placa Arduino, eu optei pela porta 2 .

* Um terminal do resistor deve ser ligado a qualquer um dos pinos GND da placa do Arduino o outro deve ser ligado ao segundo terminal do alto-falante.

* A polaridade do alto falante não importa muito neste circuito.

* Eu testei com alto-falante de 8 ohms, mais uanto maior for a sua impedância melhor.

Você vai se surpreender com o resultado!

Em breve estarei publicando um codigo para executar várias músicas.

Segue abaixo a ligação:

.

Segue abaixo o código pra você copiar e colar na IDE do Arduino:

int ledPin = 13;
//led apenas para visualização (use o led interno da placa Arduino)

int speakerPin = 2;
//O alto falante deve se conectado(em serie com um resistor de 100R) a uma das portas PWM. Escolhi a porta 2.

#define c 261
#define d 294
#define e 329
#define f 349
#define g 391
#define gS 415
#define a 440
#define aS 455
#define b 466
#define cH 523
#define cSH 554
#define dH 587
#define dSH 622
#define eH 659
#define fH 698
#define fSH 740
#define gH 784
#define gSH 830
#define aH 880
//frequencies for the tones we're going to use
//used http://home.mit.bme.hu/~bako/tonecalc/tonecalc.htm to get these

void setup()
{
pinMode(ledPin, OUTPUT);
// Configura o ledPin como saída
pinMode(speakerPin, OUTPUT);
// Configura o speakerPin como saída
}

void loop() // executa os comandos abaixo infinitamente
{
march();
}

void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds)
{
digitalWrite(ledPin, HIGH);
//use o led para visualizar as notas sendo tocadas

int x;
long delayAmount = (long)(1000000/frequencyInHertz);
long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
for (x=0;x<loopTime;x++)
{
digitalWrite(speakerPin,HIGH);
delayMicroseconds(delayAmount);
digitalWrite(speakerPin,LOW);
delayMicroseconds(delayAmount);
}

digitalWrite(ledPin, LOW);
//set led back to low

delay(20);
//atraso para a separação das notas
}

void march()
{
beep(speakerPin, a, 500);
beep(speakerPin, a, 500);
beep(speakerPin, a, 500);
beep(speakerPin, f, 350);
beep(speakerPin, cH, 150);

beep(speakerPin, a, 500);
beep(speakerPin, f, 350);
beep(speakerPin, cH, 150);
beep(speakerPin, a, 1000);


beep(speakerPin, eH, 500);
beep(speakerPin, eH, 500);
beep(speakerPin, eH, 500);
beep(speakerPin, fH, 350);
beep(speakerPin, cH, 150);

beep(speakerPin, gS, 500);
beep(speakerPin, f, 350);
beep(speakerPin, cH, 150);
beep(speakerPin, a, 1000);

beep(speakerPin, aH, 500);
beep(speakerPin, a, 350);
beep(speakerPin, a, 150);
beep(speakerPin, aH, 500);
beep(speakerPin, gSH, 250);
beep(speakerPin, gH, 250);

beep(speakerPin, fSH, 125);
beep(speakerPin, fH, 125);
beep(speakerPin, fSH, 250);
delay(250);
beep(speakerPin, aS, 250);
beep(speakerPin, dSH, 500);
beep(speakerPin, dH, 250);
beep(speakerPin, cSH, 250);

beep(speakerPin, cH, 125);
beep(speakerPin, b, 125);
beep(speakerPin, cH, 250);
delay(250);
beep(speakerPin, f, 125);
beep(speakerPin, gS, 500);
beep(speakerPin, f, 375);
beep(speakerPin, a, 125);

beep(speakerPin, cH, 500);
beep(speakerPin, a, 375);
beep(speakerPin, cH, 125);
beep(speakerPin, eH, 1000);


beep(speakerPin, aH, 500);
beep(speakerPin, a, 350);
beep(speakerPin, a, 150);
beep(speakerPin, aH, 500);
beep(speakerPin, gSH, 250);
beep(speakerPin, gH, 250);

beep(speakerPin, fSH, 125);
beep(speakerPin, fH, 125);
beep(speakerPin, fSH, 250);
delay(250);
beep(speakerPin, aS, 250);
beep(speakerPin, dSH, 500);
beep(speakerPin, dH, 250);
beep(speakerPin, cSH, 250);
//repete...

beep(speakerPin, cH, 125);
beep(speakerPin, b, 125);
beep(speakerPin, cH, 250);
delay(250);
beep(speakerPin, f, 250);
beep(speakerPin, gS, 500);
beep(speakerPin, f, 375);
beep(speakerPin, cH, 125);

beep(speakerPin, a, 500);
beep(speakerPin, f, 375);
beep(speakerPin, c, 125);
beep(speakerPin, a, 1000);
}

//Fim do código:


 

 

 

Treinamento Em Arduino

Loja Virtual

Artigos   Circuitos Arduino Pic Informações