Hello,
i'm trying to make a drum set. The original code is this:
int noteOn = 144;
int piezo = A0;
int threshold = 50;//anything over fifty means we've hit the piezo
void setup(){
Serial.begin(9600);
}
void loop(){
int piezoVal = analogRead(piezo);
if (piezoVal>threshold){
MIDImessage(noteOn, 60, 127);
delay(300);
MIDImessage(noteOn, 60, 0);
}
}
//send MIDI message
void MIDImessage(byte command, byte data1, byte data2) {
Serial.write(command);
Serial.write(data1);
Serial.write(data2);
}
On the analog input is connected some piezoelectric sensor, one for every entrance.
Arduino sample the signal, compares it to a threshold and if the signal is higher than the threshold, send a MIDI note via USB
int noteOn = 144;
int soglia = 50;//qualunque valore sopra 50 significa che è stato toccato il piezosensore
void setup()
{
Serial.begin(9600);
}
void loop()
{
int piezoVal1 = analogRead(A0);
int piezoVal2 = analogRead(A1);
int piezoVal3 = analogRead(A2);
int piezoVal4 = analogRead(A3);
int piezoVal5 = analogRead(A4);
int piezoVal6 = analogRead(A5);
if (piezoVal1 > soglia)
{
MIDImessage(noteOn, 60, 127);// Invia il messagio di nota ON
delay(300);
MIDImessage(noteOn, 60, 0); // Invia il messaggio di nota OFF
}
if (piezoVal2 > soglia)
{
MIDImessage(noteOn, 70, 127);// Invia il messagio di nota ON ma con un altra tonalità
delay(300);
MIDImessage(noteOn, 70, 0); // Invia il messaggio di nota OFF
}
if (piezoVal3 > soglia)
{
MIDImessage(noteOn, 80, 127);
delay(300);
MIDImessage(noteOn, 80, 0); // Invia il messaggio di nota OFF
}
if (piezoVal4 > soglia)
{
MIDImessage(noteOn, 90, 127);
delay(300);
MIDImessage(noteOn, 90, 0); // Invia il messaggio di nota OFF
}
/*if (piezoVal5 > soglia)
{
MIDImessage(noteOn, 100, 127);
delay(300);
MIDImessage(noteOn, 100, 0); // Invia il messaggio di nota OFF
}
if (piezoVal6 > soglia)
{
MIDImessage(noteOn, 110, 127);
delay(300);
MIDImessage(noteOn, 110, 0); // Invia il messaggio di nota OFF
}*/
}
//invia il messaggio MIDI
void MIDImessage(byte command, byte data1, byte data2)
{
Serial.write(command);//invia comando "nota on" oppure "nota off"
Serial.write(data1);//invia i dati di tono
Serial.write(data2);//invia i dati di velocità
}
I tried to increase piezoelectric sensors from 1 to 6.
my problem is that there is always a steady beat nonhardly I turn it on.
The LED "on" and the LED "L" are turned on, while LED "RX" constantly flashes