สอบถามปัญหา Error, disabling serialEvent() for COM3 null

คือผมทำโปรเจ็ค http://www.idea2ic.com/BiCmosCurveTracer/Arduino%20BiCmos%20Curve%20Tracer.pdf ครับ

ต่อวงจรเสร็จเรียบร้อยและ รันโค้ดที่ Arduino ผ่าน เลยมารันต่อที่โปรแกรม Processing โค้ดก็รันผ่านนะครับ

แต่ติดปัญหาตรงที่ ตามในโค้ดให้กด S เพื่อ Start พอกดแล้วมันขึ้นข้างล่างสีแดงๆว่า "Error, disabling serialEvent() for COM3 null" ครับ

เลยสงสัยว่าจุดที่มีปัญหามันเกิดจากการที่ผมต่อวงจรผิดหรือโค้ดผิดอะครับ ช่วยทีนะครับ
อันนี้เป็นโค้ดที่รันผ่านโปรแกรม Arduino ครับ

int tri = 5; // TriAngle Wave at D5
int vg = 3; // Voltage step port at D3
int j = 0; // Tri value
int k = 0; // Step Value
int slope = 4;
int incomingByte; // read incoming serial data into
void setup()
{ Serial.begin( 9600); // initialize serial communication:
pinMode( tri, OUTPUT); pinMode( vg, OUTPUT);
} // setup
void loop()
{ if (Serial.available() > 0) // see if incoming serial data:
{ incomingByte = Serial.read(); // read oldest byte in serial buffer:
} // if (Serial.available() > 0)
if (incomingByte == 'H') // if H (ASCII 72), printoutput
{ delay( 10);
j = j+slope;
analogWrite( tri, j); // will be PWM 488 Hz
analogWrite( vg, k); // will be PWM 488 Hz Serial.print( analogRead(0)); // read current at A0 Serial.print( " ");
Serial.println( analogRead(1)); // read tri voltage at A1 delay( 10); // to stabilize adc:
if (j > 251) slope = -4 ;
if (j < 1)
{ slope = 4 ; k = k + int(255/5);
} // if (j > 251) slope = -4 ;
if (k > 255 ) k = 0 ;
} // if (incomingByte == 'H')
} // loop()

อันนี้เป็นโค้ด Java ที่ใช้ในโปรแกรม Processing ครับ
    
    import                processing.serial.*;
    PrintWriter           output;                                     // output file
    Serial                myPort;                                     // The serial port
    int                   xPos = 1;                                   // hor position  graph
    
      void                setup ()
    { size(               300, 300);                                  // set the window size:
      println(            Serial.list());                             // List serial ports
      myPort =            new Serial(this, Serial.list()[0], 9600 );  // initialize to 9600 baud  
      myPort.bufferUntil('\n');                                       // serialEvent() @ \n:
      background(         0);                                         // set inital background:
      println(            "Click on image and hit s to start");       // will start serial data
      println(            "Hit w to write to file");                  // dump to file ad stop
      String file =       String.valueOf(year());
      file =              file +"."+String.valueOf(month());
      file =              file +"."+String.valueOf(day());
      file =              file +"."+String.valueOf(hour());
      file =              file +"."+String.valueOf(minute());
      file =              file +"."+String.valueOf(second())+".mat";
      println(            file);  
      output =            createWriter(file);                        // Sketch->Show_Sketch_fie
    }                     // setup
    
      void                draw ()
    { if(                 keyPressed)
    { if                  (key == 's' || key == 'S')
    { myPort.write(       "H");
    }                     //if (key == 's' || key == 'S')
      if                  (key == 'w' || key == 'W')
    { output.flush();     // Writes the remaining data to the file
      output.close();     // Finishes the file
      exit();             // Stops the program
    }                     // if (key == 'w' || key == 'W')
    }                     // if( keyPressed)
    }                     // draw ()
    
      void                serialEvent (Serial myPort)
    { String inString =   myPort.readStringUntil('\n');               // get the ASCII string:
      if                  (inString != null)
    { inString =          trim(inString);                             // trim whitespace:
      int[] vv =          int(split(inString, ' '));
      // println(         inString );
      output.println(     inString );
      float val0 =        float(vv[0]);  
      float val1 =        float(vv[1]);  
      val0 =              map(val0, 0, 1023, 0, height*.95);
      val1 =              map(val1, 0, 1023, 0, height*.95);
      stroke(             127,34,255);                                    // color to draw
      line(               val1, height - val0-1, val1+1, height - val0);  // draw the line:
      if                 (xPos >= 6*width)
    { xPos =              0;                                              // auto redraw
      background(         0);                                            
    }                     // if (xPos >= 2*width)
      else                
    { xPos=               xPos+1;                                          
    }                     // else                                                        
    }                     // if (inString != null)
    }                     // serialEvent (Serial myPort)
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่