Multiple arduino inputs

also check out
https://processing.org/reference/libraries/serial/serialEvent_.html

Example
import processing.serial.*;

Serial myPort; 
String data;                                          // latest arduino line
// rev 
int[] datos;                                          // as array of integers
StringList list;                                      // stored lines
int listlong = 18;                                    // many

int w= 640, h = 360;                                  // canvas settings

void setup_serial() {                                 // USB arduino..
  printArray(Serial.list());
  String portName = Serial.list()[1];                 // adjust 0.. x port
  myPort = new Serial(this, portName, 9600);
  myPort.clear();
  myPort.bufferUntil('\n');
  println("try connect to "+portName);
}

void serialEvent(Serial p) {                          // handle serial data
  data = trim(p.readStringUntil('\n'));
  if (data != null) {
    println(data);                                  // print every GOOD line
    datos = int( split(data, ",") );                  // create int array (unused example )
    list.append( data );                              // OR store line as String list
    if ( list.size() >= listlong ) list.remove(0);    // erase the oldest? // for ( int i = 0; i<list.size(); i++ ) print(i+"_"+ list.get(i) ); println();
  }
}

void settings() {
  size(w, h);
}

void setup() {
  list = new StringList();
  setup_serial();
}

void draw() {
  background(0, 0, 80);
  for ( int i = 0; i<list.size(); i++ ) text( list.get(i), 10, 20+i*20 );      // running list of arduino lines
}


2 Likes