Display zeigt nicht das richtige an

Hallo, ich habe ein Arduino Nano mit einem Max 6675 Temperatursensor und einem 16x2 LCD Display. Leider zeigt das Display aber immer nur Striche und ? anstatt die Temperatur an. Kann mir da jemand helfen?

Sketch zeigen. Was zeigen Beispiele?
Wie ist der angeklemmt ?

Nur wenn du

  • den code in code tags postest
  • einen Schaltplan zeichnest und hier postest
  • Mit echten Bildern belegst, dass du deinen Schaltplan eingehalten hast.

Hier der Code


#include <LiquidCrystal_I2C.h>
#include <MAX6675.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

int thermoSO = 12;   // Daten
int thermoCS = 10;   // Chip Select
int thermoSCK = 13;  // Clock

MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);

void setup() {
  lcd.begin();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("MAX6675 Temp:");
  delay(500);
}

void loop() {
  float tempC = thermocouple.readCelsius();

  lcd.setCursor(0, 1);
  lcd.print("Temp: ");
  lcd.print(tempC);
  lcd.print(" C   ");

  delay(1000);
}`

Verkabelung ist:
5v-VCC
GND-GND
A4- SDA
A5- SCL
Bilder folgen…

Es ist nicht zu erkennen, wie du deinen Sensor angeschlossen hast.
Daher mein Tipp:
Verwende ein Beispiel aus der Display-Library und zeige nur Text an. Dann siehst du, ob dein Display richtig funktioniert.

ist die Standard i2c-adresse für den PCF8574 nicht 0x20?
Eventuell den I2C-Scanner mal aufspielen, um da Sicherheit zu haben?
Das SDA-Kabel an A4 ist auch richtig festgeklemmt? Sieht auf dem Bild so locker aus.. :wink:

meist führen die offenen Adresspins zu 0x27 oder 0x3F.
Außerdem wenn es falsch wäre, dann sieht man sicher gar nichts drauf (außer der üblichen ersten Zeile mit den Strichen).
Also die Initialisierung ist mehr oder weniger gut durchgelaufen.

Könnte auch ein Kontaktproblem/Lötbrücken zwischen LCD und PCF Board sein

Dan wurde nix angezeigt, bischien nachdenken

Stimmt, sorry....
2ZEoPv1

ist die Standard i2c-adresse für den PCF8574 nicht 0x20?

hex 20 bis 27

-> PCF8574A
hex 38 bis 3f

Beide finden sich auf den diversen Adapterbords.

Hallo
Ein Serial.println(tempC) würde den Fehler schon mal um 50% einkreisen.

Gruß Heinz

Ich würd ja auf eine kalte Lötstelle, bzw. eine Lötbrücke prüfen.

Mach mal im ausgeschalteten Zustand ein Bild der Kontakte an der Displaykante und ein zweites am I2C-Expander.

Kabel ist kontrolliert und richtig fest!

Hallo Heinz, was ist damit genau gemeint. Habe leider wenig Erfahrung….

Also hier würde ich unbedingt nochmal nachlöten mit genügend Flussmittel.
Bildschirmfoto vom 2025-07-11 17-45-38

Am Expander wird es vermutlich nicht besser aussehen.
Unbedingt sauber löten.
Ggfls. etwas Zinn wegnehmen.

Hallo
Na ja, du weißt ja eigentlich nicht genau ob das einlesen der Temperatur, oder die Ausgabe auf die Anzeige das Problem sind. Um Fehler zu finden macht es Sinn sich den Zustand von Variablen auf dem seriellen Monitor anzeigen zu lassen.
Das wirst du in vielen Beispielen finden.
Zudem macht es immer Sinn mit einem einfachen Beispiel aus der entsprechenden Bibliothek anzufangen.
Gruß Heinz

Die Temperatur wird im seriellen Monitor angezeigt.

Hast Du Deine Lötstellen bearbeitet, dass die nicht aussehen als hätte da jemend seine ersten Schweißkünste gemacht?

Diesen Code bitte einmal einspielen:

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));
  lcd.begin();
  // lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("A");
  lcd.setCursor(0, 1);
  lcd.print(1);
}

void loop()
{
}

Es ist Absicht, dass das Backlight aus ist.
Bitte versuche das auf dem Display sichtbar zu machen.
Davon ein Foto.

Dann lösche die Kommentierung und schieb das nochmal auf den Controller.
Kommt das selbe auf dem Display?

Von den Libs gibt es einige.
Welche benutzt Du?

Leider hat das löten nicht geklappt, gab einen Kurzschluss… brauche erstmal ein neues Display