Bagaimana cara menggunakan sensor keluaran 3.3V dan 5V dengan Arduino?

13

Untuk mendapatkan resolusi penuh dari Arduino ADC saat menggunakan sensor 3.3V Anda harus melakukan dua hal.

  1. Hubungkan catu daya 3.3V ke pin AREF.
  2. Panggil analogReference (EKSTERNAL) dalam kode.

Tapi bagaimana kalau saya harus mencampurkan sensor keluaran 3.3V dan 5V. Apa pilihan saya?

tuupola
sumber

Jawaban:

10

Solusi sederhana adalah dengan menggunakan pembagi resistor (rasio kira-kira 1: 1.94) dan mengurangi sinyal 5v ke puncak 3.3v Dengan cara itu Anda akan mempertahankan resolusi penuh sementara tidak perlu berganti referensi. Pembagi yang cocok adalah menggunakan 18k dari sensor ke input analog dan 33k dari input analog ke ground. Ini akan menerjemahkan input 5v ke input 3.23v. Penggunaan resistor presisi yang lebih tinggi akan membuat ini lebih dekat ke 3.3V jika diperlukan. Anda perlu memastikan bahwa sensor dapat memasok arus yang dibutuhkan untuk nilai yang diberikan - dalam hal ini sekitar 0,1mA. Resistansi input dari input analog ATMega adalah sekitar 100M ohm sehingga Anda dapat meningkatkan nilai-nilai ini (mengurangi beban pada sensor) secara signifikan sebelum mengkhawatirkan efek resistansi input.

JohnC
sumber
3

Dua hal, hiduplah dengan resolusi yang dikurangi dari sensor 3.3V dan pertahankan referensi Anda pada 5V. Itulah yang biasanya saya lakukan dan itu cukup baik.

Anda juga dapat mengganti referensi analog dengan cepat saat membaca setiap sensor. Saya ingat pernah membaca tentang mencampur referensi eksternal dan referensi internal dan memiliki resistor pembatas seri pada AREF Anda, jadi bacalah bagian dari referensi Arduino dengan hati-hati.

ka1kjz
sumber
2

Anda juga dapat mempertimbangkan mencari versi sensor yang lebih baru. Anda mungkin dapat memperoleh sensor yang keduanya bekerja dengan batas tegangan yang sama, atau Anda mungkin menemukan bahwa versi yang lebih baru dari sensor tersedia yang akan memberi Anda output digital dan dapat disurvei dengan I2C atau protokol komunikasi serial sederhana lainnya. Tentu saja ini membutuhkan pembelian chip baru, tetapi mereka tidak terlalu mahal dan Anda tidak hanya akan menghilangkan masalah, tetapi Anda mungkin akan memberikan proyek Anda dengan tingkat presisi yang lebih tinggi karena Anda tidak perlu khawatir tentang kebisingan di sirkuit Anda.

Pendek mendesain ulang seluruh proyek Anda agar sesuai dengan chip baru, John C dan ham memberikan solusi yang sangat baik, sederhana. Dalam pengalaman saya, saya telah menjalankan sensor 3v3 dengan pasokan dan referensi 5v dan memiliki masalah yang lebih besar dengan kebisingan daripada dengan resolusi yang hilang untuk proyek kasual. Ini adalah jalan keluar termudah, tetapi memang mengharuskan Anda untuk melakukan beberapa matematika, dan saya telah memilih posting ka1kjz sesuai (periksa lembar referensi).

Sejauh solusi pembagi tegangan berjalan, selama Anda menggunakan resistor berpresisi lebih tinggi Anda mendapatkan keuntungan memiliki semua pengukuran Anda berada dalam rentang tegangan yang sama dan Anda mendapatkan manfaat koreksi ratiometrik menggunakan AREF untuk mengikuti riak tegangan. Dalam praktiknya, bagaimanapun, saya telah menemukan bahwa kebisingan dan kurangnya teknik kalibrasi dalam proyek saya telah berkontribusi lebih banyak kesalahan daripada riak tegangan kecil atau 10% resistor dapat menyebabkan. Untuk alasan itu saya memilih solusi JohnC juga, karena ia membahas semua ini dengan lebih rinci.

Lou
sumber