INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
OLED SSD1306 IC² Aktuallisierungrate Langsam
26.01.2016, 21:49
Beitrag #1
OLED SSD1306 IC² Aktuallisierungrate Langsam
Hallo Leutz

hab mal wieder eine Frage wo ich schon 2 Tage nicht weiter komme!

Habe ein OLED 0,96 Display SSD1306. Und will mir nur die Geschwindigkeit in KMH anzeigen lassen.

Bekomm auch alles soweit hin aber wenn ich den Sketch hoch lade aktualisiert das Display die Geschwindigkeit so extrem langsam sage mal grob alle 30-60 Sekunden.
Hab auch verschiedene librarys versucht immer das gleiche.

Wo dran kann das liegen?

Code:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
TinyGPSPlus gps;
SoftwareSerial ss(RXPin, TXPin);
TinyGPSCustom zdop(gps, "GPVTG", 7); // $GPVTG sentence, 7th element
int vitesa1 = atoi (zdop.value());

void setup() {
  ss.begin(GPSBaud);

  u8g.setHardwareBackup(u8g_backup_avr_spi);

  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255, 255, 255);
  }
}

void loop() {
  while (ss.available() > 0)
    gps.encode(ss.read());

  u8g.firstPage();
  do {
    u8g.setFont(u8g_font_unifont);
    u8g.drawStr( 0, 10, zdop.value());
    int vitesa1 = atoi (zdop.value());
    u8g.setPrintPos(0, 40);
    u8g.print(vitesa1);
  } while ( u8g.nextPage() );
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.01.2016, 22:00 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2016 22:14 von hotsystems.)
Beitrag #2
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
Im Sketch sehe ich keinen Fehler. Falsch!!

Hast dir die Geschwindigkeit mal im SerialMonitor angesehen?
Oder in einem LCD-Display?

Ich vermute, das GPS gibt die nicht schneller aus.

Edit !
Du verwendest SoftwareSerial an einem I2C-Display, wie funktioniert das?

Das erscheint mir seltsam! Ändere das in I2C und gut ist.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.01.2016, 06:14 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2016 06:17 von b3ta.)
Beitrag #3
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
Hallo hotsystem.

Aber ich brauche doch die softwareserial für das gps. Oder kann ich an 0 und 1 ohne softwareserial.

Im serial monitor läuft alles ganz schnell.
Und wenn ich z.b. Beispiel sketch laufen lasse mit grafiken usw. ist auch alles normal.

Halt nur in Kombination nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.01.2016, 07:52 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2016 09:52 von hotsystems.)
Beitrag #4
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
(27.01.2016 06:14)b3ta schrieb:  Hallo hotsystem.

Aber ich brauche doch die softwareserial für das gps. Oder kann ich an 0 und 1 ohne softwareserial.

Im serial monitor läuft alles ganz schnell.
Und wenn ich z.b. Beispiel sketch laufen lasse mit grafiken usw. ist auch alles normal.

Halt nur in Kombination nicht.

Ok, die SoftwareSerial bleibt für GPS.

Du must die Library "Wire.h" noch einbinden, wird für I2C gebraucht.

Die ist doch sicher auch im Beispiel mit drin.

Poste doch mal den Link deines Displays.

Ist das ein Farb-Display?

Und mir ist jetzt doch noch aufgefallen, du bringst den Wert des GPS mehrfach auf das Display, warum?

Code:
void loop() {
   while (ss.available() > 0)
     gps.encode(ss.read());

  u8g.firstPage();
   do {
     u8g.setFont(u8g_font_unifont);
     u8g.drawStr( 0, 10, zdop.value());   // 1. Mal
     int vitesa1 = atoi (zdop.value());     // Wert in Variable
     u8g.setPrintPos(0, 40);
     u8g.print(vitesa1);                         // 2. Mal, Wert aus Variable
   } while ( u8g.nextPage() );
}

Nimm mal die "Print-Methode" raus.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.01.2016, 13:42 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2016 13:57 von avoid.)
Beitrag #5
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
kuck dir mal das Video und den Code an, den ich hier gepostet habe, so schön flüssig kann der SSD1306 über i2c arbeiten.
http://www.arduinoforum.de/arduino-Threa...4#pid25674

