// Not finished
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T, Tc;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
float Tmax = 0;
float Tmin = 999;
int SCREENState=1; //para que inicie encendida la pantalla
int buttonPin=4;
int buttonNew;
int buttonOld=1;
int dt=100;
void setup() {
display.begin(SSD1306_SWITCHCAPVCC,0x3C);
display.clearDisplay();
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop() {
buttonNew=digitalRead(buttonPin);
if(buttonOld==0 && buttonNew==1){
if (SCREENState==0){
display.ssd1306_command(SSD1306_DISPLAYON); // Turn on the display
SCREENState=1;
}
else{
display.ssd1306_command(SSD1306_DISPLAYOFF); // Turn off the display
SCREENState=0;
}
}
buttonOld=buttonNew;
delay(dt);
Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
Tc = T - 273.15;
if(Tc>Tmax){
Tmax=Tc;
}
if(Tc<Tmin){
Tmin=Tc;
}
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(100, 1);
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(3);
display.print("C");
display.setCursor(1, 2);
display.print(Tc);
display.setTextSize(2);
display.setCursor(10, 28);
display.print("Min");
display.setCursor(75,28);
display.print("Max");
display.setCursor(1,46);
display.print(Tmin);
display.setCursor(66,46);
display.print(Tmax);
display.display();
delay(250);
}