1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-11 22:24:13 +01:00
Arduino/build/shared/dist/examples/Communication/Graph/Graph.pde
2007-04-23 15:43:12 +00:00

106 lines
2.7 KiB
Plaintext

/*
* Graph
*
* A simple example of communication from the Arduino board to the computer:
* the value of analog input 0 is printed. We call this "serial"
* communication because the connection appears to both the Arduino and the
* computer as an old-fashioned serial port, even though it may actually use
* a USB cable.
*
* You can use the Arduino serial monitor to view the sent data, or it can
* be read by Processing, Flash, PD, Max/MSP, etc. The Processing code
* below graphs the data received so you can see the value of the analog
* input changing over time.
*
* http://www.arduino.cc/en/Tutorial/Graph
*/
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(0));
delay(100);
}
/* Processing code for this example
// Graph
// by David A. Mellis
//
// 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());
// Uses the first port in this list (number 0). Change this to
// select the port corresponding to your Arduino board. The last
// parameter (e.g. 9600) is the speed of the communication. It
// has to correspond to the value passed to Serial.begin() in your
// Arduino sketch.
port = new Serial(this, Serial.list()[0], 9600);
// If you know the name of the port used by the Arduino board, you
// can specify it directly like this.
//port = new Serial(this, "COM1", 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) {
// Store all the characters on the line.
buff += char(serial);
} else {
// The end of each line is marked by two characters, a carriage
// return and a newline. We're here because we've gotten a newline,
// but we still need to strip off the carriage return.
buff = buff.substring(0, buff.length()-1);
// Parse the String into an integer. We divide by 4 because
// analog inputs go from 0 to 1023 while colors in Processing
// only go from 0 to 255.
int val = Integer.parseInt(buff)/4;
// Clear the value of "buff"
buff = "";
// Shift over the existing values to make room for the new one.
for (int i = 0; i < 63; i++)
values[i] = values[i + 1];
// Add the received value to the array.
values[63] = val;
}
}
*/