Home
Accesso / Registrazione
 di 

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:

    * 2x28 (low-end) e 8x24 (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.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Fabrizio87

una cosa peccato di questo

una cosa peccato di questo articolo che non si può ingrandire lo schema per vedere come viene collegato il display LCD.

ritratto di sorex

Schema

ritratto di SuperG72

In merito agli LCD...

...vedo citati frontplane e backplane...
...mi manca la teoria di come funzionano e si usano gli LCD così articolati (mi fermo ai normali LCD a n righe di caratteri).
Qualcuno mi sa indicare dove studiare?
Grazie!

ritratto di sorex

Teoria

ritratto di mingoweb

Ottimo progetto... Ho

Ottimo progetto... Ho realizzato qual cosa di simile con un 2 PIC... Se trovo lo schema elettrico ve lo posto, per costatare le differenze!

ritratto di giuskina

ringrazio anche io x la guida

Peccto aver fatto rompere lo schermo lcd. Al cane . Tutto rh.mandato

ritratto di stewe

Interessante come progetto.

Interessante come progetto. Sopratutto perchè si spinge nell'uso di un display non standard (il classico LCD alfanumerico), ma di un lcd specificamente studiato per questa applicazione.

ritratto di giuskina

quanti indicatori su

un display, indica proprio tutto

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 7 utenti e 71 visitatori collegati.

Ultimi Commenti