我正在寻找一个LED http://en.wikipedia.org/wiki/Light-emitting_diode用Java程序打开和关闭。我用 C# 完成了这个项目大约 5 分钟,但用 Java 似乎更具挑战性。我让 Arduino 等待 1 或 0 被写入COM port http://en.wikipedia.org/wiki/COM_%28hardware_interface%29并会据此更改 LED。我在 Arduino 上使用的代码如下。
int LedPin = 13;
char data;
void setup()
{
Serial.begin(9600);
pinMode( LedPin , OUTPUT );
}
void loop()
{
data = Serial.read();
if (Serial.available() > 0)
{
if(data == '1' )
{
digitalWrite(LedPin,HIGH);
}
else if(data == '0' )
{
digitalWrite(LedPin,LOW);
}
}
else
if (Serial.available()<0)
{
digitalWrite(LedPin,HIGH);
delay(500);
digitalWrite(LedPin,LOW);
delay(500);
}
}
我该如何使用 Java 应用程序来做到这一点?
您可以使用 JArduino (Java-Arduino) 库,它提供了一个 Java API 来控制您的 Arduino,使用串行端口(使用 USB 电缆,或从软件角度来看表现为串行端口的无线设备)、UDP(通过以太网)盾)。所有与 Java 和 Arduino 之间的通信相关的代码都由该库内部管理。
这是一个使 LED 闪烁的 Java 示例 https://github.com/SINTEF-9012/JArduino/blob/master/jarduino.samples/src/main/java/org/sintef/jarduino/examples/basic/Blink.java:
public class Blink extends JArduino {
public Blink(String port) {
super(port);
}
@Override
protected void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(DigitalPin.PIN_12, PinMode.OUTPUT);
}
@Override
protected void loop() {
// set the LED on
digitalWrite(DigitalPin.PIN_12, DigitalState.HIGH);
delay(1000); // wait for a second
// set the LED off
digitalWrite(DigitalPin.PIN_12, DigitalState.LOW);
delay(1000); // wait for a second
}
public static void main(String[] args) {
String serialPort;
if (args.length == 1) {
serialPort = args[0];
} else {
serialPort = Serial4JArduino.selectSerialPort();
}
JArduino arduino = new Blink(serialPort);
arduino.runArduinoProcess();
}
}
JArduino 可在以下位置获取:JArduino https://github.com/SINTEF-9012/JArduino
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)