Hallo Community, ich bin noch Arduino Neuling und versuche gerade 2 Sketches zusammenzufügen. Leider scheiter ich hierbei. Und zwar soll im Seriellen Monitor die GPS und Beschleunigungsdaten angezeigt werden. (kompletter Sketch von sketch_GPS, sketch_Beschleunigungssensor und der Zusammenfassung im Anhang enthalten) Bauteile: -Arduion Uno R3 -Beschleunigungssensor: Adafruit ADXL345 -GPS: Adafruit Ultimate GPS Logger Shield Ausschnitt von Void Loop: void loop() { /* Get a new sensor event */ sensors_event_t event; accel.getEvent(&event); if (! usingInterrupt) { // read data from the GPS in the 'main loop' char c = GPS.read(); // if you want to debug, this is a good time to do it! if (GPSECHO) if (c) Serial.print(c); /* Display the results (acceleration is measured in m/s^2) */ Serial.print(event.acceleration.x); Serial.print("; "); Serial.print(event.acceleration.y); Serial.print("; "); Serial.print(event.acceleration.z); Serial.print("; ");Serial.println(" "); delay(1000); } if (GPS.newNMEAreceived()) { char *stringptr = GPS.lastNMEA(); if (!GPS.parse(stringptr)) // this also sets the newNMEAreceived() flag to false return; // we can fail to parse a sentence in which case we should just wait for another Serial.println("OK"); if (LOG_FIXONLY && !GPS.fix) { Serial.print("No Fix"); return; } // Rad. lets log it! Serial.println("Log"); uint8_t stringsize = strlen(stringptr); if (stringsize != logfile.write((uint8_t *)stringptr, stringsize)) //write the string to the SD file error(4); if (strstr(stringptr, "RMC") || strstr(stringptr, "GGA")) logfile.flush(); Serial.println(); } } Problem: im Serieller Monitor erhalte ich nur die GPS Daten. Die Beschleunigungsdaten gehen verloren Vielen Dank für eure Tipps Gruß Gandy
Als Erstes solltest Du den Quelltext ordentlich formatieren. Für die Veröffentlichung im Forum sollte auch auch mit den geigneten Code-Tags versehen werden, damit er als Quelltext zu erkennen ist.
Code sieht in Farbe viel besser aus ;) da hast du schon recht
1 | void loop() { |
2 | |
3 | |
4 | /* Get a new sensor event */
|
5 | sensors_event_t event; |
6 | accel.getEvent(&event); |
7 | |
8 | |
9 | |
10 | |
11 | if (! usingInterrupt) { |
12 | // read data from the GPS in the 'main loop'
|
13 | char c = GPS.read(); |
14 | // if you want to debug, this is a good time to do it!
|
15 | if (GPSECHO) |
16 | if (c) Serial.print(c); |
17 | /* Display the results (acceleration is measured in m/s^2) */
|
18 | Serial.print(event.acceleration.x); Serial.print("; "); |
19 | Serial.print(event.acceleration.y); Serial.print("; "); |
20 | Serial.print(event.acceleration.z); Serial.print("; |
21 | ");Serial.println(" "); |
22 | delay(1000); |
23 | }
|
24 | |
25 | |
26 | if (GPS.newNMEAreceived()) { |
27 | char *stringptr = GPS.lastNMEA(); |
28 | |
29 | if (!GPS.parse(stringptr)) // this also sets the newNMEAreceived() |
30 | flag to false |
31 | return; // we can fail to parse a sentence in which case we |
32 | should just wait for another |
33 | |
34 | |
35 | Serial.println("OK"); |
36 | if (LOG_FIXONLY && !GPS.fix) { |
37 | Serial.print("No Fix"); |
38 | return; |
39 | }
|
40 | |
41 | // Rad. lets log it!
|
42 | Serial.println("Log"); |
43 | |
44 | |
45 | uint8_t stringsize = strlen(stringptr); |
46 | if (stringsize != logfile.write((uint8_t *)stringptr, stringsize)) |
47 | //write the string to the SD file
|
48 | error(4); |
49 | if (strstr(stringptr, "RMC") || strstr(stringptr, "GGA")) |
50 | logfile.flush(); |
51 | Serial.println(); |
52 | |
53 | }
|
54 | }
|
Andreas G. schrieb: > Code sieht in Farbe viel besser aus ;) > da hast du schon recht Farbe macht die Welt zwar bunter, aber alleine nicht immer schöner. Üblicherweise wird C-Code vernünftig eingerückt und Zeilenumbrüche innerhalb von Zeichenketten erhöhen die Leasbarkeit nicht unbedingt. Hast du auch eine Initialisierung für deine Sensoren und funktioniert der ADXL345 alleine. Betreibst du den über I2C oder über SPI?
> Hast du auch eine Initialisierung für deine Sensoren was meinst du genau damit? (Ich verwende die Adafruit Lib. falls du das meinst) > und funktioniert der ADXL345 alleine.? Ja funktioniert alleine > Betreibst du den über I2C oder über SPI? Beschleunigungssensor über I2C die SD-Karte über SPI
Andreas G. schrieb: >> Hast du auch eine Initialisierung für deine Sensoren > was meinst du genau damit? Damit meine ich deine Setup() Funktion. Kannst du den Datenverkehr auf dem I2C-Bus sehen und wie geht es deinem Speicher?
> Damit meine ich deine Setup() Funktion. aso. Ja hab ich > Kannst du den Datenverkehr auf dem I2C-Bus sehen wie kann man den sehen? > und wie geht es deinem Speicher? Speicher - nur B.Sensor ADXL345 (25%) Speicher - GPS und B.Sensor ADXL345 zusammen (79%) Speicher - passt, würd ich sagen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.