Generare segnale pwm, per "inseguitore" di temperatura

Salve, come da titolo, avrei bisogno di un aiuto per creare un sistema che insegua una certa temperatura target impostata, leggendo una temperatura da sonda k e variando un segnale pwm in modo inversamente proporzionale alla temperatura rilevata (il ventilatore più va veloce, più fa aumentare la temperatura).
Mi è chiaro come leggere la temperatura dalla sonda, ma mi sfugge come legare in modo inverso la temperatura al segnale pwm per la ventola.
Vi ringrazio in anticipo per l'aiuto.

Se usi un "map" fra i due valori, puoi anche fare in modo che il secondo valore sia inverso, dando per primo il valore piu elevato invece che l'opposto ... map() - Arduino Reference

Per cui se fai il map fra gli estremi della temperatura e gli estremi del PWM che ti servono, mettendo per primo il valore PWM piu alto e per secondo il piu basso ... :wink:

Grazie, domani farò alcune prove e vi farò sapere.

Ho fatto un po' di prove, mi ritrovo con la ventola che a seconda della temperatura accelera o diminuisce, però volevo impostare il sistema in modo che cerchi di mantenermi proprio una temp che gli do io, ad esempio, da t ambiente arrivo a 200 gradi e poi la ventola rallenta, se poi scende, la ventola aumenta fino a ristabilirla e cosí via.
Mi manca qualcosa, ma non riesco a rendermi conto.

A te serve una regolazione PID ... prova a fare una ricerca sia su Google che qui sul forum italiano dove, proprio per la regolazione della temperatura, se ne è più volte parlato.

Guglielmo

Proprio quello che "temevo" :), l'ho studiata tempo addietro, stò facendo delle ricerche per implementarla, in caso chiedo chiarimenti qua.
Grazie ancora

Ci sono dei termostati industriali che fanno tutto loro , ad esempio uno si può usare con RTD, TC o PTC, ha il PID e pilota un attuatore lineare 4-20mA , quindi devi solo progettare un Arduino con ingresso 4-20mA e uscita ventola PWM
Il modello è il TKS937123000 della ERO Electronic