gpt4 book ai didi

java - 使用Java从串口读取(Arduino duemilanove)

转载 作者:行者123 更新时间:2023-12-01 05:03:11 26 4
gpt4 key购买 nike

任务:在PC上的程序中显示数据。

扩展任务:(解决这个问题后)我最终会将数据保存到文件中并将程序扩展为GUI。

微 Controller :Arduino duemilanove

操作系统:Windows 7

语言:Java

编译器:Eclipse

Io方法:USB类型'B'(arduino端),USB类型A(PC端)

我在这里和其他网站上阅读了至少 30 个不同的教程/问题。我从网站上获取了示例并下载了一些库,但不断出现红线和错误。我现在已经放弃了这一切,决定谦虚地来到这里,看看是否有人愿意帮助我。

我怀疑我有点不知所措,但没关系,我很高兴学习,并被称为愚蠢!

我了解其他软件,例如“处理”,已经可以为我做到这一点。我想自己制作这个软件。

我查看了 RXTX 和 COMM API。老实说,到目前为止我所得到的只是我知道它的存在,有些东西显然已经过时了,而且似乎大多数教程都假设了各个学科的大量知识。

在写这个问题时,我还查看了这里提出的更多问题,其中大多数我以前已经见过。我挥舞着白旗!有人帮助我了解我在做什么!

我想要做的事情的代码示例。

// How would I make this class read from the arduino?

class arduinoData {

static int t = (int) 72.91; //pull from arduino instead of making it up

static int temperature(){

return t;
}


}


public class example
{
public static void main(String[] args)
{
System.out.println("temp from the sensor is: "+ arduinoData.temperature()+"F");
//output:
//temp from the sensor is: 71F
}
}

编辑:Arduino 串行监视器工作正常。我将添加 arduino 代码来解决这个问题。

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);


DeviceAddress Thermometer = { 0x28, 0x56, 0xA0, 0xA5, 0x03, 0x00, 0x00, 0x7D };

void setup(void)
{
Serial.begin(9600);
sensors.begin();
sensors.setResolution(Thermometer, 10);

pinMode(13, OUTPUT);

}


void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) { Serial.print("Error."); }
else {Serial.print(DallasTemperature::toFahrenheit(tempC));Serial.print("F");}
}


void loop(void)
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
sensors.requestTemperatures();
Serial.print("temp from sensor: ");printTemperature(Thermometer);
Serial.print("\n\r");
}

Arduino 输出:

传感器温度:70.25F

传感器温度:70.70F

传感器温度:70.70F

传感器温度:70.70F

更新:

好吧,我认为我已经通过下面提到的教程正确安装了rxtx。然而,我此时迷失了:

For Windows you can create a batch file called run.bat in the same directory as the sample code mentioned above. This batch file can be used on your system, but you may need to modify the paths to match the install locations of your Java and Arduino IDE on your system.

setlocal set PATH=%PATH%;C:\Program Files (x86)\arduino-0017\ "C:\Program Files (x86)\Java\jdk1.6.0_12\bin\javac" -cp "C:\Program Files (x86)\arduino-0017\lib\RXTXcomm.jar" SerialTest.java "C:\Program Files (x86)\Java\jdk1.6.0_12\bin\java" -cp "C:\Program Files (x86)\arduino-0017\lib\RXTXcomm.jar;." SerialTest

Basically, you will need to add the RXTXcomm.jar to your class path, and you will need to add the associated JNI interface DLL (rxtxSerial.dll) to your PATH. For other platforms, you will need to add the same JNI shared library to your run time path.

When you run the run.bat file, you should see the same results as the Arduino IDE Serial Monitor. You can use Ctrl+Break to stop the program.

我应该做什么???

最佳答案

检查您的固件是否确实使 Arduino 打印到 USB(虚拟化为串行端口):加载固件并通过“串行监视器”(右侧的镜头按钮)测试串行通信。

完成后,您知道您的问题与尝试从 COM 接口(interface)读取的 java 代码有关。如果您仍然遇到问题,那么您的问题已转移到“使用 Java 从串行端口读取”。

有关 Arduino 与 Java 接口(interface)的一般引用,我建议您阅读本教程及其说明和代码示例:http://www.arduino.cc/playground/Interfacing/Java

关于java - 使用Java从串口读取(Arduino duemilanove),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13110546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com