|
Micro-GT termocontroller Per terrari e acquari |
|
Identificazione progetto
progetto 6 |
autore |
|
note |
Termocontroller acquari e terrari |
|
mirkomusto1@gmail.co |
Il sensore di temperatura e' il noto LM35. Sulla Micro-GT mini verra' alloggiato sia il PIC16F876A che il 18F2550 |
Premessa
Per gli appassionati di acquari o terrari questo circuito risultera' molto utile, e' infatti in grado di mantenere costante la temperatura entro un range piuttosto stretto rispetto ad un setpoint impostato.
La segnalazione avviene tramite la barra LED onboard della Micro-GT Mini che potra' essere istallata, previo opportuno inscatolamento, all'interno del habitat artificiale che stiamo cercando di riprodurre.
Schema elettrico con descrizione
Download schema elettrico
barra LED
Figura 1
Nello schema elettrico di figura 1, integrato nella Micro-GT, notiamo la presenza di un ponte resistivo a 8 vie con il primo piedino che corrisponde al comune. Se dovesse mancarvi il ponte per irreperibilita' e' possibile montare delle resistenze da 1/4 di watt in posizione verticale e creando poi con reofori e saldature il ritorno comune come visibile nella foto.
Figura 2
La freccia rossa indica la posizione nel PC della rete resistiva simulata con otto resistenze il cui comune e' creato in fili saldato oppure usando i pezzi dei reofori di avanzo. Il comune e' in questo caso l'ultimo foro a destra, quello piu' vicino al margine del PCB.
I valori resistivi dipenderanno dal tipo di LED montati, ma teniamo presente che la porta del PIC 16F876 non sopporta piu' di 25mA e che la tensione applicata a livello logico alto e' TTL ovvero +5V.
Tipicamente, con dei LED di nuova fattura sara' sufficiente lasciare passare circa 1 o 2 milliampere. Ogni valore compreso tra 220ohm e 1kohm sara' accettabile e cambiera' al massimo la luminosita' dei LED stessi. Il calcolo corretto si fa togliendo il valore V-gamma del led impiegato quando in conduzione, dalla tensione TTL presente all'uscita del PIC diviso il valore in milliampere consigliato dal databook del led che intenderemo usare.
Questa formula mi restituira' il valore in ohm di ogni singola resistenza da impiegare nella rete resisteva che andiamo a costruire.
Circuito stampato descrizione
Lo stampato e' semplicemente quello della Micro-GT mini che potete avere semplicemente aprendo con Eagle i file Eagle che ottenete scaricando il file scheletro da cui potete partire per fare le vostre pubblicazioni in questo foro. Lo si riporta solo per dovere di formato dell'articolo.
Figura 3
Nel Layout notiamo nel lato superiore, dentro al
rettagolo rosa, i LED, la rete resistiva, e il conettore strip line
maschio a 8 posizioni in cui si dovra' innestare il cavetto flat da riportare sul
PORTB del PIC, ovvero sul conettore evidenziato in giallo. Il pin RB0 e' quello
che nella serigrafia e' indicato con S10 e dovra' per coerenza essere collegato
al LED 1, ovvero quello piu' a destra. (una eventuale inversione del flat non
compromette la funzionalita' di questo semplice esercizio.
Figura 4
E' bene fissare le saldature dei cavetti flat usando un po di colla a caldo. Saranno piu' solidi e maneggevoli.
Apparato sensoriale
il sensore di temperatura utilizzato e' il noto LM35 prodotto dalla casa Texas instruments, il cui databook e' scaricabile dal link sottostante.
Il data book mostra le due modalita' principali di applicazione del dispositivo.
Applicazione tipica nel range di temperatura da +2 gradi centigradi a la modalita' full range per le temperature comprese tra -55 gradi e +150 gradi. La modalita' fullrange richiede anche tensioni negative che non abbiamo presenti nel nostro hardware. Come leggiamo nell'immagine la conversione volt->gradi e' immediata dato che esiste la relazione 10mV=1C .
Nella nostra applicazione botanica o
ittica la funzionalita' piu' adatta risulta essere la prima.
Firmware
La fase di debug del programma e' stata realizzata con RealPic simulator, che e' uno strumento semplice efficace ed intuitivo. Il salvataggio del progetto della simulazione e' scaricabile da questo link (funzionera' solo se sul vostro PC e' istallato il RealPic simulator).
figura 5
download progetto di simulazione Realpic Simulator
La presenza del tasto A settato normal 1 -> pressed 0, ovvero con la restinza in pullup, consente il cambio di effetto luminoso da normale supercar a boucing (rimbalzi).
Potete scaricare il file zippato dell'intero progetto in Mplab al segunte indirizzo-> download effetto luci supercar con Micro-GT mini
/*****************************************************************
* Termoregolatore per terrari e acquari *
* G-Tronic Robotic *
* 19/05/2012 *
* Questo programma è sviluppato per PIC16F876A *
* piattaforma Micro-GT mini *
* realizzato da Mirko Musto *
* *
****************************************************************/
#include <pic.h>
#include "delay.h"
#include "ADC.h"
#include "settaggiADC.h"
#define smin 1
#define smax 195
//Routine principale...
void main(){
settaggiADC();
unsigned int valore1;
unsigned int incr;
ADCON1 = 0b10000000;
incr=(smax-smin)/8;
while(1){
valore1=leggi_ad(0);
if((valore1>=smin)&&(valore1<=smin+incr)){
PORTB=0b00000000;
}
if((valore1>=smin+incr)&&(valore1<=smin+2*incr)){
PORTB=0b00000001;
}
if((valore1>=smin+2*incr)&&(valore1<=smin+3*incr)){
PORTB=0b00000011;
}
if((valore1>=smin+3*incr)&&(valore1<=smin+4*incr)){
PORTB=0b00000111;
}
if((valore1>=smin+4*incr)&&(valore1<=smin+5*incr)){
PORTB=0b00001111;
}
if((valore1>=smin+5*incr)&&(valore1<=smin+6*incr)){
PORTB=0b00011111;
}
if((valore1>=smin+6*incr)&&(valore1<=smin+7*incr)){
PORTB=0b00111111;
}
if((valore1>=smin+7*incr)&&(valore1<=smin+8*incr)){
PORTB=0b01111111;
}
if((valore1>=smin+8*incr)&&(valore1<=smax)){
PORTB=0b11111111;
}
}
}
-----------------------------------------------------------------------------------------------------------------------------
file fettaggiADC.h
--------------------------------------------------------------------------------------------------------------------------------
void settaggiADC(){
TRISA=0XFF;
TRISB=0;
TRISC=0;
PORTB=0;
PORTC=0;
}
-------------------------------------------------------------------------------------------------------------------------------------
file ADC.h con la funzione di acquisizione analogica e assegnazione del valore convertito in numero intero
-------------------------------------------------------------------------------------------------------------------------------------
/**************************************************
* *
* MODULO PER
* *
* chiamare la fz leggi_ad(n); *
* dove n: numero del canale in ingresso *
* *
* *
************************************************/
int leggi_ad(char canale)
{
int valore;
ADCON0 = (canale << 3) + 0xC1; // enable ADC, RC osc.
DelayUs(10); //Ritardo per dare modo all'A/D di stabilizzarsi
ADGO = 1; //Fa partire la conversione
while(ADGO)
continue; //Attende che la conversione sia completa
valore=ADRESL; //Parte bassa del risultato
valore= valore + (ADRESH<<8); //Parte alta del risultato
return(valore);
}
Scarica il programma compilato, file
hex, Termoregolatore per terrari e acquari per Micro-GT mini ->
download
Il precedente codice,
scritto in C con l'ambiente Mplab della microchip.
Potete vedere un filmato dell'effetto supercar nel seguente filmato caricato su youtube, putroppo quella notte non avevo sottomano un pulsante da collegare a RA0, quindi non si vede il cambio di effetto. Fatelo voi durante le vostre prove.
Questo progetto è ridistribuibile secondo i termini di licenzaCreative Commons Attribuzione-Condividi allo stesso modo 3.0 Italia
Note aggiuntive
Visita i siti web sviluppati da Marco Visentini:
http://www.bb-yewilliam.it/ (il bed end brekfast di Jenny per chi fosse di passaggio a Padova)
http://www.amministrazionibugno.it/ (l'agenzia di amministrazione condominiale dell'amico Massimiliano)