我正在尝试控制4个LED,并从4个触点获得模拟输入。程序是用java编写的,所以为了访问arduino的函数,比如AnalogRead(),并将发光二极管设置为高或低,导入处理库会让程序使用这些函数吗?
我还想知道,如果程序,将被转移到arduino本身,或java程序将只是从引脚中拉出数据?
发布于 2010-04-26 16:44:22
更新:我的建议是首先尝试将Arduino与您自己的Processing进行通信。这就是我在下面所描述的。如果您想直接使用处理直接控制Arduino,Binary Nerd提供的链接是您入门的最佳选择。
更新2:也尝试此链接:Netbeans and Processing
Arduino代码在Arduino上运行,处理代码在您的计算机上运行。如果你想通过处理来控制你的Arduino,你很可能会使用串口,并创建两个程序。其中一个,在Arduino上,可能会接收命令并执行操作(打开或关闭LED),或者发回答案。另一个,在处理中,可能会向Arduino发送必要的命令,并以某种方式处理它的应答。
下面是我为一个LED和一个模拟输入所做的一个快速示例。这是未经测试的代码。按照以下步骤操作。一旦成功,您可以尝试在Netbeans中直接对Arduino使用Processing。
步骤1. Arduino
Arduino board.
步骤2.处理的
< code >G231
Arduino代码:
int ledPin = 13;
int analogPin = 0;
char c = 0;
void setup()
{
pinMode( ledPin, OUTPUT );
Serial.begin( 9600 );
}
void loop()
{
// Wait for a character to arrive at the serial port.
if( Serial.available() > 0 )
{
// Read one byte (character).
c = Serial.read();
switch( c )
{
case '1':
// Turn LED on.
digitalWrite( ledPin, HIGH );
break;
case '0':
// Turn LED off.
digitalWrite( ledPin, LOW );
break;
case 'q':
case 'Q':
// Send the reading from the analog pin throught the serial port.
Serial.println( analogRead( analogPin ) );
break;
}
}
}处理代码(在您的计算机上运行)。
import processing.serial.*;
Serial serial;
String str;
void setup()
{
size(400, 400);
serial = new Serial(this, "COM1", 9600); // Use the serial port connected
// to your Arduino.
while( true )
{
serial.write( '1' ); // Turn LED on.
delay( 1000 ); // Wait one second
serial.write( '0' ); // Turn LED off.
delay( 1000 );
serial.write( 'Q' ); // Get analog reading
serial.bufferUntil( 10 ); // Wait for the data from the Arduino.
// This captures characters until a newline
// is received, the runs serialEvent()...
}
}
void draw()
{
background(0);
}
void serialEvent(Serial s)
{
println( s.readString() );
}发布于 2010-04-26 08:40:49
使用处理库的想法是将标准固件程序上传到arduino,然后使用串行通信通过java和processing访问arduino函数。
这篇文章应该能让你上手:Arduino and Processing
因此,在Java程序中,您可以从输入读取模拟值,并根据该读数更改输出引脚上的值。
https://stackoverflow.com/questions/2709792
复制相似问题