Citazione:
Originalmente inviato da ElNonino Alcuni suggerimenti di valenza generale ed indipendenti dal hw o linguaggio di programmazione usato:
- quando è necessario leggere una tensione (anche quella fornita da un sensore) utilizzando un AD converter, sia esso integrato nel microprocessore od anche esterno è bene usare un circuito d'ingresso (con partitore) simile a questo:
il condensatore C1 andrebbe posto fisicamente il più vicino possibile al relativo piedino d'ingresso analogico del convertitore.
L'insieme R3-C1 è un primitivo filtro bassa basso che garantisce una tensione stabile ed a bassa impedenza al convertitore AD e filtra eventuali spike.
- per ottenere una buona precisione di lettura è anche consigliato usare come Vref per il convertitore AD (se è disponibile un pin dedicato del micro) quella fornita da uno 'zener' apposito, ottimo per i convertitori AD a 12 bit usarne uno da 4,096V in modo che ogni step del convertitore corrisponda ad 1mV o multipli precisi dati dal partitore d'ingresso. Questo trucco consente anche di usare interi per le conversioni e l'elaborazione dei valori ottenuti anzichè con virgola che nei piccoli micro rallenta molto il tempo d'esecuzione. Naturalmente nel caso di ingresso ratiometrico (potenziometro o sensore con uscita equivalente) va benissimo usare i +5V di alimentazione del micro.
- per ottenere un dato stabile ed attendibile sul display è anche bene filtrare il segnale del ADC utilizzando una semplice media mobile su più campionamenti, se poi la media mobile è eseguita su un multiplo di 2 ci sono trucchetti (che se vi interessa dirò in altro intervento) per renderla estremamente veloce e semplice da implementare. - non vedo troppo bene per andore la regolazione 'brutale' ON/OFF della ventola, meglio sarebbe renderla proporzionale alla temperatura usando una semplice regolazione PD o PI se non proprio PID, con poche righe di codice eviteresti la continua oscillazione della stessa.  |
Infatti, l'unico problema che ho appena notato è questo: dopo qualche secondo che il motore dc è acceso, il display e il led di arduino, oltre al led del modulo di alimentazione esterno, cominciano a sfarfallare
Lo script funziona alla grande ma forse c'è qualcosa da modificare nel progetto, per renderlo più stabile.