No puedo conectar Processing con Arduino (solucionado)

Hola, estoy haciendo mis primeras pruebas y no logro que se conecte el Processing al puerto.

Primero salia una advertencia, pero instale la libreria y sigue sin conectarse

Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version   = RXTX-2.1-7
[0] "COM2"
[1] "COM3"
[2] "COM4"
[3] "COM5"
processing.serial.Serial@1d33a6b

Si conecto el terminal el Arduino, envia los datos sin problema, y el TX enciende.
Con processing no conecta y no enciende.

Saludos
Cesar

Adjunto codigos

pa_LDR.rar (13.5 KB)

Mira que hayas seleccionado bien el puerto serie en processing, 99% de probabilidades de que sea eso.

Hola chiva, gracias por responder. Seguramente es así, eh tomado un ejemplo y no logro dar con el problema.

Antes habia leido que se necesitaba el serproxy.exe, no se si es necesario en estas versiones
pero lo baje y nada.
Dentro del codigo segun entiendo busca el puerto, si es asi me podrias decir donde esta mi error.
En mi caso uso el COM3, con el Arduino conectado me aparece en la lista del Processing.

// importing the processing serial class
import processing.serial.*;

// the display item draws background and grid
DisplayItems di;

// definition of window size and framerate
int xWidth = 512;
int yHeight = 512;
int fr = 24;

// attributes of the display 
boolean bck = true;
boolean grid = true;
boolean g_vert = true;
boolean g_horiz = true;
boolean g_values = false;
boolean output = false;

// variables for serial connection, portname and baudrate have to be set 
Serial port;
String portname = "COM3"; 
int baudrate = 9600;
int value = 0; 
String buf=""; 
int value1 = 0;  

// variables to draw graphics
int x, y, cursorSize;
int cnt = 6; 

// lets user control DisplayItems properties and value output in console
void keyPressed() {
  if (key == 'b' || key == 'B') bck=!bck;  // background black/white
  if (key == 'g' || key == 'G') grid=!grid;  // grid ON/OFF 
  if (key == 'v' || key == 'V') g_values=!g_values;  // grid values ON/IFF   
  if (key == 'o' || key == 'O') output=!output;   //turns value output ON/OFF
}

void setup() {
  // Print the a list of available Serial Ports
  println(Serial.list());
  // Set the Serial port from the listin [] field
  portname = Serial.list()[0];
  // set size and framerate
  size(xWidth, yHeight); 
  frameRate(fr);
  // establish serial port connection      
  port = new Serial(this, portname, baudrate);
  println(port);
  // create DisplayItems object
  di = new DisplayItems();
  ellipseMode(CENTER);
  smooth();
}

void drawLDRState() {
  cnt++; 
  if(cnt>24)  cnt = 6; 
  strokeWeight(2);
  stroke(0);
  noFill();
  x = width/2;
  y = height/2;

  cursorSize = 5 + cnt*(value1/50);

  ellipse(x, y, cursorSize, cursorSize); 
  stroke(255,0,0);
  ellipse(x, y, cursorSize-14, cursorSize-14); 
  stroke(0,255,0);
  ellipse(x, y, cursorSize-8, cursorSize-8); 
  stroke(0,0,255);
  ellipse(x, y, cursorSize-20, cursorSize-20); 
  stroke(255);
  ellipse(x, y, cursorSize, cursorSize);
}
void serialEvent(int serial) {
  // if serial event is not a line break 
  if(serial!=10) {        
    // add event to buffer
    buf += char(serial);
  } 
  else {
    // if serial is line break set value1 to buff and clear it
    value1 = 1023 - int(buf); // we inverse the value by subtracting it from the maximum
    buf="";
  }
  if(output) println("LDR: "+value1);
}

// draw listens to serial port, draw 
void draw() {
  // listen to serial port and trigger serial event  
  while(port.available() > 0) {
    value = port.read();
    serialEvent(value);

  }
  // draw background, then PushButtonState and finally rest of DisplayItems   
  di.drawBack();
  drawLDRState();
  di.drawItems();
}

Saludos
Cesar

elimina o comenta esta linea en setup

// portname = Serial.list()[0];

con esto te deberia funcionar

un saludo

Según tenías el código te estabas conectando por el COM2, si haces lo que te dice SrDonGato debería conectarse por el COM3

SrDonGato: elimina o comenta esta linea en setup

// portname = Serial.list()[0];

con esto te deberia funcionar

un saludo

Gracias, ahora la comunicación es correcta.

chiva: Según tenías el código te estabas conectando por el COM2, si haces lo que te dice SrDonGato debería conectarse por el COM3

Deje el código original y modifique el puerto del Arduino a COM2 y funciona la comunicación.

Tenia un error en el final del código ap_ReadAnalog del Arduino, no realizaba ningun cambio en Processing. Cambie Serial.print x Serial.write y funciona todo ok. XD

// and a signal that serves as seperator between two values 
  //printByte(10);
Serial.write(10);  // antes tenia Serial.print(10);
// wait for a bit to not overload the port
  delay(10);   
}

Aqui varios ejemplos Saludos y gracias. Cesar