#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// oled (on Arduino NANO A4(SDA), A5(SCL))
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3D // Address 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const int THERMISTOR_pin = A0;
int Vo;
float R1 = 1000;
float logR2, R2, tKelvin, tCelsius, tFahrenheit;
// sensor calibration (steinhart - hart)
float c1 = 0.9919032802e-03, c2 = 1.876972149e-04, c3 = 1.387769818e-07; //oder
//float c1 = 0.8962019701e-03, c2 = 1.989983783e-04, c3 = 1.092791545e-07;
//////////////////////////////////////////////////////////////////////////
void setup() {
Serial.begin(9600); // initialize serial communication:
delay(10);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;)
; // Don't proceed, loop forever
}
// alte screen daten löschen
display.clearDisplay();
// weiße Schrift
display.setTextColor(WHITE);
// für void righttoleft()
}
//////////////////////////////////////////////////////////////////////////
void loop() {
Vo = analogRead(THERMISTOR_pin);
R2 = R1 * (1023.0 / (float)Vo - 1.0); // resistance of the Thermistor
logR2 = log(R2);
tKelvin = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2));
tCelsius = tKelvin - 273.15;
tFahrenheit = (tCelsius * 9.0) / 5.0 + 32.0;
Serial.print("Temperatur: ");
Serial.print(tCelsius, 1);
Serial.println(" °C");
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(30, 1);
display.print("Start");
display.setCursor(30, 25);
display.print("Taste");
display.setCursor(16, 45);
display.print("dr");
display.write(129);
display.print("cken!");
display.display();
delay(5000);
display.setTextColor(WHITE); // Draw white text
display.clearDisplay();
display.cp437(true);
display.setTextSize(2); // Draw 2X-scale text
display.setCursor(10, 12);
display.print("Vorheizen"); //, 1
display.setTextSize(1); // Underscore
display.setCursor(9, 23);
display.print("__________________");
display.setCursor(12, 23);
display.print("__________________");
display.setTextSize(1);
display.setCursor(8, 40);
display.print("Temperatur wird ab");
display.setCursor(18, 53);
display.print("60");
display.write(248);
display.print("C angezeigt.");
display.setTextSize(1);
display.setCursor(98, 0);
display.print(tCelsius, 0);
display.write(248); //167od. 248 = °
display.print("C");
display.display();
delay(5000);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(22, 12);
display.print("Standby");
display.setTextSize(1); // Underscore
display.setCursor(20, 23);
display.print("______________");
display.setCursor(24, 23);
display.print("______________");
display.setTextSize(1);
display.setCursor(34, 40);
display.print("ACHTUNG!!!");
display.setCursor(16, 54);
display.print("Platte ist Heiss");
display.cp437(true); // XXX°C (in top/right corner)
display.setTextSize(1);
display.setCursor(98, 0);
display.print(tCelsius, 0);
display.write(248); //167od. 248 = °
display.print("C");
display.display();
delay(5000);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(4, 6);
display.println("Temperatur:");
display.setTextSize(3);
display.setCursor(12, 22);
display.print(tCelsius, 1);
display.setTextSize(2);
display.cp437(true);
display.write(248); //167od. 248 = °
display.print("C");
display.display();
delay(5000);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(16, 12);
display.print("Cooldown");
display.setTextSize(1); // Underscore
display.setCursor(15, 23);
display.print("________________");
display.setCursor(17, 23);
display.print("________________");
display.setTextSize(1);
display.setCursor(34, 40);
display.print("ACHTUNG!!!");
display.setCursor(16, 54);
display.print("Platte ist Heiss");
display.cp437(true); // XXX°C (in top/right corner)
display.setTextSize(1);
display.setCursor(98, 0);
display.print(tCelsius, 0);
display.write(248); //167od. 248 = °
display.print("C");
display.display();
delay(5000);
}