Go Down

Topic: Output analogico (Read 2513 times) previous topic - next topic

Ricuzzu

Buongiorno a tutti!
Sono un po' di giorni che studio arduino, ho in mente un progettino banale ma molto utile per casa mia (ma questo non è il tema del topic), ma non sono riuscito a capire se posso avere un segnale di uscita analogico, non digitale, in mV.
Grazie mille per l'aiuto...

uwefed

Arduino UNO ha 6 uscite PWM. Il PWM é un segnale digitale (onda rettangolare) dove viene variato il rporto di tempo livello HIGH e livello LOW. La media del signale é confrontabiel a una tensione costante che varia il valore.
La media si puó fare con una resistenza che carica un condensatore.

L'alternativa é un DAC che converte un numero digitale in una tensione analogica. Per esempio il MCP4921 con 2 uscita e il MCP4922 con 2 uscite.

Poi con un partitore resistivo puoi abbassare la tensione ai valori da te richiesti (mV).

ciao Uwe

Ricuzzu

Grazie Uwe della risposta. In pratica avrei bisogno di sostituire la sonda climatica esterna della mia caldaia con arduino, quindi devo collegare la caldaia con arduino in maniera tale che arduino invii alla caldaia il segnale analogico in mV che invierebbe la sonda climatica, il tutto in automatico in base al codice di programma che carico su arduino. Tutto questo perchè così sarò io a regolare la temperatura di mandata della caldaia non solo in base alla temperatura esterna, ma tenendo conto di altri parametri che con arduino posso gestire.

uwefed

ma che sonda devi sostituire?
Ciao Uwe

Ricuzzu

In pratica, adesso ho una sonda climatica (semplice sensore di temperatura) collegata alla caldaia e la caldaia mi manda l'acqua calda al pavimento in base alla temperatura esterna. Poichè la potenza della caldaia è maggiore del fabbisogno dell'abitazione, la caldaia fa continue accensioni di pochi secondi ogni 3 minuti. La mia idea consiste nel sostituire la sonda climatica con arduino e comunicare alla caldaia la differenza di potenziale come farebbe la sonda climatica, ma al valore che programmo io, tenendo conto della temperatura di ritorno dall'impianto, della temperatura esterna, della potenza minima della caldaia, in modo da permettere alla caldaia di funzionare in maniera più regolare. Non mi voglio dilungare per non farti perdere tempo, ma se vuoi posso spiegarti nel dettaglio cosa ho bisogno di fare...
Perciò, ho bisogno che il segnale che produce arduino sia un segnale in analogico, simile a quello della sonda esterna.

Brunello

Si, perfetto, ma di che valori stiamo parlando ?
mV, Volts.... 
la sonda climatica ha un nome... o meglio ancora un modello ?

Dire " un sensore di temperatura" e' un po' generico. Puo' essere una termocoppia, una termoresistenza, PT100,PT1000,NTC,PTC, un sensore IC... troppi ce ne sono


uwefed

Ricuzzu, la vedo dura.
Non é facile sostituire un sensore.
Ciao Uwe

Ricuzzu

Grazie brunello e Uwe per il vostro aiuto.
Domani scollego la sonda dalla caldaia e la apro, così brunello ti saprò dire di più. Comunque, se non erro, il segnale che arriva alla caldaia è in mV.

Uwe, stavo riflettendo, mi sa che è davvero dura. Dovrei trovare un potenziometro che, settato secondo le impostazioni della caldaia, vada a sostituire la sonda. Questo potenziometro dovrebbe variare la ddp in base al valore che arduino gli comunica, valore calcolato tenendo conto di vari parametri. In pratica, se arduino dai calcoli mi dice che a 0°C l'uscita deve essere di 10 mV, questi 10 mV devo comunicarli alla caldaia. Se cambiano dei parametri e l'uscita passa a 20 mV, il potenziometro dovrà variare la ddp per comunicarla correttamente alla caldaia. Ma come fare? Immagino che esistano dei potenziometri non manuali. Se così fosse, in base all'uscita analogica di arduino andrei a regolare il potenziometro per darmi la corretta ddp alla caldaia.

uwefed

Esistono resistenze digitali che vengono pilotate via interfaccia ma sono ne di grande potenza (qualche mA) ne di grande tensione (normalmente solo 5V) e né di tanti passi (max  256) I valori sono normalmente 10, 50 e 100kOhm
Ciao Uwe

astrobeed


Uwe, stavo riflettendo, mi sa che è davvero dura. Dovrei trovare un potenziometro che, settato secondo le impostazioni della caldaia, vada a sostituire la sonda. Questo potenziometro dovrebbe variare la ddp in base al valore che arduino gli comunica, valore calcolato tenendo conto di vari parametri.


La prima cosa da fare è determinare il tipo di sensore, se è una NTC/PTC la puoi sostituire con un potenziometro digitale di opportuno valore, lo comandi da Arduino tramite I2C o SPI, se è una termocoppia, o un sensore a semiconduttore, le cose si complicano non poco perché devi realmente simulare una tensione variabile nel giusto range, ti serve un DAC per farlo e a seconda del range di tensione potrebbe rivelarsi una cosa abbastanza delicata/complessa da implementare.

