Strukt seriell senden

Ich lese 4 adc werte in einen struckt ein und will ihn dan seriell versenden. bekomm leider einen fehler und kann damit nix anfangen. bin halt noch recht neu in der materie.

/*
  AnalogReadSerial
*/

struct Signal {
  byte Ch1;
  byte Ch2;
  byte Ch3;
  byte Ch4;
};


// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {

  Signal data;
  data.Ch1 = map( analogRead(A0), 0, 1023, 0, 255);
  data.Ch2 = map( analogRead(A2), 0, 1023, 0, 255);
  data.Ch3 = map( analogRead(A4), 0, 1023, 0, 255);
  data.Ch4 = map( analogRead(A6), 0, 1023, 0, 255);


  Serial.println((byte*)&Signal, sizeof(data));

  delay(1000);
}

als fehler kommt immer

C:\Users\lea\Documents\Arduino\testsender\testsender.ino: In function 'void loop()':
testsender:36:31: error: expected primary-expression before ',' token
Serial.println((byte*)&Signal, sizeof(data));
^
exit status 1
expected primary-expression before ',' token

wo liegt mein fehler?

Serial Doku nicht gelesen.

Serial.println() kann nicht sowas senden!
Serial.write() kann das

Danke,

mit serial.wirte bekomm ich den selben fehler

Serial.write, und nicht serial.wirte

Serial.write((byte*)&data, sizeof(data));

Mein Tipp:
Mehr Sorgfalt und Disziplin!
Viel mehr.

Der Fehler ist im unsinnigen &Signal : Signal ist dein Datentyp, keine Variable.

Wobei allerdings die Ausgabe von Binärdaten evtl. nicht das ist, was du willst, da diese z.B. im SerialMonitor nicht lesbar sind.

Der Messbereich 0 .. 1023 wird übrigens besser auf 0 .. 255 abgebildet, wenn du
map( analogRead(A0), 0, 1024 0, 256) verwendest, durch 4 teilst, oder >>2 machst.
So wird z.B. eine 1022 bereits auf 255 gerundet