Hallo zusammen.
Ich hatte in einem anderen Post ein Problem geschildert, wo ich ab einem bestimmt Punkt extreme Geschwindigkeitsprobleme bekommen habe. Ein Loop-Durchgang bremste von 6ms auf 530ms!
Da dies jetzt ein anderes Thema ist, habe ich den neuen Post eröffnet.
Ich habe mir auf einem SPI Monochrom OLED Display Grafiken wie Pixel, Striche oder Text anzeigen lassen.
Angeschlossen war ein I2C Sensor und ein Dallas 18B20 - nichts weltbewegendes. Ich war fest davon überzeugt, das es an den Grafiken oder der U8G2 Bibliothek liegen muss.
Ich habe die einzelnen QuellcodeTeile für sich getestet und dann die Hauptteile zusammen - Probleme waren weg!
Dann habe ich getestet und irgendwann kam der Fehler wieder - schrecklich!
Habe auch die Adafruit GFX Bibliothek getestet, da ich die U8G2 verwende (wegen dem Display).
Mikrocontroller: Teensy LC
>> NUN ZUM PROBLEM <<
Ich hatte halt in dem ersten Post nicht erwähnt, dass ich auch noch eine Temperatur messe. Das passiert mit einem DS18B20 Sensor über One Wire.
Ich hätte nie gedacht, dass dieser Sensor das Problem ist, darum kam er auch nicht zur Sprache.
Sobald ich
sensors.requestTemperatures();
in den Code einbringe, bricht die Geschwindigkeit ein also von 6ms auf ca. 500ms ein :o
Ich habe Ihn wie im Beispiel eingebunden, also
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
Das einzige was geändert wurde ist, dass der One Wire Pin 4 und nicht 2 ist.
Im Loop kommt dann
sensors.requestTemperatures();
und einlesen mache ich es bezogen auf die Bibliothek so
u8g2.print(sensors.getTempCByIndex(0),1);
Meine Frage:
Kann es an One Wire liegen?
Ist der Sensor so langsam?
Wenn es One Wire ist, kann ich auch keinen DHT11/22 als Alternative nehmen?
Ein NTC Widerstand geht auch aber irgendwie nicht so praktisch oder?
Temperatur messe ich von ca. 0 bis ca. 30 Grad
Ich habe mal im Internet nach Sensoren geguckt und diese hier gefunden:
Analog:
LM35DZ, LM335, LM34
TMP36
I2C:
BMP180
LM75
I2C/SPI:
BME280
Kann mir jemand was zu dem Problem sagen?
Woran liegt es und was kann ich tun?
Ich danke Euch vorab!