Forum: Mikrocontroller und Digitale Elektronik Serieller Monitor füllt sich mit Fehler


von Andreas G. (gandy)


Angehängte Dateien:

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

von Wolfgang A. (Gast)


Lesenswert?

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

Ich zitiere da mal die Beschreibung zum Schild: " You may not be able
to output "all data" at that speed because the 9600 baud rate is not 
fast enough."

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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?

von Jim M. (turboj)


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.

von Wolfgang A. (Gast)


Lesenswert?

Jim M. schrieb:
> Das ist ein 0xFF, da würde ich spontan mal nach der GND Verbindung
> schauen ob die noch OK ist.

Warum sollten dann die Startbits dazu durchkommen?

von Paul B. (paul_baumann)


Lesenswert?

Wolfgang A. schrieb:
> Warum sollten dann die Startbits dazu durchkommen?

Die sind widerstandsfähiger, weil sie als Erste unbekanntes Terrain 
betreten.

MfG Paul

von Andreas G. (gandy)



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

von Marc V. (Firma: Vescomp) (logarithmus)


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 ;-)

von Michael U. (amiga)


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

von Gandy (Gast)


Lesenswert?

Die Baudrate habe ich bereits verändert. Ohne Erfolg.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Gandy schrieb:
> Die Baudrate habe ich bereits verändert.
Welche?

> Ohne Erfolg.
Und auch ohne Änderung im Verhalten?

von Pandur S. (jetztnicht)


Lesenswert?

Was spricht denn gegen das Hardware UART ? Das geht ja.
Sonst gaebs dann noch AVRs mit 2 seriellen Schnittstellen.

von Andreas G. (gandy)


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

von sketch (Gast)


Lesenswert?

Was willst Du eigentlicht machen?

von Andreas G. (gandy)


Lesenswert?

Ich will einen GPS logger mit Beschleungigungen (x,y,z) für ein Fahrzeug 
bauen.

von Andreas G. (gandy)


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

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
Noch kein Account? Hier anmelden.