Liebe Arduino Gemeinschaft,
ich versuche grade mit einem Arduino Uno und einem Ultraschallsensor mein Musik-Programm(Ableton) zu steuern. Realisiert habe ich das per Auslesen des seriellen Ports mit dem Programm "Hairless Serial to MIDI". Das klappt auch, wenn auch leider sehr ungenau. Kann mir jemand helfen den Fehler zu finden?
Und ich verstehe einfach nicht welche Daten ich aussenden muss, um speziell das zu machen, was ich will.
Im Moment kann ich zum Besipiel den Sensor auf einen Filter Knopf mappen, dann springt es aber und hat eigentlich nur zwei Schritte. Außerdem würde ich gerne Noten über die per Entfernung zum Sensor senden.
Es wäre sehr nett, wenn sich jemand meiner erbarmt
Grüße
Code:
int triggerPin = 2;
int echoPin = 3;
long messung = 0;
int ergebnis = 0;
int controlChange = 176; // MIDI Kanal 1
int controllerNummer = 21;
int controllerWert = 0;
int controllerWertAlt = 0;
int potiWert = 0;
void setup() {
Serial.begin(9600);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
messung = pulseIn(echoPin, HIGH);
ergebnis = (messung/2)/29; //cm
ergebnis = (ergebnis/2);
if (controllerWert <= 2500) {
controllerWert = map(ergebnis,2500,0,0,127);
if (controllerWert != controllerWertAlt) {
Serial.write(controlChange);
Serial.write(controllerNummer);
Serial.write(controllerWert);
}
}
controllerWertAlt = controllerWert;
//Serial.println(controllerWert);
delay(60);
}