Update 19.05.17
Hallo Zusammen,
ich versuche seit Tagen etwas vernünftiges aus meinem Touchsensor raus zu bekommen, ich bin aber schlicht doof dafür.
Die Daten passen einfach nicht zu dem was ich eigentlich erwarte, könnt ihr euch das mal bitte ansehen?
Aufbau ist einfach:
An meinen Raspberry ist mein Arduino angeschlossen der die aufbereiteten (Zyx100 Chip von Zytronics) Signale vom Touch Sensor empfängt.
Das ist was ich erwarte:
0000000: 02 0b 68 3f 07 fe 07 9d 09 00 df ad 03 ..h?.........
000000d: 02 0b 68 3f 07 fe 07 9d 09 00 df ad 03 ..h?.........
000001a: 02 0b 68 3f 07 fe 07 9d 09 00 df ad 03 ..h?.........
0000027: 02 0b 68 3f 07 fe 07 9d 09 00 df ad 03 ..h?.........
0000034: 02 0b 68 3f 07 fe 07 9d 09 00 df ad 03 ..h?.........
0000041: 02 0b 68 3f 07 fe 07 9d 09 00 df ad 03 ..h?.........
000004e: 02 0b 68 3f 07 fe 07 9d 09 00 df ad 03 ..h?.........
000005b: 02 0b 68 3f 07 fe 07 9d 09 00 df ad 03 ..h?.........
0000068: 02 0b 68 3f 07 15 08 8c 09 00 91 da 03 ..h?.........
0000075: 02 0b 68 3f 07 17 08 8a 09 00 b2 2c 03 ..h?.......,.
0000082: 02 0b 68 3f 07 1a 08 88 09 00 a8 63 03 ..h?.......c.
000008f: 02 0b 68 3f 07 1d 08 86 09 00 7d 1f 03 ..h?......}..
000009c: 02 0b 68 3f 07 20 08 83 09 00 19 d9 03 ..h?. .......
wobei mich nur der HEX Code in der interessiert.
Mein Code sieht im Moment so aus:
#include <SoftwareSerial.h> // befehle anpassen...
SoftwareSerial myserial(10, 11);
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(115200);
myserial.begin(115200); // opens serial port, sets data rate to 9600 bps
}
void loop() {
char buffer [26];
int i;
//
//
// send data only when you receive data:
if (myserial.available() > 10) {
for (i = 0; i < 11; i = i + 1) {
//Serial.println(buffer[i]);
// read the incoming byte:
incomingByte = myserial.read();
// delay (1);
// sprintf(&buffer[i*2],"%x",incomingByte);
// buffer[i] = incomingByte;
Serial.print(incomingByte, HEX);
Serial.print(" ");
}
// itoa (incomingByte,buffer,16);
//Serial.println(buffer);
// say what you got:
// Serial.print("I received: ");
// Serial.print(incomingByte, HEX);
Serial.println("");
}
}
Das Ergebnis macht zwar einen guten Eindruck die Werte sind aber nicht die die ich erwarte und sie sind auch nicht richtig stabil die Anzahl Bytes variiert (was sie nicht tun sollte):
5F EF 4 F9 43 8F B5 FF 87 40 0
5F EF 4 78 43 8F B5 FF 87 40 0
5F EF 4 78 8B D7 EE BB 80 1F 0
5F EF 4 F9 A3 87 BB C3 2B 0 5F
EF 4 F9 69 91 BB 35 AA 1F 0 5F
EF 8 F9 9B 57 D5 FF B7 F1 0 0
5F EF 4 78 8E 77 D9 FF 93 CA 0
5F EF 4 78 91 B7 AB FF A6 93 0
5F EF 4 78 95 D7 AB FF A9 C9 0
5F EF 4 F9 48 CF 6B FF A9 20 0
5F EF 4 F9 8B 17 F5 C5 AA 1F 0
5F EF 4 F9 8E F7 F7 FB 91 0 5F
EF 4 F9 A4 FB BB 8F 25 0 5F EF
4 F9 94 17 B8 FF B0 94 0 5F EF
4 F9 6B 5 F7 74 8E 1F 0 5F EF
4 F9 4E 2F 78 FF 9D 97 0 5F EF
4 F9 A2 97 B8 FF B3 24 0 5F EF
4 F9 50 EF 78 FF 2F F2 0 0 5F
EF 4 F9 AF 17 B8 FF 88 91 0 5F
Wenn ich das gleiche Programm über den PC laufen lasse, bekomme ich ähnliche Werte, aber die hier konstanten Werte ist nicht die selben.
Vermutlich ist das Thema nicht so kompliziert, für mich ist das allerdings alles sehr neu.
Vielen Dank im Voraus