Hola amigos.
Estoy construyendo a partir de ceros y unos logicos notacion midi (note on y noteoff)
y con la siguiente programacion me ha funcionado bien, cero problema.
boolean playing01=0;
void setup() {
Serial.begin(31250);
pinMode(4, INPUT);
}
void loop() {
if (!playing01 &(digitalRead(4)==0)){
playing01=1;
Serial.print(0x90, BYTE);
Serial.print(48, BYTE);
Serial.print(0x00, BYTE);
}
if (playing01 & (digitalRead(4)==1)){
playing01=0;
Serial.print(0x90, BYTE);
Serial.print(48, BYTE);
Serial.print(90, BYTE);
}
}
El problema esta cuando quiero agregar mas entradas, la anterior esta en el pin4, y lo que quiero ahora es que me funcionen las entradas desde la 4 a la 11 y hago lo siguiente:
boolean playing01=0;
boolean playing02=0;
boolean playing03=0;
boolean playing04=0;
boolean playing05=0;
boolean playing06=0;
boolean playing07=0;
boolean playing08=0;
void setup() {
Serial.begin(31250);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
}
void loop() {
if (!playing01 &(digitalRead(4)==0)){
playing01=1;
Serial.print(0x90, BYTE);
Serial.print(48, BYTE);
Serial.print(0x00, BYTE);
}
if (playing01 & (digitalRead(4)==1)){
playing01=0;
Serial.print(0x90, BYTE);
Serial.print(48, BYTE);
Serial.print(90, BYTE);
}
if (!playing02 &(digitalRead(5)==0)){
playing02=1;
Serial.print(0x90, BYTE);
Serial.print(50, BYTE);
Serial.print(0x00, BYTE);
}
if (playing02 & (digitalRead(5)==1)){
playing02=0;
Serial.print(0x90, BYTE);
Serial.print(50, BYTE);
Serial.print(90, BYTE);
}
if (!playing03 &(digitalRead(6)==0)){
playing03=1;
Serial.print(0x90, BYTE);
Serial.print(52, BYTE);
Serial.print(0x00, BYTE);
}
if (playing03 & (digitalRead(6)==1)){
playing03=0;
Serial.print(0x90, BYTE);
Serial.print(52, BYTE);
Serial.print(90, BYTE);
}
if (!playing04 &(digitalRead(7)==0)){
playing04=1;
Serial.print(0x90, BYTE);
Serial.print(53, BYTE);
Serial.print(0x00, BYTE);
}
if (playing04 & (digitalRead(7)==1)){
playing04=0;
Serial.print(0x90, BYTE);
Serial.print(53, BYTE);
Serial.print(90, BYTE);
}
if (!playing05 &(digitalRead(8)==0)){
playing05=1;
Serial.print(0x90, BYTE);
Serial.print(55, BYTE);
Serial.print(0x00, BYTE);
}
if (playing05 & (digitalRead(8)==1)){
playing05=0;
Serial.print(0x90, BYTE);
Serial.print(55, BYTE);
Serial.print(90, BYTE);
}
if (!playing06 &(digitalRead(9)==0)){
playing06=1;
Serial.print(0x90, BYTE);
Serial.print(57, BYTE);
Serial.print(0x00, BYTE);
}
if (playing06 & (digitalRead(9)==1)){
playing06=0;
Serial.print(0x90, BYTE);
Serial.print(57, BYTE);
Serial.print(90, BYTE);
}
if (!playing07 &(digitalRead(10)==0)){
playing07=1;
Serial.print(0x90, BYTE);
Serial.print(59, BYTE);
Serial.print(0x00, BYTE);
}
if (playing07 & (digitalRead(10)==1)){
playing07=0;
Serial.print(0x90, BYTE);
Serial.print(59, BYTE);
Serial.print(90, BYTE);
}
if (!playing08 &(digitalRead(11)==0)){
playing08=1;
Serial.print(0x90, BYTE);
Serial.print(60, BYTE);
Serial.print(0x00, BYTE);
}
if (playing08 & (digitalRead(11)==1)){
playing08=0;
Serial.print(0x90, BYTE);
Serial.print(60, BYTE);
Serial.print(90, BYTE);
}
}
Me pregunto cual será el error que estoy cometiendo. porque no me funciona.
Estaré bastante agradecido, ya que esto me tiene realmente desesperado.