JSSC不闪烁Arduino中的led灯

JSSC不闪烁Arduino中的led灯

问题描述:

我正尝试连接arduino与java通过使用串行通信。为了这个目的,我使用了一个jssc库。但是,当我运行Java程序并发送字符串“1”然后led不发光,它应该不断发光。但是当我发送字符串“1”arduino串行监视器它会不断发光,直到我发送任何其他字符串。 我该怎么做才能在java中获得与在Arduino串行绘图仪中相同的结果。** 这里是我在Java代码NetbeansJSSC不闪烁Arduino中的led灯

package javajssctest; 

import jssc.SerialPort; 
import jssc.SerialPortException; 

/** 
* 
* @author Abdullah Sajid 
*/ 
public class JavaJSSCTest { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     SerialPort serialport = new SerialPort("COM4"); 
     try{ 
      serialport.openPort(); 
      serialport.setParams(9600, 8, 1, 0); 
      serialport.writeString("1"); 
      serialport.closePort(); 

     } 
     catch(SerialPortException ex){ 
      System.err.println(ex); 
     } 
    } 

} 

这是我的arduino代码。这里

String input; 
void setup() { 
pinMode(13,OUTPUT); 
Serial.begin(9600); 
} 

void loop() { 
if(Serial.available()>0){ 
    input = (char)Serial.read(); 
    if(input=="1"){ 
    digitalWrite(13,HIGH); 
    } 
    else{ 
    digitalWrite(13,LOW); 
    } 
} 
} 

两件事情:

  • 的领导绝不会“闪烁”,因为你继续读,但一旦你设定的状态,你永远不会重置,这意味着LED将保持上。会发生什么是您检查是否有可用的数据,您发现一个“1”,并打开LED。下一次循环执行时,串口上将没有数据可用,因此不会发生任何事情,并且LED将保持点亮。

  • 您应该确保Arduino正确接收数据,因此请检查串口是否实际上是COM4。另外,也许你应该使用write而不是writestring。例如,检查this page

+0

亲爱的ChatterOne,我知道只有两个说明led是高电平还是低电平。但是,这个过程通过arduino串行监视器正常工作,并且它的效果导致并给出了准确的结果,但是当我通过java发送字符串时,对于led没有任何影响,即在任何情况下都保持关闭状态。为什么?我需要一些帮助。 –

Arduino IDE menu to see the port being used.

添加到ChatterOne的答案咯,如果你使用普通的Arduino IDE,您可以通过工具,港口,并选择一个检查端口号。 (道歉,我没有足够的声望,只是在他的答案(新的网站)上评论这一点,但似乎有用的信息,以避免跳过这一点。)