ich bin neu hier und möchte zunächst sagen, dass ich noch nicht viel Erfahrung in Sachen Mikrocontroller und Arduino habe.
Ich habe mir die beiden oben genannten Boards gekauft und stehe vor dem ersten Problem.
Laut Getting Startet kann man den GPS-Sensor entweder per 5-poligem Kabel im I2C-Modus verwenden oder diesen direkt auf den Arduino stecken (als Shield).
Nun zum Problem:
Im I2C-Modus funktioniert alles wunderbar. Möchte ich den Sensor aber als Shield verwenden, erkennt er diesen nicht und das Beispielprogramm gibt auch keinen Fehler aus, wenn der Sensor gar nicht erst aufgesteckt ist. Ich habe den Code entsprechend dem Code abgeändert:
#include <Arduino_MKRGPS.h>
void setup() {
// initialize serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// If you are using the MKR GPS as shield, change the next line to pass
// the GPS_MODE_SHIELD parameter to the GPS.begin(...)
if (!GPS.begin(GPS_MODE_SHIELD)) {
Serial.println("Failed to initialize GPS!");
while (GPS.begin(GPS_MODE_SHIELD)==0);
}
}
Habe ich das falsch verstanden oder ist die Header-Datei fehlerhaft. Schließlich kommt keine Fehlermeldung, wenn der ganze Sensor nicht aufgesteckt ist. Das kann ja nicht sein.
Im I2C-Modus funktioniert das mit der Fehlermeldung wunderbar.
Es ist eine unsinnige Idee Text als Bild einzustellen (Du bist damit aber nicht allein - tröste Dich).
Setze Deinen Code bitte direkt ins Forum. Benutze dazu Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *). So ist er auch auf portablen Geräten lesbar.
Das kannst Du auch noch nachträglich ändern.
Sorry, da war der Shop irgendwie auf USA umgestellt.
Da der GPS_MODE_SHIELD = GPS_MODE_UART ist, fehlt mir in dem Sketch der Aufruf des Konstruktors mit der Übergabe der Seriellen Schnittstelle.
Er soll an Serial1 hängen, aber Daten zu den Parametern habe ich nicht gefunden.
Ich habe die Hardware nicht, kann da also keine weitere Erfahrung beitragen.
Für GPS_MODE_UART gibt begin immer 1 zurück.
int GPSClass::begin(int mode)
{
_mode = mode;
pinMode(_extintPin, OUTPUT);
digitalWrite(_extintPin, HIGH);
delay(100); // delay for GPS to wakeup
if (_mode == GPS_MODE_UART) {
_serial->begin(_baudrate);
_stream = _serial;
} else {
if (!_serialDDC->begin(_clockRate)) {
end();
return 0;
}
_stream = _serialDDC;
}
_available = 0;
_index = 0;
return 1;
}
Danke für deine Antwort. So weit war ich heute auch schon. Da ich aber nur sehr eingeschränkt fähig bin, was das Programmieren angeht, kann ich diesen Fehler auch nicht selbständig beheben.
Ich meinte ich war in dieser Datei. Den Fehler den du genannt hast, habe ich nicht gefunden. Ich wäre da nie drauf gekommen, dass dort etwas fehlt.
Habe mich wohl falsch ausgedrückt
Mehrere Bibliotheken wurden für "MKRWAN.h" gefunden
Benutzt: D:\Stefan\Documents\Arduino\libraries\MKRWAN
Mehrere Bibliotheken wurden für "Arduino_MKRGPS.h" gefunden
Benutzt: D:\Stefan\Documents\Arduino\libraries\Arduino_MKRGPS
Mehrere Bibliotheken wurden für "Wire.h" gefunden
Benutzt: C:\Users\Stefan\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.4\libraries\Wire
exit status 1
Fehler beim Kompilieren für das Board Arduino MKR WAN 1310.