【问题标题】:JSSC does not blinking led light in ArduinoJSSC 在 Arduino 中不闪烁 LED 灯
【发布时间】:2016-08-13 08:15:39
【问题描述】:

我正在尝试使用 串行通信arduino 与 java 连接起来。为此,我使用了 jssc 库。但是当我运行 java 程序并发送 string "1" 时,led 不会发光,它应该会持续发光。但是,当我从 arduino 串行监视器 发送 字符串“1” 时,它会持续发光,直到我发送任何其他字符串。 我应该怎么做才能在 java 中获得与 **Arduino 串行绘图仪中相同的结果。** 这是我在 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);
  }
}
}

【问题讨论】:

    标签: java arduino serial-port arduino-uno


    【解决方案1】:

    这里有两件事:

    • LED 永远不会“闪烁”,因为您一直在阅读,但是一旦您设置了状态,就永远不会重置它,这意味着 LED 将保持亮起。发生的情况是您检查是否有可用数据,找到“1”并打开 LED。下次执行循环时,串口上将没有可用数据,因此不会发生任何事情,LED 将保持亮起。

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

    【讨论】:

    • 亲爱的 ChatterOne,我知道 LED 为高电平或 LED 为低电平只有两种状态。但是这个过程通过arduino串行监视器工作正常,它影响led并给出准确的结果但是当我通过java发送字符串时对led没有任何影响,即led在任何情况下都保持关闭。为什么?我需要一些帮助。
    【解决方案2】:

    稍微补充一下 ChatterOne 的回答,如果您使用的是普通的 Arduino IDE,您可以通过转到工具、端口并选择一个来检查端口号。 (抱歉,我没有足够的声誉来简单地评论他的回答(网站新手),但似乎有用的信息足以避免因此而跳过。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      相关资源
      最近更新 更多