Arduino Nano: Mengukur tegangan kecil dengan input analog

9

Saya perlu mengukur 0v hingga 40mV seakurat mungkin dengan ADC 10-bit pada Arduino Nano . Saya hanya perlu sekitar satu sampel per detik.

Saya berencana untuk memegang pin AREF pada 40mV di atas tanah, dengan benar melindungi semuanya, menggunakan filter low-pass pada perangkat keras dan perangkat lunak dan menggunakan catu daya yang dihaluskan dengan benar.

  • Akurasi seperti apa yang mungkin saya dapatkan?

  • Apa lagi yang bisa saya lakukan untuk meningkatkan akurasi?

CL22
sumber
Periksa lembar data pengontrol Anda untuk mengetahui tegangan referensi celah pita yang tersedia. Kemudian desain amplifier yang menguatkan sinyal maksimum menjadi sedikit di bawah tegangan referensi itu.
jippie

Jawaban:

9

Ada ahli yang lebih baik pada ADC Nano daripada saya tapi saya yakin itu akan memiliki beberapa masalah jadi saya akan menyarankan penguat pasti. Saya akan merekomendasikan op-amp berjalan dari 5V (atau apa pun yang menggunakan nano) dan 0V. Op-amp akan membutuhkan kemampuan rail-to-rail pada input dan output dan dikonfigurasikan dalam mode non-pembalik dengan gain yang mengubah 40mV ke skala penuh pada nano.

masukkan deskripsi gambar di sini

Jika skala penuh adalah (katakanlah) 3V, Anda akan membutuhkan gain 3 / 0,04 = 75. Ini berarti R2 / R1 = 74 (75 minus 1).

R1 akan senang menjadi 100 ohm dan karenanya R2 akan menjadi 7400 ohm (7k5 secara paralel dengan 560k memberi 7k401 yang diharapkan cukup dekat. Op-amp hanya diperlukan untuk berjalan pada kecepatan lambat setelah membaca pertanyaan Anda dan ada beberapa perangkat yang sesuai. Tahan api saat saya memposting jawaban dan lihatlah ...

The AD8538 terlihat cocok dan begitu AD8628 tetapi mungkin ada beberapa lagi yang mudah sesuai dengan tagihan

Andy alias
sumber
1
Skala penuh adalah Vcc, tetapi memberikan tegangan referensi pada pin AREF memungkinkan referensi skala penuh yang lebih rendah seperti yang diperlukan. Namun, amplifikasi masih diinginkan, karena AREF di bawah 1,0 Volts tidak berfungsi AFAIC (tidak ada bukti dokumenter, hanya beberapa masalah yang saya hadapi).
Anindo Ghosh
Mengapa resistor E12 tidak lebih umum? Rasio pastinya tidak terlalu penting, asalkan Anda tahu untuk menggantinya. Misalnya. 12k ÷ 150 = 80 atau 33k ÷ 470 ≈ 70. Tentu saja hal ini berlaku untuk tegangan output 3V, yang mungkin tidak optimal.
jippie
@ Jippie Saya setuju sepenuhnya tetapi jawaban saya "menyarankan" bagaimana menempatkan resistor secara paralel dan saya tidak yakin apakah OP tahu ini. Dia mendapat jawaban ekstra gratis !!
Andy alias
+1 untuk saran op amp, AD8538 adalah favorit pribadi, terutama dalam paket SOT23 - tanpa pin yang tidak berarti, perilaku termal yang sangat baik.
Anindo Ghosh
1
@AnindoGhosh - 20 bulan berlalu. Lembar data ATMega328 tampaknya tidak mengatakan apa pun di 650 halamannya tentang kisaran nilai apa yang berlaku untuk Tegangan Aref yang diterapkan SECARA LUAR BIASA, TETAPI semua banyak grafik yang disebutkan memiliki batas bawah 1,8V :-(. Vcc mungkin> = 1,8 V dan AVcc mungkin Vcc-0.3V sehingga serendah 1.5V legal. Menggunakan referensi celah pita internal 1.1V memberikan tegangan ADC max yang lebih rendah. V_ARef eksternal yang lebih rendah MUNGKIN legal tetapi tidak pasti.
Russell McMahon
1

Saya awalnya tidak berencana untuk menambahkan ini sebagai jawaban, tetapi tampaknya penting untuk membiarkannya tenggelam di suatu tempat di komentar.

Ini hal yang paling penting, untuk menggunakan lembar data mikrokontroler Anda. Dan jika saya benar tentang Arduino Nano memiliki ATmega 168, di sini adalah datasheet . Karakteristik listrik adalah bagian yang harus Anda ketahui dan periksa hal-hal di sana terlebih dahulu.

Intinya adalah: tegangan referensi minimal adalah 1,0V - Anda dapat melihatnya di halaman 311. Anda harus memperkuat sinyal Anda setidaknya dengan faktor 25 untuk mendapatkan akurasi yang masuk akal, meningkatkan skala ke referensi tegangan minimal.

Sekarang pilihan terbaik dari elemen yang saya tahu (walaupun saya hampir tidak tahu topiknya) akan membutuhkan penguat operasional dengan noise rendah, yang dapat beroperasi sebagai rail-to-rail seperti yang ditunjukkan oleh @Andyaka, lebih disukai dijalankan pada tegangan suplai Anda. Maka saya berpikir bahwa pilihan terbaik dari referensi tegangan adalah yang internal. Meskipun mereka dapat bervariasi di antara perangkat, saya pikir stabilitas harus paling masuk akal. Selain itu, resistor pilihan Anda harus terletak pada resistensi yang lebih rendah daripada yang lebih tinggi, karena mereka lebih tahan kebisingan. Jangan lupa stabilitasnya seiring waktu dan perubahan suhu!

Konfigurasi amplifier yang terbaik mungkin bervariasi - penguat noninver mungkin baik untuk memulai, tetapi impedansi input yang tinggi mungkin tidak bekerja dengan baik dengan sinyal Anda (meskipun harus OK).

TNW
sumber
1
Mengapa seorang yang tinggi impedansi masukan tidak bekerja dengan baik dengan sinyal? The Arduino GPIOs dalam mode input semua impedansi input tinggi, omong-omong, seperti juga sebagian besar ADC.
Anindo Ghosh
1
@AnindoGhosh Jika sumber sinyal harus dimuat untuk mengukur dan tidak dilakukan dengan benar. Saya tidak bisa mengatakan apa-apa tentang sifat sinyal OP. Saya pikir bahwa saran dalam posting saya terlalu keras pada amplifier - mungkin seharusnya tidak terjadi, tetapi impedansi input tinggi adalah hal yang saya pikir lebih baik untuk diperhatikan.
TNW
Saya percaya memuat sumber sinyal jika diperlukan adalah ilmu yang terkenal, dan sama-sama, perancang biasanya berusaha untuk impedansi input yang tinggi dan impedansi output yang rendah. Oleh karena itu downvote saya pada pernyataan yang tidak memenuhi syarat.
Anindo Ghosh
1
@AnindoGhosh Saya pikir mungkin lebih baik untuk berasumsi bahwa orang tersebut kurang tahu lebih banyak (terutama referensi 40mV membuat saya curiga). Saya ingin menunjukkan bahwa pilihan antara penguat inverting dan noninverting tidak hanya tergantung pada apakah kita dapat memungkinkan perubahan polaritas.
TNW
-4

Anda harus menggunakan amplifier untuk akurasi maksimum.

Leon Heller
sumber
Terima kasih - tetapi mengapa? Tidakkah tahap tambahan meningkatkan kebisingan dan ketidakakuratan? Apa jenis rangkaian penguat yang akan memberikan hasil terbaik?
CL22
1
Saya kira penguat operasional low-noise dalam konfigurasi noninverting bisa dilakukan, asalkan Anda menggunakan resistor stabil untuk mempertahankan kenaikan tegangan.
TNW
3
Untuk seseorang yang menegur pengguna lain karena tidak memberikan informasi, jawaban ini jelas. Bisakah Anda menambahkan beberapa skema atau detail tambahan?
Chris Laplante