Ho trovato in rete molti tutorial sul 555 ma tutti parlano di configurazioni diverse da quella in oggetto, che non so decifrare.
In pratica il circuito serve a valutare la bagnatura della superficie del sensore (che è una schedina con due piste a pettine, scollegate fra loro) mediante il NE555 che restituisce un segnale in frequenza variabile a seconda del livello di bagnatura. Può restituire anche un segnale in corrente o in voltaggio.
Per il momento vorrei capire come funziona il circuito, poi lavorerò sul codice per valutare la frequenza (o il voltaggio, che è più semplice).
In modalità voltage output ti ritrovi con una tensione compresa tra 0.2V e 1V al pin Signal rispetto a gnd che è collegato a common.
Come funziona non lo so, sempre che funzioni. Quello che spiega è che in base a quanto è bagnato il sensore cambia la frequenza di oscillazione del NE555, e questa te la ritrovi nel pin open collector "dis", che devi collegare a vdd tramite una resistenza che nell'esmpio ha valore di 10K (non critico).
Se non ho capito male quel circuito funziona così.
Dal micro esce un segnale con una certa frequenza. In caso di sensore asciutto, non transita corrente da esso ed il segnale passa attraverso R4 ed è leggibile come segnale con frequenza a 50 Hz. Se invece il sensore è bagnato, il segnale passa anche attraverso R5 ed esce dal circuito a 11 kHz. Leggendo la variazione di frequenza tra 50 Hz e 11 kHz penso si possa interpolare il grado di umidità delle foglie.
in effetti il modo migliore per capire se funziona è provare...solo che mi mancano alcuni componenti.
Se invece dei 3 Volts di alimentazione usassi i 5V di arduino (o ancora meglio i 3.3V) cosa succederebbe? Da quello che sono riuscito a capire sul funzionamento del 555 dovrebbero cambiare i valori di frequenza, che a me non interessano più di tanto, ciò che interessa è la variazione di questi valori.
E tanto per gradire mi mancano pure i due condensatori C3 e C4 da 4.7 uF, ma credo (soprattutto spero) che non siano indispensabili, almeno per capire se funziona.
in effetti il modo migliore per capire se funziona è provare...solo che mi mancano alcuni componenti.
Se invece dei 3 Volts di alimentazione usassi i 5V di arduino (o ancora meglio i 3.3V) cosa succederebbe? Da quello che sono riuscito a capire sul funzionamento del 555 dovrebbero cambiare i valori di frequenza, che a me non interessano più di tanto, ciò che interessa è la variazione di questi valori.
E tanto per gradire mi mancano pure i due condensatori C3 e C4 da 4.7 uF, ma credo (soprattutto spero) che non siano indispensabili, almeno per capire se funziona.
Ora mi studio un po' il metodo pulseIn().
Grazie ancora.
Emanuele
Il chip più comune non le versioni Cmos o altro cioè l'ic NE555 funziona con tensioni tra 5 e 15-16V
si, quella versione del 555 inizia a funzionare da 1,5v in sù, quindi se vuoi dei livelli ttl-compatibili da dare in pasto a pulsein devi alimentarlo a 5v.
in pratica sembra un vco (un oscillatore controllato in tensione) che regola la frequenza con 2 resistenze (e i condensatori) di cui una fissa e l'altra creata dal pcb a pettine e dall'umidità, che formano un partitore di tensione no?
però forse in teoria potresti fare la stessa cosa con un 74c14 il pcb a pettine ed un condensatore.
Mi sta venendo un dubbio sui condensatori, in particolare sul C5 che deve essere un condensatore a "film", non so se quello che ho postato poco sopra vada bene.
L'integrato 74C14 lo sto usando per fare il debouncing hardware di 4 pulsanti che gestiscono un menù. Come si potrebbe utilizzare con il sensore? L'uso che ne ho fatto mi fa pensare che mi potrebbe dare un segnale binario (on-off) ma non un segnale continuo da analizzare. Al limite andrebbe bene pure un sensing binario, sarebbe più semplice da implementare (forse) ma andrebbe calibrato correttamente.
Va bene il condensatore che hai. Io comunque preferirei la lettura della tensione alla frequenza.
0.2Volts sensore asciutto, fino a 1Volts sensore totalmente bagnato, anche più semplice il codice basta usare analogRead.
il 74c14 è un trigger di schmitt e ci puoi costruire un oscillatore, con un condensatore ed una resistenza.
la formula per il calcolo della frequenza è:
1.2
f=---------
R * C
Da questo , giocando sul valore di R (con il sensore) dovresti riuscire a produrre una frequenza variabile e proporzionale alla R rel sensore.
resonance:
Se invece dei 3 Volts di alimentazione usassi i 5V di arduino (o ancora meglio i 3.3V) cosa succederebbe? Da quello che sono riuscito a capire sul funzionamento del 555 dovrebbero cambiare i valori di frequenza, che a me non interessano più di tanto, ciò che interessa è la variazione di questi valori.
come dice ratto93 quello nello schema è la versione a 3,3V; bisogna capire quanto assorbe il circuitino per sapere se lo puoi alimentare con i 3,3V di Arduino; in tal caso devi abolire il regolatore LT, la R3 e C2; se la corrente è "troppa" puoi lasciare questi componenti e alimentare tutto con i 5V di Arduino; quell'LT non è altro che un regolatore di tensione.
puoi usare qualsiasi condensatore di quella capacità, quelli a film sono più stabili, ma per fare una prova va bene qualsiasi cosa.
E tanto per gradire mi mancano pure i due condensatori C3 e C4 da 4.7 uF, ma credo (soprattutto spero) che non siano indispensabili, almeno per capire se funziona.
C3 e C4 servono per impedire che scorra corrente alternata attraverso i due sensori, ma, anche in questo caso puoi provare senza; solo che poi serviranno di sicuro, visto che si potrebbe falsare la lettura.
Ciao, come sai con l'inglese non me la cavo tanto, probabilmente ho tradotto male questa frase: The current through the sensing grid is AC. The additional 4.7 uf capacitors in series with the grid assures that leakage currents do not flow through the grid. :~
Sono riuscito a far funzionare il sensore. Ho utilizzato la configurazione in frequenza e la lettura l'ho fatta con pulseIn(). Per i condensatori C3 e C4 ne ho usati due da 2.2 uF.
Inoltre non avevo messo la resistenza da 10K tra Vcc ed il segnale di frequenza che va ad arduino.
Ottengo un valore di circa 85 per sensore completamente bagnato e circa 110 per sensore completamente asciutto.
Ora sto compilando il codice per l'apertura del relè che comanda l'elettrovalvola: sto pensando di fare un ciclo while che apra il relè se il valore letto è superiore ad una certa soglia (per esempio 100) finchè non si arrivi ad esempio a 90.
Durante il ciclo while il codice si interrompe ma non mi interessa, anzi in un certo senso è pure meglio perchè una corretta bagnatura foliare è fondamentale.
L'unica cosa è che dovrei mettere una variabile di tempo massimo di apertura oltre il quale uscire dal ciclo while, perchè potrei avere magari un problema all'elettrovalvola e non avere quindi la nebulizzazione. Magari questo errore lo poteri rendere visibile all'esterno con l'accensione di un led.
Quale potrebbe essere il metodo migliore per gestire l'operazione di nebulizzazione?
A tempo fisso, cioè per esempio apri l'elettrovalvola per 10 secondi se il valore letto è superiore a 100 (se poi non riesco a bagnare correttamente, i 10 secondi si ripeteranno, finchè non ho una bagnatura corretta.
A soglia minima e massima, con un tempo massimo di apertura ed eventuale diagnostica del raggiungimento del tempo massimo (che potrebbe significare rottura dell'elettrovalvola o mancanza di acqua.
Grazie a tutti per i suggerimenti sulla parte elettronica.
Riesumo questo post dopo sei mesi per dirvi che ho dato una "sistemata" al circuito con il 555....cioè l'ho rifatto da capo
Dopo aver studiato un po' come funziona l'integrato NE555 ho capito che il circuito del link che trovate qualche post sopra è inutilmente complicato (per le mie esigenze).
Non riesco ad allegare le immagini, quindi vi posto il link di un tutorial sul NE555 link tutorial NE555
Brevemente cerco di spiegare quello che ho fatto:
ho utilizzato la configurazione astabile, e tramite un foglio di calcolo mi sono calcolato i valori delle due R e del C per avere una variazione decente della frequenza quando il sensore è bagnato.
Con i seguenti valori ottengo una frequenza pari a circa 67 Hz a sensore asciutto ed una frequenza pari a circa 130 Hz a sensore bagnato.
I valori delle resistenze sono R1 = 10 kohm e R2 = 100 khom. Il condensatore è da 0.1 uF.
Il sensore (circuito a pettine) è inserito in parallelo ad R2 ed ho aggiunto una resistenza in serie al sensore di 100 kohm. Così se si utilizzano cavi lunghi (ed è probabile per via della presenza di acqua) la resistenza del cavo incide pochissimo. Dalle misurazioni che ho fatto siamo sui 2 o 3 kohm per più di un metro di cavo, quindi rientriamo abbondantemente nelle tolleranze delle resistenze (5% di solito).
Visto che stanno nascendo vari topic su serre, germinatoi ecc. spero che questo serva a qualcuno.
Se ci riesco posto il circuito così è più facile discuterne, e magari potrete darmi ancora altri suggerimenti!
E' un bellissimo progetto secondo me
Sto seguendo il topic da parecchio, quindi più info posti meglio é!
Col tempo probabilmente lo farò anche io.
Mi viene una domanda:
Il sensore a griglia lo hai acquistato o lo hai fatto tu?
Nel secondo caso come hai protetto le piste di rame dall'ossidazione?
I sensori in vendita sono placcati oro.
Ci sono ancora le resistenze, non credo che qualcuno le abbia tolte
PS:
per essere pignoli, dovremmo chiamare le resistenze "resistori", il linguaggio assembler "assembly", l'induttanza "induttore" ecc.... Certi vizi e certe abitudini sono duri da togliere