evtl. bringt dich das auf eine Idee zur Verbesserung deines Code.
ich übertrage erst alle Änderungen und danach aktualisiere ich das Display. so gibt's auch kein flimmern.
Ich ändere auch einzelne Bereiche anstelle des kompletten Display aber das machst du ja genau so.

Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.01.2016, 20:12
Beitrag #6
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
@hotsystem

Hi

- Wire.h ist weger in den U8G Beispielen vorhanden auch nicht in den TinyGPS++ Beispielen. Denke ist schon in der U8G Lib hinterlegt.

-Link zum Display Link ist einfarbig.

-Ja ist richtig die variable ist 2-mal da zu Test zwecken.
Erste zeigt den Wert mit 3 zahlen nach Komma.
Zweite zeigt den Wert gerundet ohne Komma stelle.
ist erst mal dafür gedacht um zu sehen wie schnell es sich aktualisiert da ich ja am Rechner nicht das gps bewege würde nur null angezeigt werden.

- die "Print-Methode" hatte ich schon raus ändert aber nichts.

@avoid

Hi

Also ich habe kein Problem mit Flimmern. Auch werden die Standard Beispiele mit Animationen ganz flüssig angezeigt.
Nur sobald ich eine variable auslesen und anzeigen lassen möchte aktualisiert es nicht wie im Serial.print so schnell sondern ädert den Wert im Display nur alle 30-60sekunden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.01.2016, 22:36
Beitrag #7
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
Ok, das mit der Wire.h kann stimmen.
Ich habe die bei mir im Code drin, habe aber keine Idee woher das stammt.
Werde das selber mal testen, muss aber dazu erst an das Modul (Tankfüllstand) ran und den Sketch erneut aufspielen.

Wenn du nur ein sw-Display hast, kannst du doch im Setup die IF-Abfrage einfacher gestalten.
Soweit ich in Erinnerung habe, ist es immer sw, wenn keine Abfrage vorhanden ist.

Wie schnell aktualisiert er, wenn du nur eine Variable mit festem Inhalt übergibst?

Der Fehler kann eigentlich nur in der Loop liegen.
Bei mir wechseln häufiger die Anzeigen (Füllstand und Außentemperatur) und das geht fix mit der Aktualisierung.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.01.2016, 12:41 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2016 12:43 von b3ta.)
Beitrag #8
RE: OLED SSD1306 IC² Aktuallisierungrate Langsam
So habe gestern noch ein wenig rum gespielt. Dabei ist mir was aufgefallen... wenn ich.

u8g.firstPage();
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 10, zdop.value());
u8g.nextPage();

Eingebe.

Anstatt:

u8g.firstPage();
do {
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 10, zdop.value());
int vitesa1 = atoi (zdop.value());
u8g.setPrintPos(0, 40);
u8g.print(vitesa1);
} while ( u8g.nextPage() );

Dann aktualisiert er die werte und das display schnell aber die Ansicht stimmt dann nicht mehr.

Hab mir jetzt noch zwei andere lcd display bestellt und hoffe die kommen am we. Obwohl es ja eigentlich gehen muss andere haben sowie ja auch auf oled.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  LCD Langsam MeisterQ 6 261 06.09.2016 17:03
Letzter Beitrag: MeisterQ
  Problem mit OLED 0.96" Display torsten_156 3 536 03.04.2016 15:10
Letzter Beitrag: hotsystems
  OLED Display anzeige von Logo falsch ! b3ta 0 333 23.01.2016 15:12
Letzter Beitrag: b3ta
  Referenzfahrt zu langsam Michi87x 5 978 04.12.2014 09:33
Letzter Beitrag: Michi87x
  GPS-Tracker mit Adafruit Ultimate GPS breakout und 128x54 OLED Chingstar 1 1.962 29.05.2014 20:29
Letzter Beitrag: Mark
  Adafruit Display 128x32 SPI OLED audis3stage4 3 3.081 30.04.2014 05:19
Letzter Beitrag: rkuehle

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste