JSSC没有在Arduino中闪烁灯光

时间:2016-08-13 08:15:40

标签: java arduino serial-port arduino-uno

我正在尝试使用串行通信连接 arduino和java 。我为此目的使用了 jssc 库。但是当我运行java程序并发送字符串“1”时,led不会发光,它应该不断发光。但是当我从 arduino串口监视器发送字符串“1”时,它会持续发光,直到我发送任何其他字符串。 我应该怎样做才能在java中获得与** Arduino Serial plotter 相同的结果。** 这是我在 Netbeans 中的Java代码。

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);
  }
}
}

2 个答案:

答案 0 :(得分:0)

这里有两件事:

  • led永远不会#34;闪烁",因为你继续阅读,但是一旦你设置状态,你永远不会重置它,这意味着LED将保持开启状态。会发生什么事情,你检查是否有可用的数据,你发现" 1"然后你打开LED。下次执行循环时,串口上没有可用的数据,因此不会发生任何事情,LED将继续运行。

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

答案 1 :(得分:0)

Arduino IDE menu to see the port being used.

稍微添加ChatterOne的答案,如果您使用的是普通的Arduino IDE,您可以通过转到Tools,Port并选择一个来检查端口号。 (道歉,我没有足够的声誉来简单地在他的答案上评论这个(网站的新内容),但似乎有用的信息,以避免因此而跳过。)