Nach Tastendruck Sensordaten fortlaufend aktualisieren

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;
          } 

    }
    }
}

mo5cbd:
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.

Ich verstehe das Problem nicht ganz.
Oder willst du mit einen Tastendruck die serielle Ausgabe bis auf weiteres aktivieren? Und nach erneutem Druck deaktivieren? Also sozusagen an- und abschalten?

Tut mir leid für die schlechte Formulierung. Also ich möcht die Sensordaten Plotten. Dafür brauch ich sinnvollerweise mehr als einen Messwert. Wenn ich jetzt den Taster betätige bekomme ich aber nur einen Messwert. Ich möchte, dass wenn ich den Taster drücke, die Sensordaten fortlaufend im Seriellen Monitor bzw. Plotter aktualisiert werden.

Merke Dir in einer Variablen, ob Du messen/senden sollst. Etwa so:

boolean messen = false;

void loop() {
  char key = kpd.getKey();
  if (key == '1') messen = true;  // ein
  if (key == '2') messen = false; // aus

  if (messen) {
    // Messwerte holen und ausgeben
  }

}

Gruß Tommy