Upload
nicole-rodriguez
View
202
Download
0
Embed Size (px)
Citation preview
Código Fuente:
/*Guitarra Eléctrica:*/
int i=0;
int Notas[8];
int a=0;
int j=0;
int num=0;
string linea="-";
string nums;
byte punteroArchivo;
string cadena;
byte bytesEscritos;
mutex Multiple;
string leer;
int tam=512;
string mas="Distancia ";
string nota="La nota es";
sub TraspasaArchivo()
{
DeleteFile("Notas.txt"); //borra archivo
CreateFile("Notas.txt", tam, punteroArchivo); //Crea un nuevo archivo
WriteLnString(punteroArchivo, "Notas", bytesEscritos);// Escribe en el archivo
for(j=0; j < ArrayLen(Notas); j++) //recorre el arreglo para definir la nota.
{if(Notas[j]>=10&&Notas[j]<12){ // verifica las distacias para asignar las notas
cadena= "La";
cadena=nota+cadena; // se une los strig cadena y nota para generar una frase : la nota es "la".
cadena = cadena + linea;
WriteLnString(punteroArchivo, cadena, bytesEscritos); //Escribe la nota definifa dentro del archivo
}
if(Notas[j]>=12&&Notas[j]<14){
cadena= "Do";
cadena=nota+cadena;
cadena = cadena + linea;
WriteLnString(punteroArchivo, cadena, bytesEscritos);
}
if(Notas[j]>=14&&Notas[j]<16){
cadena= "Re";
cadena=nota+cadena;
cadena = cadena + linea;
WriteLnString(punteroArchivo, cadena, bytesEscritos);
}
if(Notas[j]>=16&&Notas[j]<18){
cadena= "Re#";
cadena=nota+cadena;
cadena = cadena + linea;
WriteLnString(punteroArchivo, cadena, bytesEscritos);
}
if(Notas[j]>=18&&Notas[j]<20){
cadena= "Mi";
cadena=nota+cadena;
cadena = cadena + linea;
WriteLnString(punteroArchivo, cadena, bytesEscritos);
}
if(Notas[j]>=20&&Notas[j]<22){
cadena= "Sol";
cadena=nota+cadena;
cadena = cadena + linea;
WriteLnString(punteroArchivo, cadena, bytesEscritos);
}
if(Notas[j]>=22&&Notas[j]<24){
cadena= "Sol#";
cadena=nota+cadena;
cadena = cadena + linea;
WriteLnString(punteroArchivo, cadena, bytesEscritos);
}
if(Notas[j]>=24&&Notas[j]<26){
cadena= "Lam";
cadena=nota+cadena;
cadena = cadena + linea;
WriteLnString(punteroArchivo, cadena, bytesEscritos);
}
}
CloseFile(punteroArchivo); //cerrar el archivo
}
// Diferentes tareas para reproducir el sonido de cada nota musical
task la(){
while(true){
if(ButtonPressed(BTNCENTER, false)){ //verifica si el boton central es presionado
if(SensorUS(IN_4)<=12){
PlayFileEx("Guitar_A_high.rso", 7,0); //Reproduce el un archivo .rso con maximo volumen
Wait(300); //durante 3 milisegundos
Notas[i]= SensorUS(IN_4); //guarda el valor entregado por el sensor de proximidad dentro del arreglo.
i++;
} } } }
task DO(){
while(true){
if(ButtonPressed(BTNCENTER,false)){
if(SensorUS(IN_4)>12 && SensorUS(IN_4)<=14){
PlayFileEx("Guitar_C.rso", 7, 0);
Wait(300);
Notas[i]= SensorUS(IN_4);
i++;
}
}}}
task re(){
while(true){
if(ButtonPressed(BTNCENTER, false)){
if(SensorUS(IN_4)>14 && SensorUS(IN_4)<=16){
PlayFileEx("Guitar_D.rso", 7, 0);
Wait(300);
Notas[i]= SensorUS(IN_4);
i++;
}} } }
task resotenido(){
while(true){
if (ButtonPressed(BTNCENTER, false)){
if(SensorUS(IN_4)>16 &&SensorUS(IN_4)<=18){
PlayFileEx("Guitar_D_sharp.rso", 7, 0);
Wait(300);
Notas[i]= SensorUS(IN_4);
i++;
}} }
}
task mi(){
while(true){
if (ButtonPressed(BTNCENTER, false)){
if(SensorUS(IN_4)>18 &&SensorUS(IN_4)<=20){
PlayFileEx("Guitar_E.rso", 7,0);
Wait(300);
Notas[i]= SensorUS(IN_4);
i++;}} }}
task sol(){
while(true){
if (ButtonPressed(BTNCENTER, false)){
if(SensorUS(IN_4)>20 &&SensorUS(IN_4)<=22){
PlayFileEx("Guitar_G.rso", 7, 0);
Wait(300);
Notas[i]= SensorUS(IN_4);
i++;
}} }}
task solsotenido(){
while(true){
if (ButtonPressed(BTNCENTER, false)){
if(SensorUS(IN_4)>22 &&SensorUS(IN_4)<=24){
PlayFileEx("Guitar_G_sharp.rso", 7, 0);
Wait(300);
Notas[i]= SensorUS(IN_4);
i++;
}} }
}
task lamenor(){
while(true){
if (ButtonPressed(BTNCENTER, false)){
if(SensorUS(IN_4)>24){
PlayFileEx("Guitar_A_low.rso", 7,0);
Wait(300);
Notas[i]= SensorUS(IN_4);
i++;}
} } }
sub imprimir (){
int pa=50; //coordenadas en la pantalla
bool eof = false; //variable boleana
TraspasaArchivo(); //llama a la subrutina
ClearScreen(); //limpia la pantalla
OpenFileRead("Notas.txt", tam, punteroArchivo); // abre el archivo
while (eof == false){ // read the text file till the end
if(ReadLnString(punteroArchivo,leer) != NO_ERR) //Si no existe error al leer una linea del archivo
TextOut(LCD_LINE8,pa,leer); //imprime en pantalla
pa= pa-10; a
Wait(500);}
Wait(5000);
CloseFile(punteroArchivo); //cierra el archivo
}
task archivo(){
while(true){
if (ButtonPressed(BTNLEFT, false)){ //si presiona el boton izquierdo muestra en pantalla
imprimir();} }
}
task main(){
SetSensorLowspeed(IN_4); //encender sensor de proximidad
Precedes(la,DO,re,resotenido,mi,sol,solsotenido,lamenor,archivo);
}