Guten Abend an alle,
ich habe eine Einrichtung mit [Drucksensoren], die nicht richtig funktionieren.
Die Idee an sich ist, dass ich Mdf-Platten habe. Der Sensor soll unter die Platte angebracht werden und somit ausgelöst werden, wenn jemand drauf steigt. Stellt sich eine Person auf die Platte soll Ton abgespielt werden. Geht die Person wieder runter, soll der Ton stoppen.
Solang ich den Sensor gedrückt halte , sollte er 'c' ausgeben und wenn ich den Sensor wieder loslasse, sollte er 'd' ausgeben.
Wenn ich aber den Sensor drücke, gibt er einfach abwechselnd 'c' und 'd' aus.
Ich bin ein absoluter Anfänger, daher sorry für die etwas unpräzise Erklärung. Das Seltsame ist, dass es vor ein paar Tagen noch funktioniert hat, also bin ich mir nicht sicher, ob die Sensoren das Problem sind oder ob ich den Code durcheinander gebracht habe, weil ich paar Anpassungen am Schwellenwert vorgenommen habe.
Vielen Dank schon mal im Voraus!
#include <Keyboard.h>
long lastInteraction = -999999;
boolean stat[] = {false, false, false, false};
char keyOn[] = {'a', 'c', 'e', 'g'};
char keyOff[] = {'b', 'd', 'f', 'h'};
int schwellenwert[] = {800, 800, 800, 800};
void setup() {
Serial.begin(9600);
}
void loop() {
for(int i = 0; i< 4; i++){
int druck = analogRead(i);
//int druck2 = analogRead(A0);
Serial.print("druck");
Serial.print(i);
Serial.print(": ");
Serial.print(druck);
Serial.println();
if (millis() - lastInteraction > 300) {
if (!stat[i] && druck > schwellenwert[i]) {
stat[i] = true;
lastInteraction = millis();
Keyboard.print(keyOn[i]);
} else if(stat[i] && druck < schwellenwert[i]) {
stat[i] = false;
lastInteraction = millis();
Keyboard.print(keyOff[i]);
}
}
}
}