Ho così deciso di realizzarlo con l'ausilio di un PIC, è stato il mio primo progetto con i PIC.
I componenti che ho scelto per la realizzazione sono stati:
- PIC16F886
- DS18S20
- DS1302
Il DS18S20 è una sonda di temperatura che integra già un convertitore A/D, cioè si può comunicare direttamente in digitale tramite il PIC con un protocollo chiamato 1-Wire, ed ha una precisione di 0.5°C più che sufficiente per la mia applicazione.
- DS18S20
- DS1302
Il DS1302 è un realtime clock che comunica con il PIC tramite un protocollo a 3 connessioni, è in grado di mantenere l'ora sempre aggiornata anche nel caso venga rimossa l'alimentazione utilizzando una batteria tampone da 3V (cambia automaticamente tensione di alimentazione quando manca quella primaria).
Infine il PIC16F886 è un PIC a 28 pin che contiene 256 byte di EEPROM che ho utilizzato per memorizzare i dati che mi servivano.
Per visualizzare le informazioni ho utilizzato un LCD 16x2.
Lo schema delle connessioni è il seguente (un po' disordinato...) schema
Mancano i collegamenti ad alimentazione e massa nell'LCD, comunque VSS è massa, VDD è l'aliementazione e VEE serve per il contrasto, va collegata ad un potenziometro tra massa e VDD.
Logicamente la tensione di alimentazione deve essere di 5V.
Vediamo ora il funzionamento.
In condizioni normali viene mostrata la seguente schermata
Infine il PIC16F886 è un PIC a 28 pin che contiene 256 byte di EEPROM che ho utilizzato per memorizzare i dati che mi servivano.
Per visualizzare le informazioni ho utilizzato un LCD 16x2.
Lo schema delle connessioni è il seguente (un po' disordinato...) schema
Mancano i collegamenti ad alimentazione e massa nell'LCD, comunque VSS è massa, VDD è l'aliementazione e VEE serve per il contrasto, va collegata ad un potenziometro tra massa e VDD.
Logicamente la tensione di alimentazione deve essere di 5V.
Vediamo ora il funzionamento.
Tenendo premuto per alcuni secondi il tasto 'Mode' è possibile accedere alla modifica delle impostazioni, per passare da un'impostazione all'altra si preme sempre il tasto 'Mode' fino a che non si ritorna alla schermata iniziale.
Per muoversi tra i valori delle singole impostazioni si usano i tasti 'Left' e 'Right' e per incrementare/decrementare un valore si usano rispettivamente i tasti 'Up' e 'Down'.
Ecco alcune schermate d'esempio
Impostazione dell'ora
Inizio della fascia oraria 1 (che corrisponde anche alla fine della fascia 2)
Inizio della fascia oraria 2 (che corrisponde anche alla fine della fascia 1)
Temperatura nella fascia 1
Temperatura nella fascia 2
Offset della sonda, ho notato che la sonda è piuttosto precisa, però nel caso abbia qualche problema si può correggere la temperatura che legge modificando opportunamente questo valore di offset, ad esempio se la sonda legge 25°C mentre la temperatura reale è di 24°C potete impostare l'offset a -1.
PCB
Ho realizzato il seguente pcb link
Qui trovate il link di come devono essere montati i componenti link
La sonda DS18S20 l'ho saldata ad un filo tripolare schermato lungo un paio di metri e poi l'ho incapsulata all'interno di una capsula di ottone che ho realizzato con il tornio in modo che non vi entri umidità e i contatti siano ben isolati.
La sonda è fatta così
Il terminale GND nel PCB va saldato dove c'è scritto S-, VDD invece va dove c'è S+ e DQ dove c'è la piazzola nel piedino 11 del PIC.
Tra le restanti piazzole libere collegate all'uscita del 7805 e a quelle collegate al PIC dove ci sono anche le resistenze da 10K, andranno saldati i pulsanti a pressione che servono per regolare le impostazioni.
Il componente E$31 è il trimmer da 1k.
I collegamenti rossi dovrete realizzarli con dei fili.
OSC è l'oscillatore al quarzo.
Lista componenti
Riporto di seguito la lista dei componenti per la realizzazione del PCB
1 integrato DS1302
1 integrato PIC16F886
1 integrato LM7805
1 integrato DS18S20
1 transistor 2N3904
1 LCD 16x2
5 pulsanti a pressione
1 zoccolo per integrato 28 pin
1 zoccolo per integrato 8 pin
1 trimmer da 1K
1 resistenza da 220 ohm
5 resistenze da 10k
5 resistenze da 4.7k
1 condensatore da 2200 uF
2 condensatori da 100 nF
1 batteria tampone da 3V
5 Diodi 1N4007
1 Trasformatore 220V - 12V (vi serve una tensione di 5V quindi potreste anche prenderlo da 220V - 5V io ho fatto con quel che avevo)
1 Relé a 5V
1 oscillatore al quarzo da 32.768K Hz
Programmare il PIC
Per programmare il PIC vi serve un programmatore, io utilizzo un clone del PIC Kit 3 acquistato per pochi euro su ebay dalla Cina che funziona egregiamente.
Per programmare il pic vi servirà innanzi tutto il programma che potete scaricare da qui e poi vi servirà MPLAB scaricabile gratuitamente dal sito della Microchip.
Una volta installato MPLAB avviatelo, cliccate su 'import' e selezionate l'hex linkato prima, poi selezionate come device il PIC16F886 e settate i configuration bits come in questa schermata.
È tutto...
Ecco un'immagine del PCB quasi montato e del termostato in funzione
Siccome questo circuito funziona con la 220V è potenzialmente PERICOLOSO!
Quindi non mi assumo nessuna responsabilità in caso di danni a cose o a persone, lo realizzate a vostro rischio e pericolo!
Quindi non mi assumo nessuna responsabilità in caso di danni a cose o a persone, lo realizzate a vostro rischio e pericolo!
Nessun commento:
Posta un commento