处理IDE数据未正确发送到arduino

处理IDE数据未正确发送到arduino,arduino,processing,Arduino,Processing,我想将正在处理的IDE数据发送到arduino。但led不起作用。有一次效果很好。但现在不工作:(串行端口名在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 portNam

我想将正在处理的IDE数据发送到arduino。但led不起作用。有一次效果很好。但现在不工作:(串行端口名在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
}
处理 您可以简单地说
如果(鼠标按下)…
,就不需要说
==true
(这是隐含的)

阿杜伊诺 在尝试用从那里读取的任何字符覆盖
val
之前,检查
if(Serial.available())
是正确的。但是,在
loop()中的其余代码
正在执行,与此检查无关。如果pin已经存在,则没有理由重复将其写入LOW或HIGH。事实上,如果您只在找到可读取字符的循环上延迟,您的响应会更灵敏

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

此外,可能是硬件连接不正确,还是LED灯只是烧坏了?

您可以简单地说
如果(鼠标按下)…
,就不需要说
==true
(这是隐含的)

阿杜伊诺 在尝试用从那里读取的任何字符覆盖
val
之前,检查
if(Serial.available())
是正确的。但是,在
loop()中的其余代码
正在执行,与此检查无关。如果pin已经存在,则没有理由重复将其写入LOW或HIGH。事实上,如果您只在找到可读取字符的循环上延迟,您的响应会更灵敏

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


此外,可能是硬件连接不正确或LED灯只是烧坏了?

您是否进行过调试?您是否使用打印语句来确定处理草图中运行的是哪一段代码?您是否确定了代码是否在Arduino一侧运行?因为您正在调用
delay(10)
在阿鲁迪诺,这会不会导致处理信号的积累,因为它们每一帧都被发送?@NurImtiazulHaque Arduino和处理代码都有意义。唯一需要注意的是,您在draw()中发送数据这意味着只要按下鼠标,LED就会一直亮着。如果您的LED出现问题,请暂时尝试上载示例>基础>闪烁草图,并确保其仍然工作。有一个板载LED需要测试。如果您手动将LED连接到针脚13,请仔细检查触点是否正常以及针脚(阴极/阳极)连接方式正确我正在使用车载LED(引脚13)处理代码工作正常。在鼠标按下和释放时,它同时显示0和1。串行端口号也相同。我已在处理中打印以进行检查。但数据未发送到串行端口。:(它工作过一次。我不知道发生了什么:(@KevinWorkmanBlink程序在arduino中也运行良好。@NurImtiazulHaque很好,LED按预期工作,但奇怪的是数据没有发送到串行端口。当您通过arduino的串行监视器发送
1
0
时会发生什么?它是否按预期工作?(如果是,问题在处理端,如果不是Arduino的问题,在这种情况下,尝试使用不同的USB端口、USB电缆或完全不同的Arduino(如果端口/电缆选项没有改变任何内容))您是否进行过任何调试?您是否使用打印语句来确定处理草图中运行的是哪一段代码?您是否确定代码是否在Arduino一侧运行?因为您正在调用
delay(10)
在阿鲁迪诺,这会不会导致处理信号的积累,因为它们每一帧都被发送?@NurImtiazulHaque Arduino和处理代码都有意义。唯一需要注意的是,您在draw()中发送数据这意味着只要按下鼠标,LED就会一直亮着。如果您的LED出现问题,请暂时尝试上载示例>基础>闪烁草图,并确保其仍然工作。有一个板载LED需要测试。如果您手动将LED连接到针脚13,请仔细检查触点是否正常以及针脚(阴极/阳极)连接方式正确我正在使用车载LED(引脚13)处理代码工作正常。在鼠标按下和释放时,它同时显示0和1。串行端口号也相同。我已在处理中打印以进行检查。但数据未发送到串行端口。:(它工作过一次。我不知道发生了什么:(@KevinWorkmanBlink程序在arduino中也运行良好。@NurImtiazulHaque很好,LED按预期工作,但奇怪的是数据没有发送到串行端口。当您通过arduino的串行监视器发送
1
0
时会发生什么?它是否按预期工作?(如果是,问题在处理端,如果不是Arduino的问题,在这种情况下,尝试使用不同的USB端口、USB电缆或完全不同的Arduino(如果端口/电缆选项没有改变任何内容))