#ifndef FUNCTIONS_H
#define FUNCTIONS_H
TMRpcm player;
/*
* AVISO: Código duplicado à vista!
*/
void playNote(MUX mux)
{
int z_val = mux.readZ() >= 1015;
int mux_y = mux.getY();
static int active_mux = 0;
static int active_y = -1;
if (z_val && !player.isPlaying())
{
active_y = mux_y;
active_mux = mux.id();
if (active_mux == 1)
{
switch (mux_y)
{
case 0:
player.play("CF3/CF3_C4.wav");
break;
case 1:
player.play("CF3/CF3_Cs4.wav");
break;
case 2:
player.play("CF3/CF3_D4.wav");
break;
case 3:
player.play("CF3/CF3_Ds4.wav");
break;
case 4:
player.play("CF3/CF3_E4.wav");
break;
case 5:
player.play("CF3/CF3_F4.wav");
break;
case 6:
player.play("CF3/CF3_Fs4.wav");
break;
case 7:
player.play("CF3/CF3_G4.wav");
break;
}
}
else if (active_mux == 2)
{
switch (mux_y)
{
case 0:
player.play("CF3/CF3_Gs4.wav");
break;
case 1:
player.play("CF3/CF3_A4.wav");
break;
case 2:
player.play("CF3/CF3_As4.wav");
break;
case 3:
player.play("CF3/CF3_B4.wav");
break;
case 4:
player.play("CF3/CF3_C5.wav");
break;
case 5:
player.play("CF3/CF3_Cs5.wav");
break;
case 6:
player.play("CF3/CF3_D5.wav");
break;
case 7:
player.play("CF3/CF3_Ds5.wav");
break;
}
}
else if (active_mux == 3)
{
switch (mux_y)
{
case 0:
player.play("CF3/CF3_E5.wav");
break;
case 1:
player.play("CF3/CF3_F5.wav");
break;
case 2:
player.play("CF3/CF3_Fs5.wav");
break;
case 3:
player.play("CF3/CF3_G5.wav");
break;
case 4:
player.play("CF3/CF3_Gs5.wav");
break;
case 5:
player.play("CF3/CF3_A5.wav");
break;
case 6:
player.play("CF3/CF3_As5.wav");
break;
case 7:
player.play("CF3/CF3_B5.wav");
break;
}
}
}
else if (z_val == 0 && mux_y == active_y && active_mux == mux.id())
{
player.stopPlayback();
active_y = -1;
active_mux = 0;
}
}
void toneNote(MUX mux)
{
int z_val = mux.readZ() >= 1015;
int mux_y = mux.getY();
static int active_mux = 0;
static int active_y = -1;
if (z_val)
{
active_y = mux_y;
active_mux = mux.id();
if (active_mux == 1)
{
switch (mux_y)
{
case 0:
tone(46, NOTE_C4);
break;
case 1:
tone(46, NOTE_CS4);
break;
case 2:
tone(46, NOTE_D4);
break;
case 3:
tone(46, NOTE_DS4);
break;
case 4:
tone(46, NOTE_E4);
break;
case 5:
tone(46, NOTE_F4);
break;
case 6:
tone(46, NOTE_FS4);
break;
case 7:
tone(46, NOTE_G4);
break;
}
}
else if (active_mux == 2)
{
switch (mux_y)
{
case 0:
tone(46, NOTE_GS4);
break;
case 1:
tone(46, NOTE_A4);
break;
case 2:
tone(46, NOTE_AS4);
break;
case 3:
tone(46, NOTE_B4);
break;
case 4:
tone(46, NOTE_C5);
break;
case 5:
tone(46, NOTE_CS5);
break;
case 6:
tone(46, NOTE_D5);
break;
case 7:
tone(46, NOTE_DS5);
break;
}
}
else if (active_mux == 3)
{
switch (mux_y)
{
case 0:
tone(46, NOTE_E5);
break;
case 1:
tone(46, NOTE_F5);
break;
case 2:
tone(46, NOTE_FS5);
break;
case 3:
tone(46, NOTE_G5);
break;
case 4:
tone(46, NOTE_GS5);
break;
case 5:
tone(46, NOTE_A5);
break;
case 6:
tone(46, NOTE_AS5);
break;
case 7:
tone(46, NOTE_B5);
break;
}
}
}
else if (z_val == 0 && mux_y == active_y && active_mux == mux.id())
{
noTone(46);
active_y = -1;
active_mux = 0;
}
}
void checkEaster(MUX mux1, MUX mux2)
{
int z1, z2, y1, y2;
y1 = mux1.getY();
z1 = mux1.readZ() >= 1015;
y2 = mux2.getY();
z2 = mux2.readZ() >= 1015;
if (z1 && z2 && y1 ==0 && y2 == 0)
{
noTone(46);
if (player.isPlaying()) player.stopPlayback();
digitalWrite(13, !digitalRead(13));
delay(1000);
}
}
#endif
Blog criado a fim de registrar o progresso dos projetos referentes ao Arduino para a aula de Física Experimental 2 da Pontifícia Universidade Católica de São Paulo.
terça-feira, 10 de junho de 2014
Código-fonte: functions.h
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário