Arduino Analog Input contoh klarifikasi

8

Pertama-tama saya total nub dalam elektronik.

Baru-baru ini saya mendapat Arduino Nano. Sekarang saya mencoba memahami mengapa tidak ada potensiometer nominal di http://arduino.cc/en/Tutorial/ReadAnalogVoltage contoh dan bagaimana variasi nominal ini akan mempengaruhi pembacaan input Analog.

Juga mengapa di http://arduino.cc/en/Tutorial/AnalogReadSerial contoh mereka memilih 10k potensiometer, apa yang akan berbeda dengan potensiometer 200k.

Terima kasih!

AB
sumber

Jawaban:

12

Tidak akan ada perbedaan dalam output tegangan penghapus dari potensiometer (dibongkar), mereka semua bekerja dengan cara yang sama.

Namun, input analog ke Arduino Anda merekomendasikan impedansi sumber kurang dari 10kOhm, untuk kinerja optimal. Hal ini disebabkan oleh waktu yang diperlukan untuk mengisi sampel dan menahan kapasitor, yang dapat dilihat sebagai impedansi dinamis . Gambar di bawah ini diambil dari datasheet AtMega328 (mikrokontroler yang berbasis Arduino):

Impedansi masukan analog

Jangan terlalu khawatir jika Anda tidak sepenuhnya memahami hal ini sekarang, terima saja kami membutuhkan impedansi sumber kurang dari 10kOhms.

Sekarang bagaimana kita menghitung impedansi keluaran dari potensiometer?

Untuk detailnya, lihat impedansi setara Thevenin . Ini memberitahu kita bahwa resistansi keluaran maksimum dari wiper pot adalah 1/4 dari resistansi yang diukur dari atas ke bawah (ketika wiper berada di tengah) Jadi jika pot Anda adalah 10k, maka resistansi keluaran maksimum adalah 2,5k .
Berikut ini adalah simulasi pot 10k yang disapu dari satu ujung ke ujung yang lain:

Pot Sim

Sumbu X mewakili rotasi dari 0 hingga 100% (mengabaikan nilai aktual yang ditunjukkan) Sumbu Y adalah impedansi keluaran yang diukur pada penghapus. Kita dapat melihat bagaimana ini dimulai dan berakhir pada 0 ohm dan puncak pada 2.5kOhms di tengah (50%)
Ini lebih nyaman kurang dari impedansi sumber yang direkomendasikan 10k.
Jadi, Anda dapat menggunakan nilai pot antara misalnya 100 ohm dan 40k sebagai pembagi tegangan Anda.

EDIT - untuk menjawab pertanyaan tentang apa yang terjadi jika kita menggunakan pot 200 ribu:

Seperti dikatakan dalam kutipan datasheet, semakin tinggi impedansi sumber, semakin lama kapasitor S / H untuk mengisi daya. Jika tidak terisi penuh sebelum bacaan diambil maka bacaan akan menunjukkan kesalahan dibandingkan dengan nilai sebenarnya.

Kita dapat menentukan berapa lama kapasitor perlu diisi hingga 90% dari nilai akhirnya, rumusnya adalah:

2.3 * R * C

Setelah 1 waktu RC konstan tegangan berada pada ~ 63% dari nilai akhir itu. Setelah konstanta waktu 2,3, ~ 90% seperti di atas. Ini dihitung dengan 1 - (1 / e ^ (RC / t)) di mana e adalah logaritma natural ~ 2.718. Misalnya untuk konstanta waktu 2,3 ​​itu akan menjadi 1 - (1 / e ^ 2.3) = 0,8997.

Jadi jika kita pasang nilai yang ditunjukkan - impedansi sumber 50k, impedansi seri 100k (asumsikan kasus terburuk) dan kapasitansi 14pF:

2.3 * 150k * 14pF = 4.83kami dikenakan biaya hingga 90%.

Kami juga dapat menghitung nilai -3dB:

1 / (2pi * 150k * 14pF) = 75.8kHz

Jika kita ingin nilai akhir berada dalam 99% kita harus menunggu sekitar 4,6 tau (konstanta waktu):

4,6 * 150k * 14pF = 9,66 untuk mengisi daya hingga 99% - ini sesuai dengan sekitar 16,5kHz

Jadi kita dapat melihat bagaimana semakin tinggi impedansi sumber semakin lama waktu pengisian dan karenanya semakin rendah frekuensi yang secara akurat dibaca oleh ADC.

Dalam kasus pot yang mengontrol nilai ~ DC, Anda dapat mencicipi pada frekuensi yang sangat rendah dan memberinya banyak waktu untuk mengisi daya, karena kebocorannya sangat kecil. Jadi saya pikir 200k seharusnya benar-benar baik-baik saja dalam hal ini. Untuk misalnya sinyal audio atau sinyal impedansi tinggi (AC) bervariasi, Anda harus memperhitungkan semua hal di atas.
Tautan ini masuk ke beberapa detail bagus pada karakteristik ADC ATMega328.

Oli Glaser
sumber
1
Terima kasih banyak untuk penjelasan terperinci! Bisakah Anda jelaskan bagaimana potensiometer lebih besar dari 40 kΩ akan mempengaruhi pembacaan digital? Misalnya mari kita kalikan dengan 5 sehingga potensiometer akan menjadi 200 kΩ?
AB
@ AB - Saya menambahkan beberapa detail lagi, semoga membantu. Saya menyadari pot dalam pertanyaan Anda hanya digunakan untuk memvariasikan nilai DC (tidak mengontrol level sinyal AC) sehingga nilai yang lebih tinggi harus baik-baik saja. Anda dapat melakukan beberapa pengujian Anda sendiri tentang efek peningkatan impedansi sumber >> 10k jika Anda memiliki voltase yang diketahui dan memvariasikan resistansi seri.
Oli Glaser
6

Oli menunjukkan kepada Anda informasi dalam lembar data, meskipun jika Anda baru dalam hal ini, penjelasannya mungkin sedikit berlebihan.

ADC (Analog-to-Digital Converter) memiliki kapasitor kecil, yang menampung tegangan input analog. Kapasitor itu akan diisi melalui resistansi pada input. Resistansi yang tinggi akan mengisi kapasitor lebih lambat. 10 kΩ direkomendasikan sebagai maksimum, jadi gunakan potmeter dengan nilai itu OK. Maksimum 40 kΩ Oli adalah benar, tetapi itu akan menjadi jelas ketika Anda mengetahui tentang Thévenin.

stevenvh
sumber
1

Dalam pengalaman saya dengan Arduinos, dengan potensiometer di atas 10k, bacaan akan berfluktuasi. Saya mengatasi ini dengan meletakkan kapasitor .1uf antara penghapus dan ground. Ini menjaga tegangan stabil untuk analogreads. Dengan menggunakan kapasitor, saya telah menggunakan pot hingga 1 MegaOhm dan mendapatkan pembacaan yang solid dan mantap.

Dan
sumber
Saya suka ini karena kapasitor .1uF paralel memastikan sumber impedansi rendah setelah pin input diaktifkan. 0.1uF / 14pf = 7142, dan resolusi adc (10bit) adalah 1 dalam 1023. Dengan pot yang sangat besar akan ada sedikit penundaan antara pengaturan dan menstabilkan tegangan pada pin input, tetapi ini tidak mungkin diperhatikan. Pot 4Mohm adalah 1Mohm imp. * 0.1uF = 0,1 dtk. Jadi dalam 0,46 detik. nilai Anda mencapai 99% dari perubahan!
Dario Dentes
Maaf jika ini tampak bodoh, tetapi apa yang terjadi jika voltase turun?
HilarieAK