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
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."
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?
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.
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?
Wolfgang A. schrieb: > Warum sollten dann die Startbits dazu durchkommen? Die sind widerstandsfähiger, weil sie als Erste unbekanntes Terrain betreten. MfG Paul
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
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 ;-)
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
Gandy schrieb: > Die Baudrate habe ich bereits verändert. Welche? > Ohne Erfolg. Und auch ohne Änderung im Verhalten?
Was spricht denn gegen das Hardware UART ? Das geht ja. Sonst gaebs dann noch AVRs mit 2 seriellen Schnittstellen.
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
Ich will einen GPS logger mit Beschleungigungen (x,y,z) für ein Fahrzeug bauen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.





