Verfasst am: 24.04.2015, 13:43
Titel: Serial Communication Problem Arduino->PC
Hallo, ich habe ein Problem bei der seriellen Kommunikation.
Anwendung:
4x CW-Sensor->12Bit-ADC->Arduino Nano->PC(Matlab)
4Sensoren liefern analoge Werte.Diese werden mit dem ADC diskretisiert und an den Arduino per spi gegeben.Der Arduino gibt die Werte per serielle Verbindung aus.
Die per serieller Schnittstelle vom Arduino ausgegebenen 12Bit-Werte von den Sensoren erscheinen plausibel. Die Werte werden per Dauerschleife vom Arduino versandt und liegen bei ca. dezimal 2200.So weit so gut.
Werte zu beliebiger Zeit im Serial Monitor vom Arduino:
2155
2466
2278
2182
2562
2185
2470
2340
1994
Problem:
In Matlab stimmen die Werte jedoch nicht. Ausgabe:
50
51
51
56
13
10
50
51
49
53
dass die Werte generell nicht stimmen ist dadurch zu erklären,dass ich mit 8 Bits arbeite und noch geshiftet werden müsste. Aber auch mit shiften macht es für mich keinen Sinn, weil die Werte zu niedrig wären.
verwendeter ML-Code:
Code:
%Serial Port Einstellungen in Linux,Arduino Code,ML Code identisch
s=serial('/dev/ttyS101');
set(s,'BaudRate',38400);
set(s,'DataBits', 8);
set(s,'StopBits', 1);
set(s,'Parity','none');
set(s,'FlowControl','software');
fopen(s);
A = fread(s,10,'uint8') fclose(s) delete(s) clear s
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.