Fehler in der OLED DIsplay Adressierung

Hallöchen liebe Bastler und Tüftler

ich möchte mit meinem UNO ein Heatbed ansteuern und ein kleines OLED Display auf welchem die Soll und Ist Temperatur angezeigt wird. Zusätzlich soll mit zwei Tastern die Soll- Temperatur verändert werden können.

Nun zu meinem eigentlichen Problem: Code wurde geschrieben, Display mit I2C Scanner gescannt Adresse: 0x3C (wird im Code als Fehler ausgegeben)

kann mir jemand helfen was hierbei Falsch sein soll?

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Pin, an dem der NTC-Sensor angeschlossen ist
const int ntcPin = A0;

// Pin für Taster zur Erhöhung und Verringerung der Soll-Temperatur
const int increaseTempButton = 2; // Verbinden Sie diesen mit dem Pin 2
const int decreaseTempButton = 3; // Verbinden Sie diesen mit dem Pin 3

// Pin für das Relais, um das Heizelement zu steuern
const int relayPin = 4; // Verbinden Sie dieses mit dem Steuerpin des Relais

// Widerstand des NTC-Sensors bei 25 Grad Celsius (in Ohm)
const double ntcResistance = 100000.0;

// Nennwiderstand des NTC-Sensors (in Ohm)
const double ntcNominal = 100000.0;

// Temperatur bei der der NTC-Sensor kalibriert wurde (in Grad Celsius)
const double ntcTempNominal = 25.0;

// Beta-Koeffizient des NTC-Sensors
const double beta = 3950.0;

// Display-Objekt
Adafruit_SSD1306 display(128, 64, &Wire);

// Soll-Temperatur
double targetTemperature = 25.0;

void setup() {
  Wire.begin();
  display.begin(SSD1306_I2C_ADDRESS, 0x3C);  // Passen Sie die I2C-Adresse ggf. an
  display.display();
  delay(2000);  // Kurze Verzögerung für den Display-Start

  // Begrüßungstext auf dem Display
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("Soll-Temperatur:");
  display.display();
  delay(2000);

  // Taster-Pins als Eingänge konfigurieren
  pinMode(increaseTempButton, INPUT_PULLUP);
  pinMode(decreaseTempButton, INPUT_PULLUP);

  // Relais-Pin als Ausgang konfigurieren
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW); // Relais ausschalten
}

void loop() {
  // Taster für die Soll-Temperatur ändern
  if (digitalRead(increaseTempButton) == LOW) {
    targetTemperature += 1.0; // Temperatur erhöhen um 1 Grad
    delay(200); // Entprellzeit für den Taster
  }
  if (digitalRead(decreaseTempButton) == LOW) {
    targetTemperature -= 1.0; // Temperatur verringern um 1 Grad
    delay(200); // Entprellzeit für den Taster
  }

  // Lese den ADC-Wert vom NTC-Sensor
  int adcValue = analogRead(ntcPin);

  // Berechne die Widerstand des NTC-Sensors
  double ntcResistance = 10000.0 / (1023.0 / adcValue - 1.0);

  // Berechne die Temperatur in Grad Celsius
  double steinhart = ntcResistance / ntcNominal; // (R/Ro)
  steinhart = log(steinhart); // ln(R/Ro)
  steinhart /= beta; // 1/B * ln(R/Ro)
  steinhart += 1.0 / (ntcTempNominal + 273.15); // + (1/To)
  steinhart = 1.0 / steinhart; // Invertieren
  steinhart -= 273.15; // Umrechnen in Grad Celsius

  // Anzeige der Soll- und Ist-Temperatur auf dem Display
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.print("Soll-Temp: ");
  display.print(targetTemperature, 1);  // Zeige Soll-Temperatur auf 1 Dezimalstelle
  display.print(" C");
  display.setCursor(0, 16);
  display.print("Ist-Temp: ");
  display.print(steinhart, 2);  // Zeige Ist-Temperatur auf 2 Dezimalstellen
  display.print(" C");
  display.display();

  // Heizelement steuern
  if (steinhart < targetTemperature) {
    digitalWrite(relayPin, HIGH); // Relais einschalten
  } else {
    digitalWrite(relayPin, LOW); // Relais ausschalten
  }

  delay(1000);  // Eine Sekunde warten
}

Fehlermeldung:
'SSD1306_I2C_ADDRESS' was not declared in this scope

SSD1306_I2C_ADDRES ist nicht definiert und hier falsch
in den Beispielen sieht die Zeile so aus:

display.begin(SSD1306_SWITCHCAPVCC, 0x3C)

Perfekt danke dir, jetzt läufts

Dann markiere den Beitrag mit der Lösung als Lösung.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.