Problem bei Kombination von GPS shield und ADXL345

OP #4604256
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
OP
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
}
Gast
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?
OP
> 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
OP
> 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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.