Ardu Oven RKE01.2014

ArduOven….

Il dolce forno per l’elettronica!

Genesi

Sia che si voglia accelerare qualche processo chimico o fisico (i.e. asciugatura) o testare una elettronica a temperatura elevata può far comodo disporre di un “ambiente moderatamente caldo” (30-90°C), di ridotte dimensioni. Il primo istinto può essere l’utilizzo del forno di casa, cosa in verità sconsigliabile per due motivi: quasi nessun dispositivo in commercio a costi contenuti permette di stabilizzare la temperatura al di sotto dei 140-160°C così come il rischio di contaminare con sostanze tossiche un luogo altrimenti pensato per la cottura di cibi. Come fare dunque?

La meccanica

Ardu.Oven2305.2134_html_51689fe6Illustrazione 1: Vista posteriore del fornetto. Notare la coibentazione aggiunta, le uscite del cavo di controllo, di alimentazione generale nonché il foro passante (chiuso con un tappo di sughero) per i cavi di controllo ed alimentazione dei dispositivi in test dentro al forno.

Un punto di partenza a buon mercato può essere il riutilizzo di uno dei tanti fornetti per toast / brioches, spesso recuperabili in soffitta piuttosto che a qualche mercatino di paese. Detti apparati sono in genere pensati per brevi periodi di funzionamento, nell’ordine dei minuti e per questo sono privi di isolamento termico nonché della regolazione della temperatura. Ecco quindi come il primo intervento sia proprio quello di rivestire la cella tramite un poco di materiale isolante (quello per edilizia va benissimo) al fine sia di ridurre i consumi elettrici durante i test sia di ridurre le temperature sul contenitore a valori non pericolosi (inferiori ai 40°C). Il punto più caldo rimarrà lo sportello frontale in vetro, ma per questo c’è poco da fare, salvo ricordarsi magari tramite opportuna etichettatura (vedi illustrazione), di avere un minimo di cura nel toccarlo dopo lunghi test alle temperature più elevate.

I sensori e il riscaldatore

I forni per brioches o tostapane sopra menzionati sono dotati di una resistenza variabile fra i 500 e 1000W, per poter scaldare velocemente il cibo e portarlo a “tostatura”. Tutta questa potenza è per noi eccessiva e complicherebbe il controllo alle basse temperature che invece vogliamo realizzare. Un valore indicativo di 20-40W per litro di volume della cella è più che adeguato per i nostri scopi una volta che la stessa sia un poco coibentata come sopra citato. Nel mio caso, con 3,5l di capacità, ho scelto una resistenza da 100W solitamente pensata per impianti di refrigerazione (funzione sbrinamento), che permette buona regolazione e velocità di risposta al tempo stesso. Per pilotare questo carico direttamente con un microcontrollore, viene usato un SSR (solid state relay) che garantisce un funzionamento silenzioso ed una elevata affidabilità. Se possibile, impiegare le versioni “zero crossing” che, accendendo il carico solo al passaggio per lo zero della tensione di rete, minimizzano i disturbi prodotti.

Una volta definito l’elemento riscaldante, occorre aggiungere al sistema un sensore di temperatura adeguato. Una buona scelta per costo, robustezza meccanica, precisione e facile disponibilità, sono le sonde note come Pt100, il cui nome richiama il loro valore di resistenza a 0°C. L’elemento sensibile è in platino ed è realizzato secondo due differenti tecnologie:

  • termoresistenze a film sottile

  • termoresistenze a filo

Quelle a film si realizzano deponendo sotto vuoto un sottilissimo strato di platino su un substrato di ceramica di piccole dimensioni. A seconda della realizzazione e del contenitore coprono il campo di temperatura da -150°C a 600°C.

Per un sensore Pt100 la variazione di temperatura di 1°C provoca la variazione della resistenza di 0,384Ω, per cui anche un minimo errore nella misura della resistenza, dovuto ad per esempio alla resistenza di contatto del connettore del sensore o ai suoi cavi di collegamento, può provocare un rilevante errore nella misura della temperatura. Per questo, i sensori a 2 fili sono in disuso, il collegamento a 3 fili è il più diffuso in campo industriale, mentre quello a 4 fili è utilizzato per misure in cui è richiesta la maggiore precisione.

Ardu.Oven2305.2134_html_m5b5457d7Illustrazione 2: Vista interna del forno, con in evidenza la nuova resistenza riscaldante e sullo sfondo il sensore di temperatura

