Java + Arduino

Pessoal sou iniciante no arduino e estou querendo desenvolver minhas habilidades, estou tentando criar um programa em java que acende ou desliga o led, mas meu problema acho que esta sendo com o java, pois consigo fazer com que o java receba algo do arduino, mas não consigo fazer o java controlar o arduino.
Desde já obrigado pela atenção de vocês!

Nunca tentei comunicar com o arduino usando java, mas sei q com python e php é moleza.

por exemplo, este códido abaixo é tudo q vc precisaria em python para ler o que um arduino uno imprime na porta serial.

import os
import serial

while True:
ser = serial.Serial('/dev/ttyACM0', 9600)
print ser.readline()

E pretendes que te ajudemos como?

Tens um problema, dizes que não sabes uma das partes do que pode ser o problema, mas assumes que o que está errado é na outra.

E se colocásses o código aqui? E dizeres o que já tentaste para perceber qual é o problema??
Já testaste o programa do arduino só com o terminal?

aurinojr, esqueça por um segundo a parte java.

Como pretende se comunicar com o Arduino para comandar o LED? Serial RS232, Serial USB, Ethernet, wi-fi, bluetooth?

Se for via serial, você consegue fazer o led acender e apagar por comandos no serial monitor?
Se não conseguir, primeiro tem de resolver a parte do arduíno.
Depois que conseguir fazer isso no arduíno, aí sim você se preocupa em desenvolver uma interface java para o computador.

Poste para nós os seus códigos para que possamos te ajudar.

MKazan de inicio é isso mesmo, comunicação pela porta serial, e sim já consigo acender e apagar o led pelo serial monitor, só tou errando na hora de comunicar o java com o arduino, consegui um codigo na net e já estou conseguindo abrir a conexão só não consigo enviar nada pra ele, esse é meu problema.
Vlw!

Bom, então a solução já está bem encaminhada.

Mas se não puser o código aí, ninguém vai conseguir te ajudar.
Nossa tecnologia de bola de cristal ainda não está operacional... hehehe

uahushuahsuahs
blz!
tou te adicionando no msn pra conversar melhor, mas mesmo assim vou postar o codigo aqui!

ta aew.

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier; 
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent; 
import gnu.io.SerialPortEventListener; 
import java.util.Enumeration;

public class SerialTest implements SerialPortEventListener {
	SerialPort serialPort;
        /** The port we're normally going to use. */
	private static final String PORT_NAMES[] = {
			"/dev/tty.usbserial-A9007UX1", // Mac OS X
			"/dev/ttyUSB0", // Linux
			"COM4", // Windows
			};
	/** Buffered input stream from the port */
	private InputStream input;
	/** The output stream to the port */
	private OutputStream output;
	/** Milliseconds to block while waiting for port open */
	private static final int TIME_OUT = 2000;
	/** Default bits per second for COM port. */
	private static final int DATA_RATE = 9600;

	public void initialize() {
		CommPortIdentifier portId = null;
		Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();

		// iterate through, looking for the port
		while (portEnum.hasMoreElements()) {
			CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
			for (String portName : PORT_NAMES) {
				if (currPortId.getName().equals(portName)) {
					portId = currPortId;
					break;
				}
			}
		}

		if (portId == null) {
			System.out.println("Could not find COM port.");
			return;
		}

		try {
			// open serial port, and use class name for the appName.
			serialPort = (SerialPort) portId.open(this.getClass().getName(),
					TIME_OUT);

			// set port parameters
			serialPort.setSerialPortParams(DATA_RATE,
					SerialPort.DATABITS_8,
					SerialPort.STOPBITS_1,
					SerialPort.PARITY_NONE);

			// open the streams
			input = serialPort.getInputStream();
			output = serialPort.getOutputStream();

			// add event listeners
			serialPort.addEventListener(this);
			serialPort.notifyOnDataAvailable(true);
		} catch (Exception e) {
			System.err.println(e.toString());
		}
	}

	/**
	 * This should be called when you stop using the port.
	 * This will prevent port locking on platforms like Linux.
	 */
	public synchronized void close() {
		if (serialPort != null) {
			serialPort.removeEventListener();
			serialPort.close();
		}
	}

	/**
	 * Handle an event on the serial port. Read the data and print it.
	 */
	public synchronized void serialEvent(SerialPortEvent oEvent) {
		try {
			int cmd = 1;
			output.write(cmd);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		/*if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
			try {
				int available = input.available();
				byte chunk[] = new byte[available];
				input.read(chunk, 0, available);
				

				// Displayed results are codepage dependent
				System.out.print(new String(chunk));
			} catch (Exception e) {
				System.err.println(e.toString());
			}
		}*/
		// Ignore all the other eventTypes, but you should consider the other ones.
	}

	public static void main(String[] args) throws Exception {
		SerialTest main = new SerialTest();
		main.initialize();
		System.out.println("Started");
		
	}
}

manda teu msn por mensagem!

Desculpa a questão estúpida... mas nesse código java só vejo uma instrução de envio para o Arduino. E é sempre constante:

int cmd = 1;
output.write(cmd);

Pretendes fazer isto? E o teu programa do Arduino está preparado para receber algo que não sejam os comandos de ligar e desligar?

Onde estão as instruções para enviares comandos para o Arduino?

Fiz uma pesquisa mais aprofundada e consegui fazer a comunicação!!
Mas vlw por me ajudar.

Posta o codigo pra gente ver e aprender.

valeu!