astrobeed


né di tanti passi (max  256) I valori sono normalmente 10, 50 e 100kOhm


Come passi i potenziometri digitali esistono anche da 1024 e 2048, come valore fondo scala si parte da 100 ohm a salire, semmai potrebbe essere difficile reperire il giusto potenziometro digitale per sostituire la sua sonda, ammesso che sia una NTC/PTC.
Se il corretto valore del potenziometro digitale risulta irreperibile sul normale mercato consumer è sempre possibile autocostruirlo tramite un array di resistenze e degli switch analogici, p.e. con 12 resistenze di precisione opportunamente scalate ottieni un potenziometro digitale da 2048 step.

Ricuzzu

Buonasera a tutti e grazie mille per l'aiuto.
Domani proverò a scollegare questa sonda esterna e l'aprirò per capire come è fatta. Mi sto rendendo conto che risulta essere molto complesso quello che chiedo di fare, forse è troppo per un principiante come me.

Brunello

che fai, abbandoni ?
Ma se nemmeno abbiamo cominciato.

Ma non e' che quella caldaia si attiva anche in altre modalita', oltre a codesta "sonda di temperatura" ?

ma il classico termostato, non c'e'..... o e' appunto codesta sonda ?

Ricuzzu

No, forse mi sono espresso male, per mia natura sono testardo e tenace, intendevo dire che sono ancora un principiante e che prima di farvi perdere tempo dovrei imparare molto. Comunque, visto che sei molto disponibile, ti spiego:
la caldaia attualmente e collegata con sonda climatica e manda acqua calda all'impianto in base alla temperatura esterna. Nel mio caso, poichè la potenza della caldaia è troppo elevata per il fabbisogno dell'appartamento, appena tenta di alzare la temperatura di mandata posizionandosi su quella corretta come da curva climatica, spegne il bruciatore perchè la potenza necessaria è inferiore a quella minima della caldaia e il brucatore rimane inattivo per 3 minuti, poi ci riprova e così da 3 settimane...
la caldaia, senza sonda climatica, ha la regolazione a punto fisso, ovvero io posso impostare la temperatura di mandata all'impianto e se imposto un valore per cui supero la potenza minima della caldaia, essa funziona. Il problema è che ho un impianto a pavimento, perciò, se invio acqua più calda di quella necessaria, mi trovo con temperature troppo alte in casa, pessimo comfort e alti consumi. Se avessi i caloriferi non ci sarebbero problemi, appena la temperatura interna raggiunge il valore impostato, per esempio 20 °C, la caldaia si spegne fino a che il termostato non la riaccende. Con il riscaldamento a pavimento, l'alta inerzia termica non si sposa con la regolazione a termostato, ma si preferisce una regolazione climatica.
Ora devo escogitare un sistema per impedire alla mia caldaia di fare accensioni ogni 3 minuti di pochi secondi. L'idea era quella di creare con arduino un falso segnale alla caldaia regolato da me: se con 9°C il fabbisogno energetico dell'abitazione è 1.95 kWh, facciamo 2 kWh, se la potenza minima della caldaia è 5.5 kW, se riuscissi a tenerla accesa un'ora immetterei nell'impianto 5.5 kWh, se la tenessi accesa 30 min. immetterei 2.75 kWh di energia termica. Perciò, se la tenessi accesa 22 minuti avrei circa i 2000 Wh che mi occorrono. Tutto il ragionamento ha senso se nei 22 minuti si rimane con i 5.5 kW di potenza. Se la potenza aumenta, diminuisce il tempo di accensione. Nei restanti 38 minuti, il bruciatore rimarrebbe spento e il circolatore continuerebbe a far circolare l'acqua nell'impianto; l'acqua continuerebbe a rilasciare il calore nell'ambiente pari a quello che viene disperso dall'abitazione. So bene che ci possono essere delle variazioni di temperatura durante i 60 minuti, ma poichè l'intervallo e abbastanza limitato, queste dovrebbero essere quasi impercettibili. Quindi, a 9°C poniamo che la sonda invii un segnale di 30 mV. Allora, con arduino, io trovo il valore per cui la caldaia riesce a rimanere accesa al minimo e trovo, per esempio, che la temperatura esterna dovrebbe essere di -2°C. Allora, con arduino invio alla caldaia la ddp che serve per far credere alla caldaia che fuori ci sono -2°C quando invece ce ne sono 9°C, per un tempo che il programma gestirà autonomamente seguendo il codice che avrò io creato. Non so se sono stato chiaro... mi scuso...

ibbba

Controlla che la caldaia non abbia anche un ingresso di regolazione potenza alternativa alla sonda climatica esterna,che sicuramente sarà una Ntc... Ad esempio recentemente ho apportato una modifica simile ad una caldaia DeDietrich che oltre all'ingresso modulante da sonda climatica ne aveva uno ben più comodo 0-10 volt... Controlla sul manuale della caldaia,oramai sono dei micro controllori pure loro...solo un suggerimento

Go Up