Serieller Monitor füllt sich mit Fehler

OP #4589826
Lesenswert?

Hallo Community,

bin noch Arduinoneuling und auf ein Problem gestoßen.

Ich habe auf meinen Arduino Uno das Adafruit Ultimate GPS Logger Shield 
draufgesteckt. Nun wollte ich ein Sketch aus der Adafruit Lib laufen 
lassen.

Mein Shield hat zwei Verbindungen:
a) Direct Connect
b) Soft Serial Connect

a) Wenn ich einen Sketsch für Direct Connect laufen lasse funktioniert 
es
b) Wenn ich auf Soft Serial Connect umschalte und ein Sketch für die 
Verbindung laufen lasse, funktioniert es im Seriellen Monitor nur einen 
kurzen Moment.
Danach färbt sich der Bildschirm mit dem Buchstaben Y(siehe Bild).

Hab ihr für mein Problem eine Lösung??
im Anhang befindet sich das Datenblatt für das Shield und ein Bild 
meines Seriellen Monitors, bei einem Soft Serial Connect Sketch aus der 
Lib.

Vielen Dank

Gruß

Gandy
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #4589848
Lesenswert?

Andreas G. schrieb:
> Danach färbt sich der Bildschirm mit dem Buchstaben Y(siehe Bild).
Das ist ein y mit zwei Punkten drüber. Und das ist das Zeichen für hex 
0xff...

> bei einem Soft Serial Connect Sketch aus der Lib.
Und da läuft nur dieses Programm? Was tut das Ding sonst noch? 
Irgendwoher müssen die Zahlen kommen, oder?
#4589855
Lesenswert?

Andreas G. schrieb:
> b) Wenn ich auf Soft Serial Connect umschalte und ein Sketch für die
> Verbindung laufen lasse, funktioniert es im Seriellen Monitor nur einen
> kurzen Moment.
> Danach färbt sich der Bildschirm mit dem Buchstaben Y(siehe Bild).

Das ist ein 0xFF, da würde ich spontan mal nach der GND Verbindung 
schauen ob die noch OK ist. Wenn ja -> Oszi oder LogicAnanlyser, da ist 
in jedem Falle was faul.
OP #4589933
Lesenswert?

Hallo zusammen,

erstmal Vielen Dank für die zahlreichen Tipps.

Ich hab nun meine Lötungen nochmal überholt.
Funktioniert leider immer noch nicht.

Im Anhang sind davon Bilder.
Viele Augen sehen mehr als nur zwei.
Ich hoff ihr könnt meinen Fehler auflösen.

Vielen Dank schon mal

Gruß

Gandy
(Firma: Vescomp) #4589937
Lesenswert?

Andreas G. schrieb:
> Hab ihr für mein Problem eine Lösung??

 Ja.
 Beim Soft Serial Zeichen von GPS bis zum CR/LF  in ein String einlesen,
 erst wenn CR/LF kommt, String ausgeben.
 Danach ist dein Soft Serial sehr wahrscheinlich aus dem Takt, irgendwo
 mitten in irgendeinem Byte der nächsten Nachricht.

 Also, erst mal Ruhe auf Soft Serial abwarten, dann in einem Loop auf
 neues "$" warten.

 P.S.
 Ich sage es immer wieder, 2 Stoppbits wirken Wunder ;-)
#4589976
Lesenswert?

Hallo,

man könnte ja, wie empfohlen, die Übertragung vom AVR zum PC auch etwas 
schneller als 9600 Baud einstellen.
Im Sketch und im Terminal der IDE.

Das es problematisch ist, die vermutlich mit 4800 Baud vom GPS kommende 
Soft-Serial-Daten mit 9600 Baud weiterzureichen, ist nicht ungewöhnlich.
Man könnte ja zum PC z.B. 38400 oder 115200 nehmen.

Gruß aus Berlin
Michael
OP #4590326
Lesenswert?

Ein Problem für meine Lösung wäre, wenn ich diese 2 Sketches verbinden 
könnte.


Sketch 1 - GPS Shield über Direct Connect:

// this sketch will allow you to bypass the Atmega chip
// and connect the GPS sensor directly to the USB/Serial
// chip converter.

// Connect VIN to +5V
// Connect GND to Ground
// Connect GPS RX (data into GPS) to Digital 0
// Connect GPS TX (data out from GPS) to Digital 1

void setup() {}
void loop() {}


Sketch 2 - ADXL345 Beschleunigungssensor:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);

void setup(void)
{
  Serial.begin(9600);

  /* Initialise the sensor */
  if(!accel.begin())
  {
    /* There was a problem detecting the ADXL345 ... check your 
connections */
    Serial.println("Ooops, no ADXL345 detected ... Check your wiring!");
    while(1);
  }
}

void loop(void)
{
  /* Get a new sensor event */
  sensors_event_t event;
 accel.getEvent(&event);

  /* 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(500);
}


ZIEL:

GPS Daten + Beschleunigungen

Gruß

Gandy
OP #4591903
Lesenswert?

Hallo zusammen,

ich konnte mein Problem nun dank euren Tipps lösen.
Ein Pin war nicht perfekt gelötet, ich hatte keinen 100% Kontakt.
Anschließend stellte ich die Baudrate auf 115.200 und nun funktioniert 
mein Sketch wie gewollt.

Danke für diesen Tipp.


Nun hab ich eine weitere Frage

wie kann ich zwei Sketches mit unterschiedlichen Baudraten verbinden und 
im Seriellen Monitor anzeigen lassen?

1. Sketch , Baudraute 9.600
2. Sketch, Baudrate: 115.200

Gruß

Gandy

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren