Salve dovendo convertire un segnale da corrente (4mA-20mA su 24v) in segnale a tensione che varia tra 0-5v (non più in corrente) in modo da farla leggere ad Arduino che sensore mi suggerite?
La tensione costante di 24v continua é stata ridotta a 5v mantenendo inalterata la variazione di corrente del Manometro che la origina. Quindi ora ho 5V fissi tra 4 e 20 mA. Ma Arduino legge variazioni di tensione...
Utilizzando un acs712 a 5A non ottengo la risoluzione sufficiente allo scopo.
Che sensore potrei usare?
eventualmente é possibile incrementare i mA di segnale in modo da avere una più elevata risoluzione con un qualche amplificatore?
Perdonatemi se sto dicendo castronerie.
Grazie
Risposta breve: V=R+I -> una resistenza da 250 ohm ...
Risposta un po meno breve: V=R*I -> Se fai passare 20mA attraverso una resistenza da 250 ohm, ottieni una tensione di 5V ai suoi capi ... per cui ti basta collegare la resistenza fra GND ed un pin analogico, collegare i fili del link di corrente ai capi della resistenza, e leggere la tensione per sapere la corrente ...
EDIT: e no, non e' che incrementando la corrente aumenti la risoluzione ... i sensori a loop di corrente sono costruiti in modo da darti da un minimo di 4mA come equivalente del valore zero, ad un massimo di 20mA come equivalente del fondoscala, a passi che dipendono dalla loro costruzione e circuiteria interna, e quella e' la risoluzione, anche se potessi aumentare la corrente, sempre quella risoluzione avresti ...
Ti ringrazio per la celere risposta, ma non sono riuscito a trovare valori congruenti con la resistenza già testata con un zener tra l'altro a protezione di eventuali sovratensioni. Non riesco a capire il perché, forse il valore basso della resistenza influisce in qualche modo sull'impedenza interna del Manometro? Probabilmente molti riderànno leggendomi, ma mi sto incartando...
Non é che esiste un sensore bello pronto che digerisce questi valori bassi?
Grazie mille
Non e' che, riducendo la tensione di alimentazione, metti in crisi la circuiteria interna del manometro ? ... considera che quei sensori devono anche ricavarci la loro alimentazione, dal loop di corrente ... se a 20mA cadono 5V sulla resistenza, da dove prende il sensore la propria alimentazione, se nel loop ci infili 5V ? ... di solito e' per quel motivo che in genere li si alimenta fra 15 e 24V, anche di piu per tratte lunghe ... ovviamente poi per poter funzionare correttamente, il polo negativo del loop (non necessariamente dell'alimentatore) dovra' anche essere collegato alla massa di arduino ...
Non capisco il problema, il 28 settembre aveva risolto un problema identico....
No il 28 settembre ho ottenuto le informazioni per cui ora sto cercando di risolvere.
Il circuito suggeritomi purtroppo nella realizzazione ha evidenziato le difficoltà che ho indicato ora.
Tenterò una qualche soluzione commerciale, sembra in effetti mal digerire il Manometro la tensione bassa di loop.
Un saluto
Guarda che quello che vuoi fare è veramente semplicissimo
Non capisco che problema tu abbia trovato
Posta lo schema che hai usato, che si ragiona
Nikitaspy:
sembra in effetti mal digerire il Manometro la tensione bassa di loop
Se misuri una corrente massima di 20mA con una resistenza da 250Ω, ai capi della resistenza (e quindi verso l'ingresso di Arduino) non potranno esserci mai più di 5V anche se il loop è alimentato a 100V. Quindi non c'è nessun problema ad alimentare i loop con la tensione che serve.
Claudio_FF:
Se misuri una corrente massima di 20mA con una resistenza da 250Ω, ai capi della resistenza (e quindi verso l'ingresso di Arduino) non potranno esserci mai più di 5V anche se il loop è alimentato a 100V. Quindi non c'è nessun problema ad alimentare i loop con la tensione che serve.
Esatto ... inoltre, il loop DEVE essere alimentato con una tensione maggiore, altrimenti il sensore da dove la prende l'energia per funzionare ?
Abbiate pazienza, non so dove stove sto sbagliando. Arduino é alimentato la USB del pc, l'alimentazione al Manometro é fornita esternamente mediante 2 batterie da 12 al piombo in serie per allarmi, e i valori di variazione di tensione ai capi della resistenza che leggo sia col tester che con Arduino non sono quelli aspettati...
E col tester cosa misuri?
Che valori ottieni?
Il tester legge correttamente la giusta escursione, ma su Arduino mi restituisce valori che non capisco es. Leggo sul tester 4,00 V e su monitor seriale 825... Non capisco.
L'ingresso analogico di arduino NON misura la tensione in volt ... misuri il range di tensione che usi come riferimento (nel tuo caso da 0 a 5 V, dato che non usi un riferimento esterno diverso) e te lo restituisce attraverso un convertitore a 10bit, che ti da quindi un valore che va da 0 (con 0V) a 1023 )con 5V) ... per avere il valore in volt, devi fare una conversione, oppure un mapping, della misuta con la scala in volt ... a 10 bit, ogni unita' corrisponde circa a 4.88millivolt, se con 4V leggi 825 e' corretto, 0.0048875eccetera moltiplicato 825 fanno 4.032 volt ...
Mi sembra corretto. L'ADC restituisce un valore da 0 a 1023, dove 1023 è la tensione di riferimento dell'ADC. Se questa è presa da Vcc (che può variare anche di 0.1V) e tenendo conto della tolleranza della resistenza, abbiamo un errore dell'1% del valore letto, più che ragionevole.
Per aumentare la precisione delle letture:
- all'ADC va fornito un riferimento più preciso e stabile dei 5V dell'alimentazione
- la resistenza da 250Ω deve essere di precisione
- fare una media di diverse letture
Sono un cogl...
Perdonatemi.
Ti ringrazio.
Stavo veramente perdendo i la pazienza.
Quindi ora posso dedicarmi alla montagna di cose mancanti sperando in un aiuto nella sezione software.
Devo infatti evidenziare il tempo che impiega la pressione per passare da min a max e viceversa stampando a display i due valori.
Farò un post specifico nella sezione corretta.
Grazie veramente.
Claudio_FF:
Per aumentare la precisione delle letture:
- all'ADC va fornito un riferimento più preciso e stabile dei 5V dell'alimentazione
- la resistenza da 250Ω deve essere di precisione
- fare una media di diverse letture
Grazie per il suggerimento. La resistenza e una tensione più precisa sono alla mia portata, per la media dovrei destinare altro tempo a capire sottraendolo allo sviluppo e non ne ho moltissimo.
Grazie.
per la media ti basta fare 10 letture sommandole una all'altra e poi dividere per 10... (4 righe di programma direi)
conta per x =0 fino a 10
lettura += analogRead(pinDaLeggere)
fine conta
lettura= lettura /10
Grazie mille lo userò senz'altro!
Nikitaspy:
Grazie per il suggerimento. La resistenza e una tensione più precisa sono alla mia portata, per la media dovrei destinare altro tempo a capire sottraendolo allo sviluppo e non ne ho moltissimo.
Grazie.
Nikitaspy:
4) considerando che ho ordinato uno schermo tft a colori in cina, nella speranza di poter indicare con delle icone le pompe e con i colori rosso e verde lo stato di funzionamento oltre ovviamente a visualizzare i tempi di transizione da ON a OFF e viceversa, credo un mesetto e più di tempo ce l'ho.
Sono sicuro che in mese puoi trovare il tempo per studiare come fare la media di alcune letture, bastano poche ricerche per trovare, qui sul forum, tutto quello che ti serve