Physik/NaWi multimedial

Bitte den folgenden Code kopieren (strg + c) und in die Arduino-Software einfügen strg + v Anschließend noch die Biblotheken „U8g2lib“ und „DallasTemperature“ einbinden und abschließend den Code auf den Arduino laden.

//OLED-Display
  #include <U8g2lib.h>                                               //Bibliothek einbinden
  U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);  // Display auswählen und verkürzte Bezeichnung festlegen

//DS18B20
  #include <DallasTemperature.h>             // Bibliotheken einbinden
  #include <OneWire.h>                       // Bibliotheken einbinden
  #include <Wire.h>                          // Bibliotheken einbinden
  int Temperatursensor = 2;                  // Verbindung des Temperatursensors auf Pin 2 des Arduinos
  OneWire oneWire(Temperatursensor);         // Instanz zur Kommunikation mit dem Temperatursensor
  DallasTemperature sensors(&oneWire);       // Nutze diese Instanz für die DallasTemperature Bibliothek

//Variable in der die Messwerte gepeichert werden
  float messwert = 0.0;                              

void setup(void) {
  // Display starten  
  u8g2.begin();                                     
  // Starte serielle Schnittstelle zur Kommunikation mit dem Arduino
  Serial.begin(9600);
  // Starte Kommunikation mit dem temerpatursensor                              
  sensors.begin();                                  
}

void anzeige_oled () {
  u8g2.firstPage();                                 // spart Arbeitsspeicher Bildschleife startet
  do {                                              // Schleife beginnt
    u8g2.setFont(u8g2_font_logisoso24_tf);          // Schriftart auswählen
                                                    // Das Display besteht aus 128x64 Pixeln (BreitexHöhe)
                                                    // Die Schriftart gibt es auch in den Größen 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 38, ..., 62, 78 und 92.
                                                    // Die ersten beiden Parameter in der Anweisung u8g2.drawStr geben das Pixel an, an dem gestartet wird.
                                                    // Sollten Messwert und Einheit ineinander verschwimmen, muss man statt 70 eine größere zahl wählen.
    u8g2.drawStr(0, 30, String(messwert).c_str());  // Der aktuelle Messwert wird auf das Display geschrieben.
    u8g2.drawUTF8(70, 30, " °C");                  // Die Einheit wird auf das Display geschrieben.
  }
  while (u8g2.nextPage());                          // Änderungen auf Display anzeigen
}

void loop() {  
  // Frage beim Sensor die Temperatur an
  sensors.requestTemperatures();

  // Gibt die Temperatur in Grad Celsius auf der seriellen Schnittstelle aus
  messwert = sensors.getTempCByIndex(0);

  // Der Messwert wird auf der seriellen Schnittselle ausgegeben.
  Serial.print(messwert);
  Serial.println(" °C");
  
  // Die Funktion anzeige_oled wird ausgeführt
  anzeige_oled();

  // Warte eine Sekunde
  delay(1000); 
}