Hallo,
Ich möchte, dass wenn ein Taster am Keypad gedrückt wird, die Sensordaten in Seriellen Monitor ausgelesen werden. Jetzt hab ich das Problem, dass, die Sensordaten nur dann ausgelesen werden,
wenn ich auf den Taster drücke.
#include <Wire.h>
#include <Keypad.h>
const int MPU_addr=0x68;
double AcX;
double AcY;
double AcZ;
double GyX;
double GyY;
double GyZ;
double kAcc = 9.806/16384;
double Tmp;
double AXdif;
double AXmax;
double AXmin;
const byte ROWS = 4;
const byte COLS = 4;
bool ispressed;
int zaehler;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = { 3, 4, 5, 6 };
byte colPins[COLS] = { 7, 17, 16, 18 };
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
pinMode(ledpin,OUTPUT);
digitalWrite(ledpin, HIGH);
Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
Serial.begin(9600);
}
void loop()
{
Wire.beginTransmission(MPU_addr);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr,14,true);
AcX=Wire.read()<<8|Wire.read();
AcY=Wire.read()<<8|Wire.read();
AcZ=Wire.read()<<8|Wire.read();
Tmp=Wire.read()<<8|Wire.read();
GyX=Wire.read()<<8|Wire.read();
GyY=Wire.read()<<8|Wire.read();
GyZ=Wire.read()<<8|Wire.read();
double AccX = AcX * kAcc;
double AccY = AcY * kAcc;
double AccZ = AcZ * kAcc;
AXdif = AXmax - AXmin;
if (AcX*kAcc < AXmin){
AXmin = AcX*kAcc;
}
if (AcX*kAcc > AXmax){
AXmax = AcX*kAcc;
}
char key = kpd.getKey();
switch (key)
{
case '1':
ispressed = true;
while(ispressed)
{
Serial.print(AccX);
Serial.print(" ");
Serial.print(AXdif);
Serial.print(" ");
Serial.println(zaehler);
key = kpd.getKey();
if(key != NO_KEY )
{
break;
}
}
}
}