Salve a tutti.
Alcuni mesi fa a casa mia, i miei familiari ed in particolare mio figlio, si sono accorti e mi fecero notare che il flusso dell’acqua in uscita dai rubinetti ed in particolare dalla doccia, non era più quello di una volta. Dato che il problema si manifestava solamente al secondo piano, abbiamo addebitato l’inconveniente alla scarsa distanza in altezza alla quale si trovano i serbatoi, soltanto tre metri, da dove l’acqua arriva per caduta. A tutto ciò, col passare degli anni, evidentemente si è aggiunta anche la inevitabile formazione di incrostazioni e di calcare sulle pareti interne delle tubazioni, con conseguente riduzione della portata e della pressione all’uscita dei vari utilizzatori.
Per risolvere il problema, abbiamo deciso di installare in mansarda, in prossimità dei serbatoi, un motorino di piccola potenza con annessa pompa a girante, comandata naturalmente dall’ormai onnipresente presscontrol. I risultati sono stati immediati, dai vari servizi ora l’acqua usciva con notevole pressione a cui col tempo gradualmente non eravamo più abituati. Purtroppo già l’indomani si era manifestata anche una grave anomalia, infatti, la guarnizione del boiler, sotto l’azione continua esercitata dalla pressione, ha iniziato a cedere, con conseguente gocciolamento.
Di andare a sostituire la guarnizione, non me la sentivo proprio, sia perché il posto in cui si trova il boiler, avrebbe richiesto doti da contorsionista, sia perché temevo l’insorgenza di altre perdite nell’impianto ormai un tantino vecchiotto. La soluzione più immediata, è stata ovviamente disattivare motore e presscontrol, sperando che anche il gocciolamento del boiler si arrestasse e fortunatamente così è stato.
Ho visitato quindi alcuni negozi del settore, sperando di trovare una soluzione al mio problema, che fosse allo stesso tempo di facile attuazione e possibilmente non troppo costosa, ma niente da fare. Però durante queste ricerche, in uno di questi negozi ho visto un dispositivo chiamato “flussometro” ed è stato in quel momento che ho immaginato ed intravisto la soluzione al mio problema.
Il flussometro, almeno quello che ho usato io, si presenta come un manicotto di ottone credo, lungo 7 cm circa, di ¾ di pollice, con una girante al suo interno posta eventualmente in rotazione dal flusso d’acqua in transito. All’esterno, solidalmente avvitato sul manicotto, vi è un sensore di “Hall” che senza alcun contatto meccanico, ma solo per effetto del campo magnetico di cui è dotata la girante interna, restituisce all’uscita un segnale elettrico di tipo impulsivo, il cui numero di impulsi è proporzionale al flusso d’acqua in transito all’interno del manicotto. I tre fili rosso, nero e giallo provenienti dal sensore, sono collegati rispettivamente al positivo ed al negativo di alimentazione a 5 V ed il filo giallo da cui esce il segnale impulsivo collegato al contatore, pin 3 del PIC.
Tale dispositivo, collegato opportunamente ad un contatore d’impulsi elettronico, mi avrebbe permesso di attivare il motorino, solo e soltanto quando nell’impianto idraulico si fosse verificata l’apertura di un rubinetto, valvola, doccia, etc. Non solo, coi rubinetti chiusi, la pressione presente nelle tubazioni a motore spento, sarebbe stata quella di prima, cioè quella data dalla sola caduta dovuta all’altezza dei serbatoi. Inoltre, in caso di avaria al motore, oppure per mancanza di energia elettrica, l’acqua sarebbe fluita lo stesso ma alla pressione di prima, cioè quasi dimezzata, ma comunque disponibile ai vari sevizi.
Ricordo ai meno esperti come me, che al contrario, dove è montato il presscontrol, anche a motore spento l’impianto rimane sempre sotto pressione, grazie alla quale attraverso un pressostato interno al presscontrol, il motorino è attivato o disattivato automaticamente.
Comunque, non mi rimaneva che escogitare un qualche circuito, in grado di leggere e quindi di contare, gli impulsi provenienti dal flussometro, e di conseguenza attivare opportunamente un relè che comandasse l’avvio o l’arresto del motorino. Manco a dirlo, la scelta è ricaduta come prevedibile, su un microcontrollore prodotto dalla Microchip, il PIC 16F84 . Fantastico chip ormai obsoleto ma idoneo al nostro scopo, nel cui interno sono implementate varie funzioni, ma noi lo utilizzeremo solo come contatore d’impulsi. Il circuito elettrico è molto semplice ed è realizzato su una basetta di vetronite dalle dimensioni di 5x5 cm circa. L’alimentazione prevista può essere compresa tra 12 e 15 VDC circa, tanto nel circuito come si vede dallo schema elettrico è previsto un integrato, il 7805 che stabilizza la tensione a 5 VDC, idonea per alimentare sia il chip che il relè di attivazione del motorino.
Il funzionamento è molto semplice e non vi è nulla di trascendentale, da software ho implementato un contatore d’impulsi che si attiva ogni mezzo secondo circa, allo scadere di tale tempo, un led sarà attivato per 50 mS circa, generando un impulso luminoso che scandisce l’esecuzione del programma nel PIC e ne evidenzia il funzionamento. Se il valore misurato dal contatore supera i due impulsi in mezzo secondo, allora immediatamente sarà attivato il relè che chiuderà il circuito di alimentazione a 230 VAC avviando il motorino. Ciò accade praticamente subito, cioè mezzo secondo dopo l’apertura di un rubinetto dell’impianto idraulico. Ovviamente all’apertura del rubinetto gli impulsi che ho misurato provenienti dal flussometro sono molti di più e cioè 80 circa, ma io ho impostato a due gli impulsi necessari per l’attivazione, per essere certo di avviare il motorino nel più breve tempo possibile.
Nel momento in cui invece l’ipotetico rubinetto sarà chiuso, operazione che non avviene istantaneamente, ma in un tempo ragionevole di un secondo circa, gli impulsi contati provenienti dal flussometro si ridurranno gradualmente durante la chiusura, da 80 circa fino a zero. Ebbene in questa seconda fase, il numero di impulsi previsti da software, necessari a disattivare il motorino non saranno due come nella prima fase ma 40. Ciò significa che il motorino sarà disattivato durante la brevissima fase di chiusura del rubinetto, ancor prima che sia completamente chiuso, e quindi non essendoci nessuna valvola di non ritorno, la pressione nell’impianto tornerà al valore basso di prima, salvaguardando tubazioni e guarnizioni varie.
Non ho altro da aggiungere, se questa mia esperienza può esservi utile, a fine articolo troverete il file ASM, corredato da molti commenti che ne facilitano la lettura e l’interpretazione; e per finire anche il file HEX col quale potrete direttamente programmare il PIC. Se poi dovessero servirvi altre informazioni chiedete pure, cercherò di essere più esaustivo.
Saluti. Franco M. it9dpx #135
File ASM:
- FLUSSOMETRO 10/06/2017</sub>
- PROVATO OK T=590 MS; LED ON 50 MS.
- ACCENDO LED OGNI DUE PASSAGGI
- it9dpx - #135 - francesco
- A MOTORE SPENTO, SE APRENDO IL RUBINETTO IL TMR0 RILEVA ATTRAVERSO
- IL FLUSSOMETRO ALMENO DUE IMPULSI (A SCELTA 5) IN 590 mS, ALLORA
- ACCENDE IL MOTORE.
- A MOTORE ACCESO, SE IL TMR0 RILEVA ATTRAVERSO IL FLUSSOMETRO MENO
- DI 40 IMPULSI IN 590 mS, ALLORA SPEGNE IL MOTORE.
PROCESSOR 16F84 RADIX DEC INCLUDE "P16F84.INC"
ERRORLEVEL -302 ERRORLEVEL -305
CBLOCK 0X10 PAUSA_LAMPO P1 P2 P3 ENDC
__CONFIG 3FF1H ORG 0X00
VIA_1
BSF STATUS,RP0 MOVLW 00101000B MOVWF OPTION_REG MOVLW 00000000B MOVWF TRISB MOVLW 00010000B ;IN RA4 MOVWF TRISA BCF STATUS,RP0
VIA
CLRF TMR0 ; AZZERAMENTO CONTATORE CALL PAUSA MOVFW TMR0 ; LETTURA CONTATORE BTFSC PORTB,3 ; SALTA A MOTORE SPENTO GOTO MOTORE_ACCESO
MOTORE_SPENTO
ADDLW 255-2 ; ci sono più di DUE impulsi? BTFSS STATUS,C GOTO MOT_OFF ; no GOTO MOT_ON ; si
MOTORE_ACCESO
ADDLW 255-40 ; ci sono più di 40 impulsi? BTFSC STATUS,C GOTO MOT_ON ; si BCF PORTB,3 ; out off CALL PAUSA ; PAUSA DOPO LO SPEGNIMENTO GOTO VIA
MOT_ON
BSF PORTB,3 ; out on GOTO VIA
MOT_OFF
BCF PORTB,3 ; out off GOTO VIA
- ...............
PAUSA ; 50 MS
MOVLW .255 MOVWF P1 MOVLW .64 MOVWF P2 ; ACCENDO LED OGNI DUE PASSAGGI INCF PAUSA_LAMPO BTFSC PAUSA_LAMPO,0 BCF PORTB,4; ACCENDE LED (INVERTITO)
PAUSA_3
DECFSZ P1 GOTO PAUSA_3 DECFSZ P2 GOTO PAUSA_3 BSF PORTB,4 ;SPEGNE LED DOPO 50 MS
- --------------------
- PAUSA; 540 MS CON 4 MHZ; 255;191;3
MOVLW .255 MOVWF P1 MOVLW .191 MOVWF P2 MOVLW .3 MOVWF P3
PAUSA_2
DECFSZ P1 GOTO PAUSA_2 DECFSZ P2 GOTO PAUSA_2 DECFSZ P3 GOTO PAUSA_2 RETURN
END
File HEX:
- 020000040000FA
- 10000000831628308100003086001030850083126E
- 1000100081011B20010886191128FD3E031C1928A7
- 100020001728D73E0318172886111B200828861585
- 10003000082886110828FF30910040309200900A6D
- 1000400010180612910B2228920B22280616FF3058
- 100050009100BF30920003309300910B2D28920B3A
- 080060002D28930B2D28080048
- 02400E00F13F80
- 00000001FF