Ciao a tutti, da nuovo iscritto , dopo una breve presentazione eccomi qui a chiedere gia il vostro aiuto. con Arduino vorrei realizzare un sketch per gestire una cella di maturazione per impasti lievitati. ho provato a buttare giu qualcosa, gira ma non come vorrei.quando lo accendo parte dalla sezione lievitazione poi va a raffreddamento e li rimane. invece a me serve che parta dall'inizio , ossia ci sono 4 fasi : raffreddamento che deve durare 2 ore, poi maturazione per x ore , poi pre-lievitazione per 2 ore e lievitazione per 3 ore. i tempi adesso sono messi provvisori ,durante il tempo di attesa deve poter eseguire il pezzo di loop per mantenere temperatura e umidità adeguata. non essendo pratico non trovo l'errore, chiedo aiuto a voi per compilare questo mio progetto.grazie
#include <LiquidCrystal.h>
#include "DHT.h"
#define DHTPIN 8
// 8 è il pin di Arduino a cui collego il sensore di temperatura
#define DHTTYPE DHT11
// dht11 è il tipo di sensore che uso
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// connessione display (pin)
const int tout = 7;
const int hout = 6;
unsigned long time;
void setup() {
lcd.begin(20, 4);
// imposto il tipo di display (colonne, righe)
lcd.print("Temperatura");
lcd.setCursor(0,1);
lcd.print("Umidita'");
lcd.setCursor(0,2);
lcd.print("Ciclo");
lcd.setCursor(0,3);
lcd.print("Tempo");
pinMode(tout, OUTPUT);
pinMode(hout, OUTPUT);
time=millis();
}
void loop() {
time=millis();
int t = dht.readTemperature();
int h = dht.readHumidity();
// posiziono il cursore alla colonna 14 e riga 0
lcd.setCursor(14, 0);
lcd.print(t);
lcd.setCursor(14, 1);
lcd.print(h);
do
if (t > 25)
{
digitalWrite(tout, LOW);
lcd.setCursor(14, 4);
lcd.print("acceso");
}
else {
digitalWrite(tout, HIGH);
lcd.setCursor(14, 4);
lcd.print("spento");
lcd.setCursor(6, 2);
lcd.print("Raffreddamento");
}
while ( time > 60000 );
do
if (t > 25)
{
digitalWrite(tout, LOW);
lcd.setCursor(14, 4);
lcd.print("acceso");
}
else {
digitalWrite(tout, HIGH);
lcd.setCursor(14, 4);
lcd.print("spento");
lcd.setCursor(6, 2);
lcd.print("Maturazione ");
}
while ( time > 80000 );
do
if (t > 25)
{
digitalWrite(tout, LOW);
lcd.setCursor(14, 4);
lcd.print("acceso");
}
else {
digitalWrite(tout, HIGH);
lcd.setCursor(14, 4);
lcd.print("spento");
lcd.setCursor(6, 2);
lcd.print("Pre-lievitaz.");
}
while ( time > 100000 );
do
if (t > 25)
{
digitalWrite(tout, LOW);
lcd.setCursor(14, 4);
lcd.print("acceso");
}
else {
digitalWrite(tout, HIGH);
lcd.setCursor(14, 4);
lcd.print("spento");
lcd.setCursor(6, 2);
lcd.print("Lievitazione ");
}
while ( time > 120000 );
}