处理IDE数据没有正确发送到arduino

时间:2016-11-25 20:05:43

标签: arduino processing

我想将处理IDE数据发送到arduino。但领导不起作用。它工作得很好。但现在不工作:(串口名称与arduino完全相同,因为它是通过处理找到的。

处理代码:

import processing.serial.*;

Serial myPort;  // Create object from Serial class

void setup() 
{
  size(200,200); //make our canvas 200 x 200 pixels big
  String portName = Serial.list()[0]; //change the 0 to a 1 or 2 etc. to match your port
  myPort = new Serial(this, portName, 9600);
}
         //send a 1

void draw() {
  if (mousePressed == true) 
  {                           //if we clicked in the window
   myPort.write('1');         //send a 1
   println("1");   
  } else 
  {                           //otherwise
  myPort.write('0');          //send a 0
  }   
}

Arduino代码:

 char val='0'; // Data received from the serial port
 int ledPin = 13; // Set the pin to digital I/O 13

 void setup() {
   pinMode(ledPin, OUTPUT); // Set pin as OUTPUT
   Serial.begin(9600); // Start serial communication at 9600 bps
 }

  void loop() {
     //digitalWrite(ledPin, HIGH); // turn the LED on
 if (Serial.available()) 
   { // If data is available to read,
     val = Serial.read(); // read it and store it in val
   }
   if (val == '1') 
   { // If 1 was received
     digitalWrite(ledPin, HIGH); // turn the LED on
   } else {
     digitalWrite(ledPin, LOW); // otherwise turn it off
   }
   delay(10); // Wait 10 milliseconds for next reading
}

1 个答案:

答案 0 :(得分:0)

的处理

你可以简单地说if(mousePressed)...,没有必要说== true(隐含意思)

的Arduino

在您尝试使用从那里读取的任何字符覆盖if(Serial.available())之前,检查val是否正确无误。但是,无论此检查如何,loop()内的其余代码都在执行。如果引脚已经存在,则没有理由将引脚重复写入LOW或HIGH。事实上,如果你只是在你找到可供阅读的角色的循环上延迟,你会更敏感。

我建议您在Arduino代码中添加一些打印语句,以便了解您正在阅读的内容。

另外,您的硬件是否连接不正确或者您的LED烧坏了?