Progetto di Microcontrollori
Cronotermostato per CaldaiaCronotermostato per Caldaia
Obiettivo del ProgettoObiettivo del ProgettoRealizzazione di un dispositivo elettronico capace di gestire Realizzazione di un dispositivo elettronico capace di gestire ll’’accensione di una caldaia mediante il controllo della accensione di una caldaia mediante il controllo della temperatura ambiente di un locale, seguendo delle fasce temperatura ambiente di un locale, seguendo delle fasce orarie di accensione programmabili dallorarie di accensione programmabili dall’’utente.utente.
Caratteristiche principaliCaratteristiche principaliMisurazione della temperatura mediante sonda digitale Misurazione della temperatura mediante sonda digitale DS18B20 con protocollo di comunicazione 1DS18B20 con protocollo di comunicazione 1--WireWireInterfaccia utente formata da un display alfanumerico e Interfaccia utente formata da un display alfanumerico e tasti funzionetasti funzioneUtilizzo del serial realUtilizzo del serial real--time clock (RTC) DS1307 con time clock (RTC) DS1307 con protocollo di comunicazione Iprotocollo di comunicazione I22C e oscillatore esterno C e oscillatore esterno compensato in temperatura DS32KHzcompensato in temperatura DS32KHzInterfaccia di potenza formata da un relInterfaccia di potenza formata da un relèè deviatore da 16 Adeviatore da 16 AModalitModalitàà di funzionamento OFF, Manuale, ONdi funzionamento OFF, Manuale, ONMicrocontrollore della serie PIC 16F917Microcontrollore della serie PIC 16F917
Il CircuitoIl Circuito
PIC PIC 16F91716F917
Caratteristiche Principali:Caratteristiche Principali:88--Bit MicrocontrollerBit Microcontroller44 44 –– PinPinOSC interno OSC interno 8MHz8MHzProgram Memory 8KBProgram Memory 8KBSRAMSRAM 352B352BEEPROMEEPROM 256B256BPorte I/OPorte I/O 3535Timers 8/16bit 2/1Timers 8/16bit 2/1CCPCCP 22ADC 10 BitADC 10 Bit 11ICSP (Programmazione)ICSP (Programmazione)35 Istruzioni di base35 Istruzioni di base
DS18B20DS18B20
Struttura interna sensore :Struttura interna sensore :
Package e configurations pin :
DS18B20DS18B20
DS18B20DS18B20
Protocollo 1Protocollo 1--WireWirePiPiùù sensori sullo stesso filo:sensori sullo stesso filo:
Esempio controllo presenza sensore:
Routine di Reset:Routine di Reset:
RESET:RESET:IMPUTIMPUTCLRF PRESENZACLRF PRESENZAOUTPUTOUTPUTPAUSA 500 PAUSA 500 IMPUTIMPUTPAUSA 70 PAUSA 70 BTFSS PORTC,DQBTFSS PORTC,DQINCF PRESENZA,1INCF PRESENZA,1PAUSA 430 PAUSA 430
RETLW 0RETLW 0
Protocollo 1Protocollo 1--WireWire
Lettura della TemperaturaLettura della TemperaturaLettura
Temperatura
Invio comando di RESET
Invio comando Skip Rom(CCh)
Attendi 750 mS
Invia comando ConvertiTemp (44h)
Invio comando di RESET
Invio comando Skip Rom(CCh)
Invio comando Leggi Temp(BEh)
Lettura della Temperatura
Invio comando di RESET
Separo i dati letti in parteintera, decimale e segno
Stampa la temperatura suldisplay
Fine
Segno.bit0= 1
Complemento a 2
SI
NO
DS1307DS1307
Schema a blocchi:
Package :
DS1307DS1307
DS1307DS1307
Memoria interna DS1307:
DS1307DS1307Oscillatore esterno DS32KHz (32,768 KHz):
Accurate to ±4 Minutes/Year (-40°C to +85°C)Accurate to ±1 Minute/Year (0°C to +40°C)
DS32KHzDS32KHz
Bus IBus I22CCPiPiùù dispositivi sullo stesso bus:dispositivi sullo stesso bus:
Timing diagram:Timing diagram:
Bus IBus I22CC
Bus IBus I22CCScrittura:
Lettura:
Bus IBus I22CCModalità mista:
Leggere i dati dal DS1307Leggere i dati dal DS1307Leggere un
Dato
Ricevo un bit
Bit ricevuti= 8
Invia not ACK
Return
NO
SI
Ricevereancora byte?
SI
Invia Stop
I2C Start
Invia comando letturae indirizzo da dove
leggere
Inizio lettura
Invia ACK
NO
Inviare i dati dal DS1307Inviare i dati dal DS1307I nv ia r e u n
D a to
M e tto i l d a to da s c r iv e re inun r e g is t r o a s c o r r im e n t o
In v io d i u n b i t
B ittr a s m e s s i= 8
R ic e v i A C K
I2C S t a r t
I nv ia c o m a n d o d is c r it tu r a e in d ir iz z o d ado v e in iz ia r e a s c r iv e r e
N O
I nv ia r ea n c o r aby te ?
S I
S I
I2C S to p
R e t u r n
N O
Display LCD 20X4Display LCD 20X4
Display LCD 20X4Display LCD 20X4
Interfaccia UtenteInterfaccia Utente
Accesso al menAccesso al menùù mediante mediante ll’’ausilio dellausilio dell’’interrupt sulla porta interrupt sulla porta RB0 del PIC (dove connesso il RB0 del PIC (dove connesso il pulsante MENUpulsante MENU’’/SET)/SET)
PossibilitPossibilitàà di scegliere cosa di scegliere cosa impostare mediante i pulsanti impostare mediante i pulsanti INCR e MENUINCR e MENU’’/SET;/SET;Il pulsante INCR scorre il menIl pulsante INCR scorre il menùùIl pulsante MENUIl pulsante MENU’’/SET accede al /SET accede al sottomensottomenùù selezionatoselezionato
Menù 1:
I Pulsanti:
Interrupt eMenù
Evento di interruptavvenuto
Stampa "Menù 1" suLCD
Tasto"MENU'/SET"
Premuto?
Tasto "INC"Premuto?
Entra nel menùselezionato dal
cursore
SI
NO
NOSposta il cursoreper selezionare ilmenù successivo
SI
Fine?
NO
Return daInterrupt
SI
Stampa laschermata
principale su LCD
RiattivaInterrupt
Interfaccia UtenteInterfaccia Utente
Da questo menDa questo menùù èèpossibile impostare sia possibile impostare sia ll’’ora che la dataora che la dataPremendo il tasto Premendo il tasto MENUMENU’’/SET si conferma /SET si conferma la cifra e sposta il la cifra e sposta il cursore su quella cursore su quella successivasuccessivaPremendo il tasto INCR Premendo il tasto INCR si incrementa la cifra si incrementa la cifra selezionata in modo selezionata in modo ciclicociclicoQuando si conferma Quando si conferma sullsull’’ultima cifra della ultima cifra della data i dati vengono data i dati vengono salvati in memoriasalvati in memoria
Menù 2:
Interfaccia UtenteInterfaccia Utente
Interfaccia UtenteInterfaccia UtenteMenù 2
Stampa su LCDil Menù 2, l'ora
e la data attuale
Tasto"MENU'/SET"
Premuto?
Tasto "INCR"Premuto?
Salvo e spostoil cursore sullacifra successiva
SI
NO
Ultima cifra?
Ritorno al"Menù 1"
Salvo i datiimpostati nel
DS1307
SI
NO
NOIncrementa la
cifra selezionatadal cursore
SI
Da questo menDa questo menùù èè possibile possibile impostare tre programmi di impostare tre programmi di accensione distribuiti nellaccensione distribuiti nell’’arco arco delle 24Hdelle 24HPremendo il tasto MENUPremendo il tasto MENU’’/SET /SET si inizia a modificare si inizia a modificare ll’’accensione selezionata accensione selezionata successivamente, permette di successivamente, permette di confermare la cifra e passare confermare la cifra e passare alla successivaalla successivaPremendo il tasto INCR si Premendo il tasto INCR si incrementa la cifra selezionata, incrementa la cifra selezionata, oppure passa alloppure passa all’’accensione accensione successiva per poi andare su successiva per poi andare su finefine
Interfaccia UtenteInterfaccia Utente
Menù 3:
Menù 3
Stampa su LCD il menù 3 e laprima accensione salvata in
eeprom
TastoMENU'/SETpremuto?
Inizio modificaaccensioneselezionata
Tasto INCRpremuto?
NO
SI
NOTasto INCRpremuto?
TastoMENU'/SETpremuto?
Siamo suFine?
Ritorno alMenù 1
SI
NO
Incrementocifra
selezionata
SI
NO
NO
Ultima cifra?
SI
Salva e passaalla successiva
NO
Salva i dati in EEPROMe permette di
midificare un'altraaccensione
SI
Carico i dati dell'accensionesuccessiva dalla memoria e
li stampo su LCD
SI
Interfaccia UtenteInterfaccia Utente
Da questo menDa questo menùù èè possibile possibile settare il valore della settare il valore della temperatura ambiente da un temperatura ambiente da un range che va da 15 a 30 range che va da 15 a 30 °°CCPremendo il tasto MENUPremendo il tasto MENU’’/SET /SET si conferma la temperatura si conferma la temperatura visualizzata e la salva in visualizzata e la salva in memoriamemoriaPremendo il tasto INCR Premendo il tasto INCR incrementa la temperatura in incrementa la temperatura in modo ciclico nel range sopra modo ciclico nel range sopra citatocitato
Interfaccia UtenteInterfaccia Utente
Menù 4:
Interfaccia UtenteInterfaccia UtenteMenù 4
Stampa su LCD il Menù 4 e ilvalore di temperatura
precedentemente salvato inmemoria
TastoMENU'/SETpremuto?
Tasto INCRpremuto?
NO
SI Salva il datoin memoria
Ritorno alMenù 1
NO
Incremento ilvalore dellatemperatura
Temp=30?
SI
NO
Riporta il valoredella temperaturaal minimo (15°C)
SI
Mediante lo switch in figura Mediante lo switch in figura èèpossibile usufruire di tre possibile usufruire di tre funzioni ovvero:funzioni ovvero:
1.1. OFFOFF il dispositivo spegne la il dispositivo spegne la caldaia senza effettuare caldaia senza effettuare nessun controllonessun controllo
2.2. PROGPROG il dispositivo accende la il dispositivo accende la caldaia secondo le fasce orarie caldaia secondo le fasce orarie tenendo conto della tenendo conto della temperatura ambiente temperatura ambiente impostataimpostata
3.3. ONON il dispositivo accende la il dispositivo accende la caldaia senza controllare le caldaia senza controllare le fasce orarie ma controllando fasce orarie ma controllando solo la temperatura ambiente solo la temperatura ambiente impostataimpostata
Interfaccia UtenteInterfaccia Utente
LL’’interfaccia di potenza interfaccia di potenza èècostituita da un relcostituita da un relèèdeviatore da 16 A 250 V il deviatore da 16 A 250 V il cui stato cui stato èè normalmente normalmente aperto. La bobina ha una aperto. La bobina ha una tensione nominale di 12 Vtensione nominale di 12 V
Esso viene pilotato da un Esso viene pilotato da un transistore (2N2222) usato transistore (2N2222) usato come interruttorecome interruttore
Interfaccia di PotenzaInterfaccia di Potenza
La tensione di alimentazione La tensione di alimentazione della scheda della scheda èè di 12 V di 12 V stabilizzati per poter stabilizzati per poter alimentare il relalimentare il relèè, al suo , al suo interno interno èè situato un regolatore situato un regolatore di tensione LM7805 che di tensione LM7805 che abbassa e stabilizza la abbassa e stabilizza la tensione sui 5 V per poter tensione sui 5 V per poter alimentare tutti gli altri alimentare tutti gli altri dispositivi della scheda tra cui dispositivi della scheda tra cui anche il microcontrolloreanche il microcontrollore
Alimentazione della schedaAlimentazione della scheda
Start
Setto impostazioni oscillatore,direzionalità delle porte e
attivazione interrupt
Inizializzo il display LCD e stampola schermata principale
Invio comando ConvertiTemp.
Leggo i dati dal DS1307 e liconverto
Confronto oraattuale con
programmazioni salvate
Setto un Flag
Switch inposizionemanuale?
NO
SI
Leggo laTemp
NO
Switch inposizione OFF?
NO
SI
Stampo OraData e Temp
su LCD
Temp > Soglia
SpegniCaldaia
SI
AccendiCaldaia
NO
Flag= 1?
SI
NO
Leggo laTemp
SI
Main Loop
Il primo passo x la Il primo passo x la realizzazione del PCB realizzazione del PCB èè stato quello di stato quello di disegnare lo disegnare lo stampato del circuito stampato del circuito utilizzando il software utilizzando il software EagleEagle
Realizzazione PCBRealizzazione PCB
Il secondo passo Il secondo passo èèstato quello di stato quello di stampare la stampare la maschera del maschera del circuito sul foglio circuito sul foglio lucido da utilizzare lucido da utilizzare nel processo di nel processo di fotoincisionefotoincisione
Realizzazione PCBRealizzazione PCB
Il processo di fotoincisione Il processo di fotoincisione ha consistito nellha consistito nell’’esporre la esporre la basetta presensibilizzata, basetta presensibilizzata, sulla quale sulla quale èè stata posta la stata posta la maschera, ai raggi UV maschera, ai raggi UV emessi da un bromografo emessi da un bromografo artigianale per un tempo di artigianale per un tempo di 11’’ e 05e 05’’’’..
Realizzazione PCBRealizzazione PCB
Una volta effettuata la Una volta effettuata la fotoincisione si fotoincisione si èè passato passato allo sviluppo immergendo allo sviluppo immergendo la basetta in una vaschetta la basetta in una vaschetta contenente della soda contenente della soda caustica. Questo processo caustica. Questo processo asporta la pellicola asporta la pellicola fotosensibile colpita dai fotosensibile colpita dai raggi UV nel processo raggi UV nel processo precedenteprecedente
Realizzazione PCBRealizzazione PCB
A questo punto la basetta A questo punto la basetta èè stata immersa in una bacinella stata immersa in una bacinella contenente del cloruro ferrico che intacca il rame in eccesso contenente del cloruro ferrico che intacca il rame in eccesso lasciando inalterate le piste che formano il circuitolasciando inalterate le piste che formano il circuito
Realizzazione PCBRealizzazione PCB
Realizzazione SchedaRealizzazione Scheda
Realizzazione SchedaRealizzazione Scheda
Realizzazione SchedaRealizzazione Scheda
Realizzazione SchedaRealizzazione Scheda