Mega 2560 Serieller output als Diagramm

hiho, ich bins wieder, der nixwisser...

leb mich schritt für schritt in die welt hier ein... nun mein problem:

ich möchte messwerte die über A1 und A2 gemsssen werden als Diagramm ausgeben, dazu habe ich mir erst ein mal n code aus dem netz geholt(Graph Sketch):

void setup() {
  // initialize the serial communication:
  Serial.begin(9600);
}

void loop() {
  // send the value of analog input 0:
  Serial.println(analogRead(A0));
  // wait a bit for the analog-to-digital converter 
  // to stabilize after the last reading:
  delay(2);
}

// Processing code for this example
 
 // Graphing sketch
 
 
 // This program takes ASCII-encoded strings
 // from the serial port at 9600 baud and graphs them. It expects values in the
 // range 0 to 1023, followed by a newline, or newline and carriage return
 
 // Created 20 Apr 2005
 // Updated 18 Jan 2008
 // by Tom Igoe
 // This example code is in the public domain.
 
 import processing.serial.*;
 
 Serial myPort;        // The serial port
 int xPos = 1;         // horizontal position of the graph
 
 void setup () {
 // set the window size:
 size(400, 300);        
 
 // List all the available serial ports
 println(Serial.list());
 // I know that the first port in the serial list on my mac
 // is always my  Arduino, so I open Serial.list()[0].
 // Open whatever port is the one you're using.
 myPort = new Serial(this, Serial.list()[0], 9600);
 // don't generate a serialEvent() unless you get a newline character:
 myPort.bufferUntil('\n');
 // set inital background:
 background(0);
 }
 void draw () {
 // everything happens in the serialEvent()
 }
 
 void serialEvent (Serial myPort) {
 // get the ASCII string:
 String inString = myPort.readStringUntil('\n');
 
 if (inString != null) {
 // trim off any whitespace:
 inString = trim(inString);
 // convert to an int and map to the screen height:
 float inByte = float(inString); 
 inByte = map(inByte, 0, 1023, 0, height);
 
 // draw the line:
 stroke(127,34,255);
 line(xPos, height, xPos, height - inByte);
 
 // at the edge of the screen, go back to the beginning:
 if (xPos >= width) {
 xPos = 0;
 background(0); 
 } 
 else {
 // increment the horizontal position:
 xPos++;
 }
 }
 }

nur er meckert immer das:

AnalogReadSerial:-1: error: variable or field 'serialEvent' declared void
AnalogReadSerial:-1: error: expected `)' before 'myPort'
AnalogReadSerial:27: error: 'import' does not name a type
AnalogReadSerial:29: error: 'Serial' does not name a type
AnalogReadSerial.cpp: In function 'void setup()':
AnalogReadSerial:32: error: redefinition of 'void setup()'
AnalogReadSerial:0: error: 'void setup()' previously defined here
AnalogReadSerial:34: error: 'size' was not declared in this scope
AnalogReadSerial:37: error: 'class HardwareSerial' has no member named 'list'
AnalogReadSerial:37: error: 'println' was not declared in this scope
AnalogReadSerial:41: error: 'myPort' was not declared in this scope
AnalogReadSerial:41: error: expected type-specifier before 'Serial'
AnalogReadSerial:41: error: expected `;' before 'Serial'
AnalogReadSerial:45: error: 'background' was not declared in this scope
AnalogReadSerial.cpp: At global scope:
AnalogReadSerial:51: error: variable or field 'serialEvent' declared void
AnalogReadSerial:51: error: expected `)' before 'myPort'

ich nutze Arduino 2 (v1.0)
Mac OS X 10.6
Der Mega wird unter dev/tty.usbmodem1d11 angezeigt und ich kann ohne probleme daten aufspielen...

was mach ich falsch?
verzeiht meine dummheitsfehler wenn ihr welche entdeckt,
LG
Andi

Hi,

mal ganz vorsichtig gefragt:
dir ist schon klar, daß der Sketch den du da hast ab dem Kommentar

// Processing code for this example

für Processing ist und auf dem PC laufen soll um die Daten, die dein Arduino sendet, entgegenzunehmen und auszuwerten.

Auf den Arduino gehören nur die ersten paar Zeilen:

void setup() {
  // initialize the serial communication:
  Serial.begin(9600);
}

void loop() {
  // send the value of analog input 0:
  Serial.println(analogRead(A0));
  // wait a bit for the analog-to-digital converter 
  // to stabilize after the last reading:
  delay(2);
}

Grüßle Bernd

Sprich der code kommt NICHT auf den arduino sondern ist ein code für den rechner?

D.h. Der erste sketch gehört auf den arduino,
Der zweite teil wird auf dem pc/mac ausfegührt?

Gibt es eine möglichkeit das ohne processing direkt auszugeben?

DraycD:
Sprich der code kommt NICHT auf den arduino sondern ist ein code für den rechner?

So ist es.

DraycD:
Gibt es eine möglichkeit das ohne processing direkt auszugeben?

Sicher, Du mußt ja nur die serielle Schnittstelle auslesen. Die Frage ist aber WAS genau Du eigentlich machen willst.
Dein Arduino schickt mit dem einfachen kleinen Sketch ja nur die gemessenen Werte über die serielle Schnittstelle an den Rechner. Was Du dann damit anstellst, bleibt Dir überlassen.
Für das Zeichnen von Diagrammen wirst Du aber so oder so eine Software brauchen. Du kannst natürlich auch einfach die Daten der Seriellen Schnittstelle in eine Datei schreiben und das Ganze dann mit Excel. und Co. weiterverarbeiten.

Btw. noch eine Frage. Wenn Du davon ausgegangen bist, das der Code nur für den Arduino ist, wo wären denn dann Deiner Meinung nach die Diagramme ausgegeben worden?

Gibt es eine möglichkeit das ohne processing direkt auszugeben?

Ja, sicher :wink:

Das hängt aber sehr von deiner Lieblings-Programmierumgebung auf dem PC ab.
Wenn du keine andere Vorlieben hast, ist Processing und Java vielleicht ein lehrreicher Einstieg?

lxardoscope ist ein "high end" projekt, soviel ich weiß in einer Linux-Umgebung.

Danke :wink:

Klappt im moment gut :wink: