Go Down

Topic: mandar 2 mensajes al mismo tiempo (Read 420 times) previous topic - next topic

Batu

Buenas, he conectao a arduino 2 piezoelectricos, los cuales me mandan mensajes midi desde arduino hasta mi pc. Mi problema esta en que no puedo mandar los dos mensajes de los piezos al mismo tiempo. Tengo hecho este programa para mandarlo:
//PIEZO 1 RIDE
 if (val1 >= THRESHOLD) {
   digitalWrite(led0, HIGH);
   noteOn(0x90,RIDE,63);
   delay(100);

 }
 
 //PIEZO 2 KICK
 if (val2 >= THRESHOLD) {
   digitalWrite(led3, HIGH);
   noteOn(0x90,KICK,63);
   delay(100);

 }

Donde la funcion noteOn es la siguiente:

void noteOn(char cmd, char data1, char data2) {
 Serial.print(cmd, BYTE);
 Serial.print(data1, BYTE);
 Serial.print(data2, BYTE);

}

Esto me manda sin problemas los mensajes hasta el pc, pero solo uno al mismo tiempo, es decir, si golpeo los dos piezos al mismo tiempo, solo recibo mensaje de uno de ellos. Como puedo hacer que me salgan los dos??? He hecho esto, pero no funciona

void dues(char cmd, char data1, char data2, char cmd2, char data3, char data4) {
 Serial.print(cmd, BYTE);
 Serial.print(data1, BYTE);
 Serial.print(data2, BYTE);

 Serial.print(cmd2, BYTE);
 Serial.print(data3, BYTE);
 Serial.print(data4, BYTE);

}

Es lo mismo de antes, pero enviando 2 mensajes midi.

Alguna idea????

Gracias

mihawk

yo diría que podría ser por usar la función delay, probaste con millis().
http://www.arduino.cc/es/Tutoriales/ParpadeaSinDelay
por cierto, esta pagina tiene un error, al declarar la función previousMillis, lo hacen con int, y da error a los pocos segundos, deja de funcionar, hay que ponerla como long ¿como hago para avisar de eso?

David Cuartielles


Go Up