如何使用 Java 点亮 Arduino Mega 二极管?
How do you light up the Arduino Mega diode using Java?
我想在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。我发现了一些关于这个主题的帖子,不幸的是没有符合我的问题的具体答案。如果有任何帮助、材料或链接,我将不胜感激。
了解您需要两个程序来执行此操作。第一个类似于您的 Java 程序。但第二个是 运行Arduino 本身的程序。
这里有一个 link 应该会给你一个想法。如果 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 代码未设置波特率等通信参数,因此您需要为此更新它。我发现了几个 link 用于在 RXTX 中设置串行通信参数,所以四处看看。
祝你好运 - 乍一看似乎很多,但实际上还不错。
我想在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。我发现了一些关于这个主题的帖子,不幸的是没有符合我的问题的具体答案。如果有任何帮助、材料或链接,我将不胜感激。
了解您需要两个程序来执行此操作。第一个类似于您的 Java 程序。但第二个是 运行Arduino 本身的程序。
这里有一个 link 应该会给你一个想法。如果 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 代码未设置波特率等通信参数,因此您需要为此更新它。我发现了几个 link 用于在 RXTX 中设置串行通信参数,所以四处看看。
祝你好运 - 乍一看似乎很多,但实际上还不错。