Pagina 1 di 1

Lettura sensore "con isteresi"

MessaggioInviato: 4 dic 2021, 23:12
da caesar753
Salve a tutti,

scrivo questo post perché ho un problema "concettuale" e non riesco a trasporlo a livello logico-informatico: mi sono costruito un cronotermostato con arduino, funziona bene e fa quello che voglio ma ho un problema con la lettura del sensore di temperatura. Ho un sensore di temperatura DS18B20 che restituisce un numero a due cifre decimali, lo converto in int con l'opportuno arrotondamento (<0.50 -> n; >=0.50 ->n+1) e lo faccio confrontare con la temperatura impostata t, finché le due temperature sono distanti funziona bene, il problema è quando la lettura del sensore si avvicina a quella impostata: il valore letto, infatti, comincia ad oscillare tra t-1 e t (immagino perché la temperatura letta oscilli tra t.49 e t.50 o giù di lì) il che fa scattare continuamente il relay che attacca/stacca la caldaia.

Come faccio ad avere una certa "isteresi" o comunque una soglia di trigger più ampia? Ho provato a fare la media ma non ha funzionato granchè, ho provato anche ad aggiungere/togliere un certo valore prefissato, ma questo non fa che spostare più giù o più su il problema...

Grazie a chi risponderà

Re: Lettura sensore "con isteresi"

MessaggioInviato: 4 dic 2021, 23:54
da elfo
Pseudocodice
Codice: Seleziona tutto
Thi=20.2 //soglia superiore
Tlo=19.8 //soglia inferiore Thi-Tlo = isteresi
Tt=Tlo //imposto la soglia di scatto

Do loop

Ta=read_ta //leggo temperatura ambiente
If Ta < Tt //fa freddo
(istruzione per accendere la caldaia) // accendo caldaia
Tt=Th //imposto la soglia di scatto al valore superiore
else  //fa caldo
(istruzione per spengere la caldaia) //spengo caldaia
Tt=Tl //imposto la soglia di scatto al valore inferiore

end loop


Leggi anche (prima voce trovata con google "hysteresis arduino")

Hysteresis
https://forum.arduino.cc/t/hysteresis/506190

Re: Lettura sensore "con isteresi"

MessaggioInviato: 4 dic 2021, 23:59
da stefanopc
Secondo me prima di tutto devi rallentare la frequenza con cui il micro compie il controllo e utilizzare magari una media su molte letture ad esempio.
Una lettura al secondo e ogni cento fai la media e il confronto.
Puoi introdurre anche una piccola isteresi per limitare gli interventi allontanando la soglia esattamente come succede nei comparatori analogici con la reazione positiva.
Altrimenti c'è il sistema Pid che con un micro non è eccessivamente complicato da implementare.
In rete e anche su EY si trova molto materiale per studiare e affrontare l'argomento.
https://www.electroyou.it/vis_resource. ... zio&id=166
Ciao

Re: Lettura sensore "con isteresi"

MessaggioInviato: 5 dic 2021, 1:47
da caesar753
Foto Utenteelfo il tuo pseudocodice è stato illuminante, grazie!