//OLED-Display #include //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 // Bibliotheken einbinden #include // Bibliotheken einbinden #include // 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, " Ein"); // 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); }