Come progettare un termostato utilizzando un microcontrollore Freescale

Come progettare un termostato utilizzando un microcontrollore Freescale

Progettare un termostato utilizzando un microcontrollore Freescale. Un termostato regola la temperatura di un sistema, una stanza, un edificio, mantenendola al valore desiderato. Esistono vari modi di misurare la temperatura in un sistema elettronico, ad esempio l’utilizzo di un termoresistore, termocoppia ed in alcuni casi di circuiti integrati che forniscono una tensione analogica, una corrente o un valore digitale direttamente proporzionale alla temperatura.

Per controllare la temperatura un termostato digitale viene di solito collegato ad una unità HVAC.

Il termostato fornisce tensione ai terminali di riscaldamento, ventilazione e condizionamento dell’aria (HVAC), indicando allo HVAC cosa dovrebbe essere attivato basandosi sul valore corrente della temperatura del sistema.

Il design di riferimento di un termostato è un esempio di come un termostato dovrebbe essere progettato sfruttando a proprio vantaggio le caratteristiche dell’MC9S08LL16. Le caratteristiche principali di questo controller che lo rendono ideale per applicazioni LCD a basso consumo energetico sono:

    * Basso consumo di energia con configurazioni LCD che supportano operazioni nel range dei micro-ampere, fino a un minimo di 1.5 µA nel termostato;
    * LCD a 32 pin, fino a 196 segmenti con 8 backplane ed LCD a 18 pin multiplexed con GPIO che fornisce notevole flessibilità a questo modulo;
    * qualsiasi pin del display LCD può essere frontplane o backplane, e questo semplifica il routing dell’hardware e permette di utilizzare LCD diversi con la stessa scheda;
    * modulo Time Of Day (TOD) con interrupt di un secondo e un quarto di secondo. Possiede anche un modulo di comparazione che permette di effettuare il wake up della MCU ogni 64 secondi;
    * il modello di lampeggiamento a basso consumo rende possibile il lampeggiamento del display senza attivare il controller in modo da risparmiare energia;
    * ADC a 12 bit che può essere attivato dal modulo TOD;
    * attivazione dopo stop, che può avvenire in base al tempo o ad un evento da tastiera
Thermostat Block Diagram

Termostato Low-End e High-End

low-end-high-end-thermostat

Caratteristiche e vantaggi

Il modello di riferimento del termostato possiede le seguenti caratteristiche:

    * accuratezza di 0.1°C;
    * calendario con giorno della settimana, ora e minuti per la versione low-end, e data, ora e minuti per la versine high-end;
    * temperatura visualizzata in °C o °F;
    * impostazioni programmabili per riscaldamento e raffreddamento;
    * modalità run & hold programmabili;
    * modalità di attivazione della ventola e modalità automatica;
    * connessioni HVAC standard;
    * Switch del sensore e terminali a vite per misurare il consumo energetico;
    * indicatori HVAC LED;
    * Controllo di contrasto per la versione high-end.

Le principali caratteristiche della famiglia MC9S08LL utilizzate in questo progetto si riferimento sono:

    * 2×28 (low-end) e 8×24 (high-end) LCD display per visualizzare la temperatura, la data e l’ora. Ogni pin LCD può essere utilizzato come frontplane o backplane semplificando così il layout;
    * una modlità di lampeggiamento dello LCD per visualizzare diversi messaggi senza attivare la MCU utilizzando un tempo di lampeggiamento di un secondo;
    * ADC a 12 bit che fornisce maggiore accuratezza alla misurazione della temperatura utilizzando un termoresistore;
    * un modulo Time of day (TOD) in grado di attivare la MCU con tempistiche che vanno da 1/4 di secondo fino a 64 secondi;
    * ADC attivabile via hardware per iniziare la conversione dopo che TOD attiva la MCU;
    * modalità Stop 3 che permette di far funzionare TOD e LCD utilizzando un consumo di corrente pari a 6 µA per la versione high-end e 1.5 µA per la versione low-end;
    * oscillatore esterno a basso consumo che può essere utilizzato in modalità stop2 o stop3 per fornire una sorgente di clock accurata al TOD. Il cristallo interno a 32.768 KHz non necessita di resistori o condensatori per il suo funzionamento.

Il MC9S08LL16 è collegato al seguente hardware:

    * sensore di temperatura;
    * due diversi LCD;
    * 5 pulsanti push;
    * 4 switch;
    * uscite HVAC.

Il design di riferimento funziona con un cristallo esterno a 32.768 KHz. Uno dei vantaggi della famiglia MC9S08LL è che non sono necessari componenti esterni per questa configurazione a cristallo. Il connettore standard BDM è anche disponibile nella PCB per programmare qualsiasi progetto. Questo design di riferimento utilizza una tensione comune di +24AC che si può trovare anche in altri termostati. Possiede anche terminali a vite per una semplice integrazione con equipaggiamento HVAC.

Il codice del termostato è strutturato in modo che i moduli software che comunicano con le periferiche MCU sono indipendenti dai moduli che devono elaborare le informazioni. I moduli utilizzati come interfaccia per le periferiche MCU sono noti col nome di Hardware Abstraction Layer (HAL) mentre i moduli che comunicano con HAL e passano le informazioni al main.c sono noti come Hardware Indipendente Layer (HIL).

High Level Flow Diagram

Questo diagramma mostra che il termostato all’avvio configura tutte le periferiche e le variabili prima di iniziare a lavorare.

Dopo la loro configurazione, viene effettuata una misurazione iniziale della temperatura per avere un primo valore da poter visualizzare. Successivamente viene avviato un loop infinito che imposta il microcontrollore in modalità stop dove resterà per la maggior parte del tempo.

Schema del termostato con microcontrollore Freescale

themostat-schematic

Per iniziare ad utilizzare il termostato è necessario utilizzare batterie di tipo AA o collegare una fonte di alimentazione esterna. La fonte esterna può variare da 6 a 12 V DC. Il display LCD mostrerà la temperatura, il giorno della settimana, le ore ed i minuti, il riscaldamento, raffreddamento e la modalità hold.

thermostat_lcd_details

A – Temperatura
B – Ore
C – Riscaldamento
D – Raffreddamento
E – Livello della batteria
F – Giorno della settimana
G – Modalità Hold.

8 Comments

  1. giuskina 23 febbraio 2011
  2. stewe 23 febbraio 2011
  3. giuskina 28 febbraio 2011
  4. Fabrizio87 20 febbraio 2011
  5. sorex 21 febbraio 2011
  6. SuperG72 21 febbraio 2011
  7. mingoweb 21 febbraio 2011

Leave a Reply