Codeมีปัญหาที่Serial.printมีสาเหตุมาจากอะไรคะ รบกวนขอความเห็นหน่อยค่ะ

#define SAMPLEPERIODUS 1000  // Sampling frequency = 1/SAMPLEPERIODUS, where SAMPLEPERIODUS is the sampling period in microsec.
int inPin = 0; // voltage connected to analog pin
float x[] = {0, 0, 0};       // input signal
//float x1 = 0; 
//float x2 = 0;
float y[]  = {0, 0, 0};
int i = 2;
/*float y1 = 0;
float y2 = 0;*/
float g = 0;
float a = 0;
float b = 0;
float xmax = 0;
float xmin = 0;
float ymax = 0;
float ymin = 0;
void setup(){
  
  Serial.begin(115200);    
  pinMode(inPin,INPUT);
  pinMode(13,OUTPUT);
}
void loop() {
  unsigned long time = micros(); // Used to track rate
  x = (float)analogRead(inPin)*5.0/1023.0; // convert raw data to volt
 
  y = (1.0622*y[i-1])-(0.3786*y[i-2])+(0.0791*x)+(0.1582*x[i-1])+(0.0791*x[i-2]); //Past
   
  if((y[i-1]>y[i-2]) && (y[i-1]>y)){ymax = y[i-1];}
  if((y[i-1]<y[i-2]) && (y[i-1]<y)){ymin = y[i-1];}
  if((x[i-1]>x[i-2]) && (x[i-1]>x)){xmax = x[i-1];}
  if((x[i-1]<x[i-2]) && (x[i-1]<x)){xmin = x[i-1];}
  
  a = xmax-xmin;
  b = ymax-ymin;
  g = b/a;
  
  if(g>0.707){
    digitalWrite(13,HIGH);
  }
  
  else{
    digitalWrite(13,LOW);
  }
   
  y[i-2] = y[i-1]; y[i-1] = y;
  x[i-2] = x[i-1]; x[i-1] = x;
  
  Serial.print(x);  //Show input blue
  Serial.print(", ");   //x beteween y
  Serial.print(y);
  Serial.print(", ");
  Serial.println(g);
 
  for(unsigned long up = time+SAMPLEPERIODUS; time > 0 && time < up; time = micros());
}

-โจทย์กำหนดให้LED ติดเมื่อความถี่ไม่มากกว่า Cut-off frequency และหากความถี่มากให้LED ดับ
-ก่อนหน้านี้เราได้สร้างฟิลเตอร์ในMATLABโดยใช้ fdatoolกำหนดฟิลเตอร์เป็น 2nd order IIR Butterworth Low pass filter
 กำหนดให้ Sampling frequency = 1000 Hz, Cut-off frequency = 110Hz
 ซึ่งได้ค่า num = [ 0.0791, 0.1582, 0.0791] และ den = [ 1, -1.0622, 0.3786]

!!!!!!ปัญหาตอนนี้คือ Codeสามารถรันได้แต่ผลที่ได้ไม่ถูกต้อง แต่เมื่อเราลองลบในส่วนSerial.printทุกตัวที่ไม่ใช่Serial.begin(115200);  Codeสามารรันและได้ผลปกติ เป็นเพราะสาเหตุใดคะ!!!!!!

ขอบคุณสำหรับทุกความเห็นล่วงหน้านะคะ
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
Preview
อ่านกระทู้อื่นที่พูดคุยเกี่ยวกับ  C (ภาษาคอมพิวเตอร์) Microprogramming Arduino
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่