2x DS18B20 temperatur auf einem TFTLCD anzeigen Lassen

@fony
Meine Frage ist, wie krieg ich die saubere Anzeige wie beim dht auch bei den 2 Ds18er hin?
der Dht läuft ja auch über ein one wire und die anderen ja auch.

das gehört ja zu dem dht?! warum soll ich den raus nehmen, wenn der richtig läuft? :thinking: :thinking:

Kannste lassen :wink: und einfügen zu dem vom @my_xy_projekt , auf deinem Video hat auch der DHT verrückt gespielt es wurde alles gelöscht und neu geschrieben. jetzt bei zweistelliger Temp sollte ruhe sein

Der dht hat kein flackern, das kommt vom delay, wenn du genau schaust, flackert es nur bei tft neu laden!? Danach wechseln nur die wechselnden Zahlen...

Frage wird kommt der dht auch in Minusbereich?
bei Inhouse durfte nicht der Fall sein, ist aber egal kommen eben Parr Zeile dazu

Und damit flackert das Display :wink: ist nicht sin der Sache in meinen Augen,
Muss mall schauen ob ich mein 2,4" 8Bit Display zu Laufen bringe, wird wahrscheinlich nicht so schön der Sketch aber das flackern wird weg.
Den 4" Display kann nicht nutzen arbeitet nicht mit der MCUFRIEND_kbv :roll_eyes:

Wo zu? Es wird nur neuer wert geschrieben, vom allgemeinem Programmieren noch nicht so weit aber wen es geht um Displays, die machen das was ich will.

Wen es geht um Breite Ja nur dazwischen funkt immer der Punkt.

Weil nur dann der Inhalt ausgegeben wird, wenn sich der Wert ändert.
Wenn Du 20 sekunden lang 18°C ausgibst, flackert der Display im Rhythmus von intervall.
Wenn sich die 18°C nicht ändern, wird nix ausgegeben. Flackern ade.

Warum? Jedes Display hat so viel Internen RAM wie dargestellte Pixel plus par Bits für interne Sachen so dass das sich nicht ändert bis
. Neuer wert kommt
. Init, begin wird erzwungen oder Versorgung ist unterbrochen

Wen du zB. im Setup Init, begin Kommentierst und den Sketch neu ladest ist der alter Inhalt weiter sichtbar.
Jetzt wird mall der 2,4" repariert ob das Schafe ist die Frage :wink:

Die Behauptung stammt nicht von mir.

Du bist auf einer vollkommen falschen Baustelle.
Vermutlich einfach nur nicht verstanden, aber das kann ich nicht ändern.

Ist doch egal ob die oder andere Baustelle, ein

  if (millis() - lastRequest > intervall)
  {
    lastRequest = millis();

macht definitiv kein Flackern.
Wie das bei "Intelligenten" TFT wie Nextion und Co aussieht keine Ahnung nutze die nicht.

Mall das Video anschauen das "Ist Dein Code" , und Ja habe sogar alles verstanden
Ist aber mir Reichlich EGAL mache hier Ende der unnötiger Diskussion

Hey Leute,
ich danke für eure intensive Hilfe.
Euch gegenseitig in die Haare geraten sollte nicht die Absicht sein :wink: :wink: :v: :v:

Hier nochmal ein bisschen längeres Video.
Nach meinem verständnis:
Inhouse, Outdoor sind die 2 Oberen werte der Ds18er
Die unteren Werte des DHT22

Ich sehe beim Refresh dass die oberen werte neu ausgelesen und eingetragen werden.

Die vom DHT werden sowol auch beim refresh aktualisiert, aber auch ohne refresh...
Und das wäre meine liebste form des Skript, für alle sensoren.

Diese Sensoren werden keine minus Grade erfahren und müssen diese nicht anzeigen.
brauch diese für eine andere Temperatur regelung die ich machen will.
Ich möchte eine Filament Trocknungs Box bauen.

danke, ist besser..

jetzt werden nur alle Werte aktualisiert, gemeinsam.

Die DHT Werte verschwinden kurz auch :thinking:.
Ist aber Ansichtssache, jeder macht wie er will, für mich ist das Katastrophe :wink:

ja, aber nur beim refresh..

Flackert weiter :wink: habe mall auf die schnelle was gemacht

da sollten sich nur die Werte nur Ändern, ist zwa nicht schön aber sollte funktionieren
@Claudio.B es wird Funktionieren nur im Plus Bereich Minus Temp ist noch nicht ausgewertet

danke für deine Bemühungen!!

Da ich Anfänger stell sich mir eine Frage auf:
Warum ist macht dieser "simple" Code genau das was ich möchte.

ohne delay(), ohne refresh....

#include <MCUFRIEND_kbv.h>
#include <OneWire.h>
#include <DHT.h>

#define DHTPIN 30
#define DHTTYPE DHT22


constexpr uint16_t BLACK   {0x0000};
constexpr uint16_t BLUE    {0x001F};
constexpr uint16_t RED     {0xF800};
constexpr uint16_t GREEN   {0x07E0};
constexpr uint16_t CYAN    {0x07FF};
constexpr uint16_t MAGENTA {0xF81F};
constexpr uint16_t YELLOW  {0xFFE0};
constexpr uint16_t WHITE   {0xFFFF};
MCUFRIEND_kbv tft;

DHT dht(DHTPIN, DHTTYPE);                                  

float humidity, temperature;                               
 
void setup() {
  dht.begin();
  tft.begin();
  tft.setRotation(1);
  tft.fillScreen(BLACK);
}

void loop() {
  humidity = dht.readHumidity();                           
  temperature = dht.readTemperature();                     
 

  tft.setCursor(20, 140); //shift Cursor in Pixel (Collum, Row, Fontsize)
  tft.print("Temperatur: ");
  tft.setCursor(265, 140);
  tft.println("C");
  tft.setTextSize(1,2);
  tft.setCursor(20, 170);
  tft.print("Luftfeuchtigkeit: ");
  tft.setCursor(265, 170);
  tft.println("%");


tft.setTextSize(2);
  tft.setCursor(175, 170); 
  tft.print(humidity); //die Dazugehörigen Werte anzeigen
  tft.setCursor(175, 140);
  tft.print(temperature);
  fillScale(WHITE,BLACK);
  
}
void fillScale(const uint16_t fg, const uint16_t bg)
{
  tft.setTextColor(fg, bg);
}

Und Deiner mit viel zusätzlichen code zeilen geschrieben Code nicht das was ich mir gerne wünschte.

Verstehe ich was wesentliche nicht, dass diese 2 verschiedene Sensoren nicht mit der gleichen Integration das gleiche können, obwohl diese beide auch über den onewire bus ausgelesen werden?

Ich verstehs zur zeit nicht...

Warum? wo zu für 2 Adressen Circus machen?

Was ist denn los mit Dir?
Du verwendest keine 2 Adressen!
(Dein Code kompiliert nicht mal)