Cavolo ho sbagliato a caricare il codice!!!!!
scusami ma è stata una giornata impegnativa e mi si sta storcendo il cervello.....
quello era un a prova che volevo fare, dove ci stavo trafficando poco fa.... quello che ho partorito e che ci terrei analizzaste e il seguente:
#include <Wire.h> // libreria i2c
#include <SHT21.h> // libreria sensore temperatura/umidità
SHT21 sht; // definisco sensore
#include <Adafruit_GFX.h> // libreria fx display
#include <Adafruit_SH1106.h> // libreria display
#define OLED_RESET 4
Adafruit_SH1106 display(OLED_RESET); // definisco display
#include "Button2.h" //libreria gestione pulsanti Guglielmo
#define Ppiu 9 // definisco pulsante +
#define Pmeno 7 // definisco pulsante meno-
Button2 buttonPIU, buttonMENO; // nomino pulsanti
#define rc 10 // definisco relè
int gradi =21; // variabile valore iniziale set-point temperatura
int isteresi = 2;
void setup() {
Wire.begin(); //i2c
display.begin(SH1106_SWITCHCAPVCC, 0x3C); // inizializzo il display
display.clearDisplay();
display.setTextColor(WHITE); // e configuro colore
display.setTextSize(1); // e dimensione del testo
pinMode (Ppiu, INPUT); // pulsante piu ingresso
pinMode (Pmeno, INPUT); // pulsante meno ingresso
pinMode (rc, OUTPUT); // relè caldaia uscita
//inizializzo lib puls
buttonPIU.begin(Ppiu);
buttonPIU.setReleasedHandler(set_up);
buttonMENO.begin(Pmeno);
buttonMENO.setReleasedHandler(set_down);
}
void set_up(Button2& btn){
gradi++;
}
void set_down(Button2& btn) {
gradi--;
}
void loop() {
buttonPIU.loop();
buttonMENO.loop();
int temp = sht.getTemperature(); // lettura temperatura da sensore SHT e scrittura su variabile con numero intero
if (gradi>30) // se imposto temperature oltre 30 gradi
{gradi=10;}
if (gradi<10) // se imposto temperature inferiori a 10 gradi
{gradi=30;}
if (temp >= gradi) // se la temperatura è maggiore/uguale al setpoint
{
digitalWrite(rc,LOW); // disattivo il relè
}
if (temp <= (gradi-isteresi))
{
digitalWrite(rc,HIGH); // disattivo il relè
}
bool rcstato = digitalRead(rc); // lettura temperatura da sensore SHT
//pulisco il buffer del display
display.clearDisplay ();
//scrivo sul display
display.setCursor(0,0);
display.print(" -> GIGI STATION <-");
display.setCursor(0,15);
display.print("Temperatura: ");
display.setCursor(115,15);
display.print("C");
display.setCursor(10,34);
display.print("Set Temp: ");
display.setCursor(90,34);
display.print("C");
display.setCursor(0,52);
display.print("Riscaldamento: ");
display.setCursor(70,34);
display.print(gradi); // temperatura impostata
float dispTemp = sht.getTemperature();
display.setCursor(77,15);
display.print(dispTemp);
if (rcstato == false) // se la temperatura è maggiore/uguale al setpoint
{
display.setCursor(85,52);
display.print("Spento"); // e scrivo sul display
}
if (rcstato == true) // se la temperatura è minore del setpoint meno i gradi di isteresi
{
display.setCursor(85,52);
display.print("Attivo"); // e scrivo sul display
}
display.display(); // visualizzo il display
delay(100);
}
sono cotto scusami ancora...