Trazado Grafico de una señal en Processing con manejado con Arduino
(Leída desde una entrada analógica de la tarjeta Arduino y mostrada mediante Processing)
Para realizar este ejemplo bastará conectar un potenciómetro a la entrada analógica 1 PIN 1
de la tarjeta Arduino tal como se muestra en la figura.
Se carga Arduino con el siguiente programa
PROGRAMA ARDUINO
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(1));
delay(100);
}
PROGRAMA PARA PROCESSING
// Graph
// by David A. Mellis
//
// Demonstrates reading data from the Arduino board by graphing the
// values received.
//
// based on Analog In
// by <a href="http://itp.jtnimoy.com">Josh Nimoy</a>.
import processing.serial.*;
Serial port;
String buff = "";
int NEWLINE = 10;
// Store the last 64 values received so we can graph them.
int[] values = new int[64];
void setup()
{
size(512, 256);
println("Available serial ports:");
println(Serial.list());
port = new Serial(this, Serial.list()[1], 9600);
}
void draw()
{
background(53);
stroke(255);
// Graph the stored values by drawing a lines between them.
for (int i = 0; i < 63; i++)
line(i * 8, 255 - values[i], (i + 1) * 8, 255 - values[i + 1]);
while (port.available() > 0)
serialEvent(port.read());
}
void serialEvent(int serial)
{
if (serial != NEWLINE) {
buff += char(serial);
} else {
buff = buff.substring(0, buff.length()-1);
int val = Integer.parseInt(buff)/4;
// Clear the value of "buff"
buff = "";
for (int i = 0; i < 63; i++)
values[i] = values[i + 1];
// Add the received value to the array.
values[63] = val;
}
}