你如何使用Java点亮Arduino Mega二极管?

时间:2017-12-28 16:38:46

标签: java netbeans arduino rxtx diode

我想用Java编写一个GUI,其中会有一个按钮。按下按钮将点亮连接到Arduino的二极管。我使用的是RXTXcomm.jar库。

现在,我编写了显示COM21端口的代码,因为这是我的Arduino如何连接并打开它。这是代码:

private String name;
private String portName;
private CommPortIdentifier portIdentifier = null;
private boolean staPort;
private void getPorts () throws PortInUseException {
    List <String> list = new ArrayList ();
    CommPortIdentifier serialPortId;
    Enumeration enumComm;
    enumComm = CommPortIdentifier.getPortIdentifiers ();
    while (enumComm.hasMoreElements ()) {
        serialPortId = (CommPortIdentifier) ​​enumComm.nextElement ();
        name = serialPortId.getName ();
        if ("COM21" .equals (name)) {
            if (serialPortId.isCurrentlyOwned ()) {
                System.out.println ("Port is open");
            } Else {
                serialPortId.open (name, WIDTH);
            }
        } else {
            System.out.println ("error");
        }
    }
}

我想问一下现在如何点燃连接到pin1的二极管?使用什么方法?我用的是Arduino Mega。我发现了一些关于这个主题的帖子,遗憾的是没有符合我问题的具体答案。我将不胜感激任何帮助,材料或链接。

1 个答案:

答案 0 :(得分:1)

了解您需要两个程序才能执行此操作。第一个类似于您的Java程序。但第二个是在Arduino上运行的程序。

这是一个应该给你一个想法的link。如果链接过时,代码将在下面重复:

int led = 13; // Pin 13

void setup()
{
    pinMode(led, OUTPUT); // Set pin 13 as digital out

    // Start up serial connection
    Serial.begin(9600); // baud rate
    Serial.flush();
}

void loop()
{
    String input = "";

    // Read any serial input
    while (Serial.available() > 0)
    {
        input += (char) Serial.read(); // Read in one char at a time
        delay(5); // Delay for 5 ms so the next char has time to be received
    }

    if (input == "on")
    {
        digitalWrite(led, HIGH); // on
    }
    else if (input == "off")
    {
        digitalWrite(led, LOW); // off
    }
}

这是需要在Arduino上运行的C代码。在这种情况下,正如您所看到的,它正在使用引脚13.您需要获得Arduino开发环境设置才能使该部分正常工作。有关如何设置Arduino IDE的信息,请参阅Arduino Software页面。这将与您的Netbeans IDE不同,但概念类似。

将草图上传到Arduino后,您将以9600波特连接到它,如Arduino代码所示。您的Java代码没有设置波特率等通信参数,因此您需要为此更新它。我找到了几个用于在RXTX中设置串行通信参数的链接,所以请浏览一下。

祝你好运 - 一开始似乎很多,但实际上并不是太糟糕。