Sto giochicchiando con arduino ma le mie conoscenze di elettronica sono sepolte da anni.
Vin e Vout sono a 5V
R1 è 1KOhm
Come calcolo R2?
Sto giochicchiando con arduino ma le mie conoscenze di elettronica sono sepolte da anni.
Vin e Vout sono a 5V
R1 è 1KOhm
Come calcolo R2?
Ma se Vin = Vout a che ti serve il partitore?
Comunque la formula è:
R2 = (Vout * R1) / (Vin - Vout )
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
R1 è un termo reistore da 1KOhm, I 5Volt dovrebbero essere la tensione massima in uscita.
per come è fatto, R2 ti viene un circuito aperto e la corrente che scorre sula R1 nullaOriginariamente inviato da Ranma2
R1 è un termo reistore da 1KOhm, I 5Volt dovrebbero essere la tensione massima in uscita.
*** 300.000 BRIGANTI ***
Tempo fa qualcuno diceva che gli italiani sono meglio di chi li governa, ma la verità è che sono peggio...
Se con Vout intendi il pin di input analogico dell'Arduino, io metterei R2 dello stesso ordine di grandezza di R1; l'idea è questa:
- a temperatura bassa (supponendo una sonda NTC) avrai R1=R2=1kOhm; hai un partitore tale per cui "in mezzo" hai 2.5 V e nel ramo scorre la trascurabile corrente di I=V/R=5 V / 2kOhm=2.5 mA;
- a temperatura "alta" avrai R1->0 Ohm, R2=1kOhm; la tensione "vista" dall'Arduino qui sarà 5 V, e nel ramo scorrono 5 mA.
In questa maniera sfrutti tutto il range sopra i 2.5 V dell'ADC dell'Arduino (quindi in sostanza sacrifichi un solo bit di precisione dell'ADC) ed eviti che il tuo sensore assorba troppa corrente. Se vuoi sfruttare di più l'ADC devi diminuire R2 (in modo da far crescere il salto di tensione su R1), ma ovviamente, dato che la resistenza complessiva è minore, vai ad assorbire più corrente, specie a temperatura alta (con R1->0).
Amaro C++, il gusto pieno dell'undefined behavior.
Per curiosità: si sa quanto vale l'impedenza d'ingresso del pin in questione?
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
per cui non dovrebbe influenzare minimamente il partitore.Analog Input Resistance 100 MΩ
In ogni caso, specifica anche:
The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less. If such a source is used, the sampling time will be negligible. If a source with higher impedance is used, the sampling time will depend on how long time the source needs to charge the S/H capacitor, with can vary widely. The user is recommended to only use low impedance sources with slowly varying signals, since this minimizes the required charge transfer to the S/H capacitor.
Amaro C++, il gusto pieno dell'undefined behavior.
Ok, più o meno ho capito, ora mi sta tirando fuori 2,07v, immagino che per trasformare in temperatura questo valore debba avere almeno un datasheet di sto componente, giusto?Originariamente inviato da MItaly
Se con Vout intendi il pin di input analogico dell'Arduino, io metterei R2 dello stesso ordine di grandezza di R1; l'idea è questa:
- a temperatura bassa (supponendo una sonda NTC) avrai R1=R2=1kOhm; hai un partitore tale per cui "in mezzo" hai 2.5 V e nel ramo scorre la trascurabile corrente di I=V/R=5 V / 2kOhm=2.5 mA;
- a temperatura "alta" avrai R1->0 Ohm, R2=1kOhm; la tensione "vista" dall'Arduino qui sarà 5 V, e nel ramo scorrono 5 mA.
In questa maniera sfrutti tutto il range sopra i 2.5 V dell'ADC dell'Arduino (quindi in sostanza sacrifichi un solo bit di precisione dell'ADC) ed eviti che il tuo sensore assorba troppa corrente. Se vuoi sfruttare di più l'ADC devi diminuire R2 (in modo da far crescere il salto di tensione su R1), ma ovviamente, dato che la resistenza complessiva è minore, vai ad assorbire più corrente, specie a temperatura alta (con R1->0).
Perché googlando ho trovato la formula
Ma B ed r non so cosa sianocodice:termistore = ((1000*5.0)/volt)-1000.0; // calcolo la resistenza del termistore usando il principio dei partitori di tensione temperature = B/log(termistore/r); // calcolo la temperatura (T=B/ln(R/r)
Eh sì...Originariamente inviato da Ranma2
Ok, più o meno ho capito, ora mi sta tirando fuori 2,07v, immagino che per trasformare in temperatura questo valore debba avere almeno un datasheet di sto componente, giusto?
Se il termistore che hai segue quella formula e non hai il datasheet che riporti quelle costanti volendo puoi fare misure a diverse temperature e ricavare i coefficienti con un fit.Ma B ed r non so cosa siano
Amaro C++, il gusto pieno dell'undefined behavior.