os comento, empece con arduino hace poco, se algo d C pero nada de electrónica..
se me ocurrió programar un secuencidor, es decir, un pianillo que memorizase la secuencia de notas tocadas y que las repita continuamente.
hace un par de dias conseguí hacerlo funcionar, pero ayer al volver a montar el circuito la lie y conecte la salida de 5v directa a los pines INPUT.. y "casualidad", el programa que me habia funcionado el dia anterior dejo de funcionar.
así q no se si el problema esta en el codigo o es que queme la placa..
este es el codigo:
#define NOTE_C3 131
#define NOTE_D3 147
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_G3 196
#define NOTE_A3 220
#define NOTE_B3 247
int bot1=2;
int bot2=3;
int bot3=4;
int bot4=5;
int bot5=6;
int bot6=7;
int bot7=8;
int voz=13;
int red=12;
int green=11;
int cadena[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int memCadena[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
void setup()
{
Serial.begin(9600);
pinMode (bot1,INPUT);
pinMode (bot2,INPUT);
pinMode (bot3,INPUT);
pinMode (bot4,INPUT);
pinMode (bot5,INPUT);
pinMode (bot6,INPUT);
pinMode (bot7,INPUT);
pinMode (voz,OUTPUT);
pinMode (red,OUTPUT);
pinMode (green,OUTPUT);
}
void loop()
{
//IF botones
for(int i=0;i<16;i++)
{
if(digitalRead(bot1)==HIGH)
{
cadena[i]=1;
memCadena[i]=cadena[i];
}
if(digitalRead(bot2)==HIGH)
{
cadena[i]=2;
memCadena[i]=cadena[i];
}
if(digitalRead(bot3)==HIGH)
{
cadena[i]=3;
memCadena[i]=cadena[i];
}
if(digitalRead(bot4)==HIGH)
{
cadena[i]=4;
memCadena[i]=cadena[i];
}
if(digitalRead(bot5)==HIGH)
{
cadena[i]=5;
memCadena[i]=cadena[i];
}
if(digitalRead(bot6)==HIGH)
{
cadena[i]=6;
memCadena[i]=cadena[i];
}
if(digitalRead(bot7)==HIGH)
{
cadena[i]=7;
memCadena[i]=cadena[i];
}
else
{
cadena[i]=memCadena[i];
}
Serial.print(cadena[i]);
// IF notas
if(cadena[i]==1)
{
tone(voz,NOTE_C3,50);
}
if(cadena[i]==2)
{
tone(voz,NOTE_D3,50);
}
if(cadena[i]==3)
{
tone(voz,NOTE_E3,50);
}
if(cadena[i]==4)
{
tone(voz,NOTE_F3,50);
}
if(cadena[i]==5)
{
tone(voz,NOTE_G3,50);
}
if(cadena[i]==6)
{
tone(voz,NOTE_A3,50);
}
if(cadena[i]==7)
{
tone(voz,NOTE_B3,50);
}
//IF metronomo
if(i%2==0)
{
digitalWrite(green,LOW);
digitalWrite(red,HIGH);
}
if(i%2!=0)
{
digitalWrite(red,LOW);
digitalWrite(green,HIGH);
}
delay(300);
}
Serial.println(".");
}
en princiopio el array cadena[ i ] deberia arrancar a cero, pero a mi me arranca con un valor de 3..
puede alguin probarlo y decirme si es problema de mi arduino o problema del codigo?
un saludo y gracias!