我正在尝试使用串行通信连接 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);
}
}
}
答案 0 :(得分:0)
这里有两件事:
led永远不会#34;闪烁",因为你继续阅读,但是一旦你设置状态,你永远不会重置它,这意味着LED将保持开启状态。会发生什么事情,你检查是否有可用的数据,你发现" 1"然后你打开LED。下次执行循环时,串口上没有可用的数据,因此不会发生任何事情,LED将继续运行。
您应确保Arduino正确接收数据,因此请检查串行端口是否为COM4
。此外,也许您应该使用write
而不是writestring
。例如,请检查this page。
答案 1 :(得分:0)