Chiarimento di esempio dell'ingresso analogico Arduino


8

Prima di tutto, sono totalmente entusiasta dell'elettronica.

Di recente ho ottenuto un Arduino Nano. Ora sto cercando di capire perché non esiste un potenziometro nominale nell'esempio http://arduino.cc/en/Tutorial/ReadAnalogVoltage e in che modo la variazione di questo nominale influirebbe sulle letture degli ingressi analogici.

Anche perché su http://arduino.cc/en/Tutorial/AnalogReadSerial esempio hanno scelto un potenziometro da 10k, cosa sarebbe diverso con un potenziometro da 200k.

Grazie!

Risposte:


12

Non ci sarebbe alcuna differenza nell'uscita della tensione del tergicristallo da qualsiasi potenziometro (senza carico), funzionano tutti allo stesso modo.

Tuttavia, l'ingresso analogico di Arduino consiglia un'impedenza di sorgente inferiore a 10 kOhm, per prestazioni ottimali. Ciò è dovuto al tempo impiegato per caricare il campione e trattenere il condensatore, che può essere visto come un'impedenza dinamica . L'immagine seguente è tratta dal foglio dati AtMega328 (il microcontrollore su cui si basa Arduino):

Impedenza di ingresso analogica

Non preoccuparti troppo se non lo capisci completamente in questo momento, accetta solo che abbiamo bisogno di un'impedenza di sorgente inferiore a 10kOhm.

Ora come calcoliamo l'impedenza di uscita da un potenziometro?

Per i dettagli, guarda l' impedenza equivalente di Thevenin . Questo ci dice che la massima resistenza in uscita dal tergicristallo di una pentola è 1/4 della sua resistenza misurata dall'alto verso il basso (quando il tergicristallo è al centro) Quindi se la tua pentola è 10k, la resistenza massima in uscita è 2,5k .
Ecco una simulazione di un piatto da 10k che viene spazzato da un'estremità all'altra:

Pot Sim

L'asse X rappresenta la rotazione da 0 a 100% (ignora i valori effettivi visualizzati) L'asse Y è l'impedenza di uscita misurata sul tergicristallo. Possiamo vedere come inizia e termina a 0 ohm e picchi a 2,5 kOhm al centro (50%).
Ciò è comodamente inferiore all'impedenza di sorgente consigliata di 10 k.
Quindi, è possibile utilizzare qualsiasi valore del potenziometro compreso tra 100 ohm e 40k come divisore di tensione.

MODIFICA - per rispondere alla domanda su cosa succede se usiamo un piatto da 200k:

Come indicato nell'estratto del foglio dati, maggiore è l'impedenza della sorgente, più tempo impiega il condensatore S / H a caricarsi. Se non è completamente carico prima che venga eseguita la lettura, la lettura mostrerà un errore rispetto al valore reale.

Possiamo capire per quanto tempo il condensatore deve caricare fino al 90% del suo valore finale, la formula è:

2.3 * R * C

Dopo 1 costante di tempo RC la tensione è al ~ 63% del suo valore finale. Dopo 2.3 costanti di tempo è al ~ 90% come sopra. Questo è calcolato da 1 - (1 / e ^ (RC / t)) dove e è il logaritmo naturale ~ 2.718. Ad esempio, per le costanti di tempo 2.3 sarebbe 1 - (1 / e ^ 2.3) = 0.8997.

Quindi, se inseriamo i valori mostrati - impedenza sorgente 50k, impedenza serie 100k (ipotizza il caso peggiore) e capacità 14pF:

2.3 * 150k * 14pF = 4.83us per caricare fino al 90%.

Possiamo anche calcolare il valore di -3dB:

1 / (2pi * 150k * 14pF) = 75,8kHz

Se vogliamo che il valore finale sia compreso tra il 99%, dobbiamo aspettare circa 4,6 tau (costanti di tempo):

4.6 * 150k * 14pF = 9.66us per caricare al 99% - questo corrisponde a circa 16.5kHz

Quindi possiamo vedere come maggiore è l'impedenza della sorgente maggiore è il tempo di carica e quindi minore è la frequenza letta accuratamente dall'ADC.

Nel caso di una pentola che controlla un valore ~ ​​DC, tuttavia, è possibile campionare a una frequenza molto bassa e concedergli un sacco di tempo per caricarsi, poiché la perdita è molto piccola. Quindi penso che 200k dovrebbero effettivamente andare bene in questo caso. Ad esempio, per un segnale audio o qualsiasi segnale ad alta impedenza variabile (CA) dovrete comunque tenere conto di quanto sopra.
Questo collegamento fornisce alcuni buoni dettagli sulle caratteristiche dell'ADC ATMega328.


1
Grazie mille per la spiegazione dettagliata! Potete chiarire in che modo un potenziometro maggiore di 40 kΩ influenzerebbe le letture digitali? Ad esempio moltipliciamo per 5, quindi il potenziometro sarebbe 200 kΩ?
AB

@AB - Ho aggiunto alcuni dettagli, spero che sia d'aiuto. Ho capito che il piatto nella tua domanda è solo usato per variare il valore DC (non controllare il livello di un segnale AC) quindi un valore più alto dovrebbe essere a posto. È possibile eseguire alcuni dei propri test sull'effetto di aumentare l'impedenza della sorgente >> 10k se si dispone di una tensione nota e si varia la resistenza in serie.
Oli Glaser,

6

Oli ti ha mostrato le informazioni nel foglio dati, anche se se sei nuovo a questo la sua spiegazione potrebbe essere un po 'sopra la tua testa.

L'ADC (convertitore da analogico a digitale) ha un piccolo condensatore, che mantiene la tensione di ingresso analogica. Quel condensatore viene caricato attraverso la resistenza all'ingresso. Un'alta resistenza caricherà il condensatore più lentamente. Si consiglia 10 kΩ come massimo, quindi usare un potenziometro di quel valore è OK. I 40 kΩ di Oli al massimo sono corretti, ma questo diventerà chiaro man mano che imparerai a conoscere Thévenin.


1

Nella mia esperienza con Arduinos, con potenziometri oltre i 10k, le letture fluttueranno. Risolvo questo mettendo un condensatore .1uf tra il tergicristallo e la terra. Ciò mantiene la tensione costante per i lettori analogici. Usando il condensatore, ho usato pentole fino a 1 MegaOhm e ho ottenuto letture solide e costanti.


Mi piace perché il condensatore parallelo .1uF garantisce una sorgente a bassa impedenza dopo che il pin di ingresso è stato commutato. 0.1uF / 14pf = 7142 e la risoluzione di adc (10 bit) è 1 su 1023. Con potenziometri estremamente grandi ci sarà un leggero ritardo tra l'impostazione e la stabilizzazione della tensione sul pin di ingresso, ma è improbabile che si noti. 4Mohm pot è imp 1Mohm. * 0,1 uF = 0,1 sec. Quindi in 0.46 sec. il tuo valore si assesta al 99% della variazione!
Dario Dentes,

Scusa se questo sembra stupido, ma cosa succede se la tensione sta calando?
HilarieAK,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.