Per il nostro progetto, la versione a tre fili, la più comune, è adeguata agli obiettivi prefissi.

Nell’utilizzo di questi sensori occorre anche tenere presente come la corrente di misura che scorre attraverso il sensore produca calore: ad esempio una corrente di 1mA forzata su una resistenza da 100Ohm (un aPt100 a 0°C) genera una potenza (calore) di 100 µW. Se l’elemento sensibile non è in grado di dissipare questo calore con estrema facilità, si registrerà una temperatura artificialmente più alta. Questo effetto può essere contenuto sia utilizzando sensori di grandi dimensioni sia assicurandosi che il contatto con il suo ambiente sia buono. Parimenti interessante è vedere l’impatto della stabilità della corrente di misura sulla precisione di lettura. Imponendo ad esempio una corrente di 1mA si otterrà un segnale di soli 100mV a 0°C. Data la scarsa “sensibilità” del sensore prima citata 0,384Ohm/°C , intesa come variazione di resistenza per salto di temperatura, un errore di 100 µV nella misura di tensione causerà un errore di circa 0.4°C nella misura della temperatura. Per cui, a sua volta, un errore di 1 µA della corrente forzata produrrà un errore di 0.4°C nella misura della temperatura.

Di seguito l’andamento della loro resistenza al variare della temperatura nel campo di temperature di nostro interesse:

TEMP.

0

1

2

3

4

5

6

7

8

9

0

100.00

100.39

100.78

101.17

101.56

101.95

102.34

102.73

103.12

103.51

10

103.90

104.29

104.68

105.07

105.46

105.85

106.24

106.63

107.02

107.40

20

107.79

108.18

108.57

108.96

109.35

109.73

110.12

110.51

110.90

111.29

30

111.67

112.06

112.45

112.83

113.22

113.61

114.00

114.38

114.77

115.15

40

115.54

115.93

116.31

116.70

117.08

117.47

117.86

118.24

118.63

119.01

50

119.40

119.78

120.17

120.55

120.94

121.32

121.71

122.09

122.47

122.86

60

123.24

123.63

124.01

124.39

124.78

125.16

125.54

125.93

126.31

126.69

70

127.08

127.46

127.84

128.22

128.61

128.99

129.37

129.75

130.13

130.52

80

130.90

131.28

131.66

132.04

132.42

132.80

133.18

133.57

133.95

134.33

90

134.71

135.09

135.47

135.85

136.23

136.61

136.99

137.37

137.75

138.13

100

138.51

138.88

139.26

139.64

140.02

140.40

140.78

141.16

141.54

141.91

Vediamo ora un semplice circuito che permette di interfacciare il sensore con un generico convertitore analogico/digitale con campo di tensione di 0-5V.

Ardu.Oven2305.2134_html_1c9ea5aaIllustrazione 3: Schema suggerito per interfacciare il sensore PT100 con Arduino

Il circuito suggerito è abbastanza classico e prevede una lettura a ponte della resistenza del sensore seguito da uno stadio di amplificazione per ottenere una risoluzione di circa 0,25°C per bit (su un AtoD a 10bit). Per quanto prima espresso, è importante che il circuito sia stabile e preciso, pertanto tutte le resistenze sono almeno all’1%. L’alimentazione a 5V è prelevata direttamente dalla scheda Arduino di controllo, mentre l’operazionale non è critico, purché possa lavorare a tensioni così basse ed avere un adeguato swing dell’uscita. Le versione “rail to rail” sono ovviamente per questo consigliate. Considerando di usare un convertitore a 10bit, si può rappresentare la relazione fra temperatura e dato digitale come segue:

Ardu.Oven2305.2134_html_m34bb0905Illustrazione 4: Relazione lineare fra temperatura e bit in uscita convertitore, in alto la formula di conversione

Dato che la relazione fra le due grandezze è lineare, è possibile esprimerla analiticamente tramite la formula riportata nel grafico nella forma °C = α BIT(AtoD) + β. I due coefficienti così determinati (a=0,256; b=-66), sono quelli che si useranno nel codice per riconvertire il dato acquisito in temperatura.

Il controllore: Arduino

Ardu.Oven2305.2134_html_m184b4fa2Illustrazione 5: Display di controllo del forno

