Go Down

Topic: Comunicación Processing - Arduino (Read 704 times) previous topic - next topic

juanjogc

Oct 11, 2012, 10:30 am Last Edit: Oct 11, 2012, 12:30 pm by juanjogc Reason: 1
Antes de todo dar las gracias a todos por la comunidad tan buena que han creado.

He buscado durante un par de días, pero no entiendo cual puede ser el error.
No creo que haga falta ni siquiera explicar el código.
Cuando hago lo mismo desde un script en Ruby, en vez de Processing, funciona perfectamente, por lo que entiendo que el error está en el código de Processing.
Lo que me ocurre cuando lo ejecuto es que se escribe en el monitor Serial, 6, 5 y saltos de líneas al azar.

Muchas gracias de ante mano!

Este es el código de Arduino:
Code: [Select]

void setup() {
 Serial.begin(9600);
}

void loop() {
 if (Serial.available() > 0) {
   Serial.println(Serial.read());
 }
}


Este es el código de Processing:
Code: [Select]

import processing.serial.*;

Serial port;

void setup() {
 port = new Serial(this, Serial.list()[0], 9600);
 size(400, 50);
}

void draw() {
 port.write(65);
 delay(500);
}

Omnimusha

el problema es que usted envia el nemero 65, pero arduino lo interpreta como carcteres '6' '5'.
prueba esto
           
         
             
   
Code: [Select]
String readString="";
float n=10.3;


void setup() {
Serial.begin(9600);

  }

void loop() {
             int index=0;
  while (Serial.available()) {
 
    delay(10);
    if (Serial.available() >0 ) {
  char c = Serial.read();  //gets one byte from serial buffer
  readString += c;
                     index++; //makes the string readString
                   

             }
  }

if (index >0) {   
           
char carray[readString.length()+1];
       
//readString.toCharArray(carray, sizeof(carray));
         readString.toCharArray(carray, sizeof(carray));
       
n = atof(carray);
         

        Serial.println(n );

readString="";
       
}
           
         
             
   }

Go Up