Konflikt zwischen I2C und SoftwareSerial?

Moin Leute :slight_smile:

Habe mir ein Motorrad gekauft und bin es am aufmotzen. Unter Anderem soll da ein GPS Modul rein, dass die aktuellen Koordinaten auf einem kleinen 128x32 SSD1306 Oled Display ausgibt. Also mal testweise. Sp√§ter soll dann das GPS Modul Daten wie Geschwindigkeit, Fahrroute etc auf einer SD Karte loggen. Aber einfach mal zum Testen ob das GPS Modul √ľberhaupt funktioniert, sollen die Daten auf dem OLED Display ausgegeben werden. Also die Koordinaten. Viel mehr hat ja da kein Platz :smiley:

Nun mein Problem: Wenn ich das GPS Modul an PIN 10 und 11 anschliesse (Rx & Tx) und das Display an A4 & A5 beim Nano, funktioniert zwar die Serielle Ausgabe, aber das Display zeigt nix an. Bleibt einfach Schwarz. Kommentiere ich sämtliche Neo-6M GPS Zeilen aus, funzt das Display.

Hier der Code

#include <SoftwareSerial.h>
#include <Gpsneo.h>
#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
Gpsneo gps(10,11);

char link[70];
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);  // Adafruit ESP8266/32u4/ARM Boards + FeatherWing OLED

#define INFO_SCREEN_DELAY 3000
void  setup()
{
Serial.begin(9600);
  u8g2.begin();
Serial.println("start-------------------------------");
}

void loop()
{	
 char link[50];
 gps.Google(link);
 Serial.println(link);
  u8g2.clearBuffer();

  u8g2.setFontMode(1);
  u8g2.setFont(u8g2_font_cu12_tr);    

  u8g2.setCursor(0,15);
  u8g2.print("Link: ");
  u8g2.setCursor(0,30);
  u8g2.print(link);
    
  u8g2.sendBuffer();
  delay(1000);
}

Hat jemand eine Idee?

Lieber Gruss

delf

Welches von beiden ist definiert?

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

Gruß Tommy

Grundsätzlich (wenn alles richtig gemacht wird) gibt es keine Probleme, wenn beide Schnittstellen genutzt werden.
Ich habe so mehrere Projekte laufen, wo I2C und SoftwareSerial zusammen an einem Arduino oder sogar an einem Wemos D1 mini problemlos funktionieren.

Da muss bei dir ein anderes Problem vorliegen.

Danke schon mal f√ľr eure Antworten :slight_smile:

@noiasca¨
Mr. Google sagt da eben verschiedenes :-/ Manche behaupten, dass es √ľberhaupt nicht funzt und wiederum andere sagen, dass man einfach ne andere SofwareSerial Lib verwenden soll und wiederum andere meinen, dass der Wurm nicht im Konflikt sondern woanders liegt. Die Fachmeinungen gehen da stark auseinander und offenbar kann man auch nicht sagen dass es ne Standardl√∂sung f√ľr dieses Problem gibt. Dehalb habe ich mich an dieses Forum gewandt, weil ich nicht weiter wusste :wink:

@Tommy
Rate mal :smiley: Ne quatsch.. hab das einfach so von dem Beispiel, welches mit der U8G2 Library mitgeliefert wird, √ľbernommen :wink: Steht in allen Sketches von mir drin und hat bisher immer tadellos funktioniert wenn ein I2C Display dran hing :slight_smile:

@HotSystems
Hmm... meinst du mit der Verkabelung oder Software m√§ssig? Weil sind ja alles Librarys, die man √ľber den Library Manager beziehen kann. Habe daran nix ge√§ndert. Nehme ich z.b. anstelle von U8G2 die Adafruit GFX Library, dann l√§ufts! Bekomme zwar keine GPS Daten rein, aber immerhin zeigt das Display etwas an :smiley:

Gehe jetzt mal mit einem Laptop auf den Balkon und schaue ob ich √ľberhaupt GPS Daten rein bekomme. Bisher hat es eben mit diesem GPS Modul noch nie funktioniert. Keine Ahnung warum. Vermutlich muss man da einfach tiefer in die Tasche greifen um etwas zu bekommen was zu was taugt. Das Neo-6M GPS Modul, war das billigste, was ich gefunden habe damals. Wollte erst mal schauen ob so ein GPS Modul √ľberhaupt f√§hig ist meinen Anspr√ľchen gerecht zu werden bevor ich knapp 100.-- daf√ľr ausgebe :wink:

Liebe Gr√ľsse

delf

Hi

Meine Neo-6M brauchen ziemlich viel Sichtverbindung Richtung Himmel - ein Meter im Raum drin wird's schon √ľbersichtlich.
Du kannst aber ggf. den GPS-Arduino an einer USB-Verängerung bis zu 5m vom PC absetzen.

MfG

postmaster-ino:
Du kannst aber ggf. den GPS-Arduino an einer USB-Verängerung bis zu 5m vom PC absetzen.

Das geht noch viel weiter.
Die Frage ist nur, ob Ardu mit eigener Stromversorgung oder nicht nicht.
Wenn ja, dann sind selbst 100 mtr. kein Problem.

Stichwort: USB Extender CAT

Was genau dein Fehler ist, kann ich so nicht sagen.
Ich kenne deinen Aufbau nicht, auch kenne ich das GPS nicht.

Fakt ist, bei mir funktioniert es.

Mein Tipp:
Baue erst mal nur die Funktion des GPS am seriellen Monitor.
Wenn das funktioniert, auf I2C-Display erweitern.

Auch kannst du mal ein Foto des aktuellen Aufbaus zeigen.
Bitte so, dass man sicher alles erkennen kann.

Und wer billig kauft, kauft doppelt.