Per la sua diffusione, costo limitato, semplicità e flessibilità d’uso ed in previsione di futuri sviluppi, un’ottima scelta di controllore è il noto Arduino Uno®. Sulla scheda base sono installati due espansioni (shield): una generica piastra di sviluppo su cui trova posto il circuito di interfaccia del sensore prima illustrato ed una scheda display 16×2 con cinque pulsanti di comando.

Il display è impiegato per informare l’utente dello stato del sistema, fornendo informazioni quali: tempo dall’avvio, temperatura impostata, temperatura corrente nel forno, tendenza e raggiungimento dell’obiettivo.

I cinque pulsanti invece, servono a introdurre i comandi al nostro controllore (set temperatura, start/stop) come da illustrazione seguente:

Ardu.Oven2305.2134_html_195ce6ddIllustrazione 6: Pulsanti di controllo e loro funzione

I due pulsanti esterni fanno alzare o diminuire la temperatura impostata a passi di 10°C, mentre i due centrali a passi di 1°C. Quello nel mezzo, avvia e ferma il controllo.

Il programma di controllo

Il codice di controllo proposto, realizzato sicuramente con poca raffinatezza ed al solo fine esemplificativo, è liberamente scaricabile (e modificabile!) per usi non commerciali dal sito della rivista all’indirizzo: http://www.radiokitelettronica.it alla voce “downloads” ed è rilasciato sotto licenza Creative Common BY-NC-SA

Senza entrare nei dettagli di ogni riga, vediamo il flusso operativo ed i blocchi funzionali principali.

Ardu.Oven2305.2134_html_m41216872Illustrazione 7: Flow chart del programma di controllo e visualizzazione

Le prestazioni

Una valutazione delle prestazioni globali, statiche e dinamiche del sistema è mostrata nella figura sottostante che riporta la temperatura in cella confrontata con quella impostata dal controllore.

Ardu.Oven2305.2134_html_23ba99f5Illustrazione 8: In blu la temperatura impostata, in verde quella in cella

Per realizzare questa valutazione, ho impiegato una opportuna versione del programma di controllo in cui la temperatura obiettivo viene variata da 20°C a 90°C e viceversa ogni ora, a passi di 10°C. Appaiono chiaramente le sovra elongazioni della temperatura nei transitori, causate dall’abbinamento di un sistema di controllo molto semplice e del tipo ON/OFF ad un sistema con elevata dinamica e tempo di ritardo nella risposta.

Una volta raggiunta la temperatura di setpoint, nelle fasi stabilizzate quindi, la regolazione è molto regolare e precisa entro +/-1°C.

Chiosa sull’output dei dati

Il programma provvede ad ogni iterazione del loop a trasmettere sulla seriale/USB alcuni parametri significativi dello stato del sistema. Generalmente è possibile monitorare in tempo reale questi dati tramite il programma di Arduino.

Ma se volessimo registrarli per un uso successivo oppure averne un grafico in tempo reale?

Un aiuto risolutivo viene dallo script Python “readSerial.py” realizzato da Big Nikoladzre e facilmente reperibile in rete. Questo programmino, facilmente personalizzabile “prende” il flusso di dati in arrivo dalla board Arduino e li scrive su di un comune file di testo.

Per vedere i dati in tempo reale ed in formato testuale, si può usare il comando da terminale: tail -f ‘+outputFile+’ dove “outputFile” è il nome che abbiamo deciso di attribuire al file che raccoglie i dati dal controllore.

Possiamo però fare di più. E’ possibile impiegare il programma KST (kst-plot.kde.org/) che ci permette con pochi clic del mouse di vederli in formato grafico ed anche in tempo reale. KST non si limita alla rappresentazione, ma offre evolute funzioni matematiche e di analisi, FFT e statistica comprese.

Conclusioni e prospettive

Il progetto presentato è sicuramente piacevole da realizzare ed il suo costo contenuto unito alla facile reperibilità delle parti impiegati lo rendono appetibile sia per scopi didattici sia per una miriade di usi pratici. Il circuito si presenta flessibile ed adattabile ad altre applicazioni, così come in una “futura puntata” vedremo come migliorare il controllo di temperatura, specie nei transitori. Buon lavoro e sperimentazione a tutti dunque!

Bibliografia

www.arduino.cc

it.wikipedia.org/wiki/Termoresistenza

www.epcb.it/guida_pt100.php

creativecommons.org/licenses/by-nc-sa/3.0/it/deed.it

kst-plot.kde.org/

aug-roma.wikidot.com/guide:grafici-con-kst

3 Comments

Leave a Reply to iw4blg Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.