Arduinoで3.3Vおよび5V出力センサーを使用する方法は?


13

3.3Vセンサーを使用するときにArduino ADCからフル解像度を得るには、2つのことを行う必要があります。

  1. 3.3V電源をAREFピンに接続します。
  2. コードでanalogReference(EXTERNAL)を呼び出します。

しかし、3.3Vと5Vの出力センサーを混合する必要がある場合はどうでしょう。私のオプションは何ですか?

回答:


10

簡単な解決策は、抵抗分圧器(比率約1:1.94)を使用し、5v信号を3.3vのピークまで低減することです。この方法で、リファレンスを切り替える必要なく、フル解像度を維持できます。適切な分周器は、センサーからアナログ入力までの18kと、アナログ入力からグランドまでの33kを使用することです。これは、5v入力を3.23v入力に変換します。必要に応じて、より高精度の抵抗を使用すると、これが3.3vに近くなります。センサーが特定の値に必要な電流を供給できることを確認する必要があります-この場合、約0.1mAです。ATMegaアナログ入力の入力抵抗は約100Mオームであるため、入力抵抗の影響を心配する前にこれらの値を大幅に増やす(センサーの負荷を減らす)ことができます。


3

2つのこと、3.3vセンサーの解像度を下げてライブを行い、リファレンスを5Vに保ちます。それは私が通常やっていることであり、それで十分です。

それぞれのセンサーを読み取るときに、analogReferenceをオンザフライで切り替えることもできます。外部参照と内部参照を混合し、AREFに直列制限抵抗器を設置したことを思い出したので、Arduino参照のその部分を注意深く読んでください。


2

センサーの新しいバージョンを探すことも検討できます。両方が同じ電圧制限で動作するセンサーを取得できる場合があります。または、デジタル出力を提供し、I2Cまたは他の単純なシリアル通信プロトコルでポーリングできる新しいバージョンのセンサーが利用できる場合があります。もちろん、新しいチップを購入する必要がありますが、それらは非常に高価ではなく、問題を排除するだけでなく、ノイズを心配する必要がないため、プロジェクトに高いレベルの精度を提供する可能性がありますあなたのサーキットで。

新しいチップに合わせてプロジェクト全体を再設計するのではなく、John Cとハムは優れたシンプルなソリューションを提供します。私の経験では、5vの電源とリファレンスで3v3センサーを実行しましたが、カジュアルなプロジェクトの解像度が失われるよりもノイズの問題が大きくなりました。これが最も簡単な方法ですが、数学を行う必要があり、それに応じてka1kjzの投稿に投票しました(リファレンスシートを確認してください)。

分圧器ソリューションに関する限り、より高精度の抵抗器を使用している限り、すべての測定値が同じ電圧範囲内にあるという利点が得られ、AREFを使用して電圧リップルに従うというレシオメトリック補正の利点が得られます。しかし、実際には、私のプロジェクトのノイズとキャリブレーション手法の欠如が、小さな電圧リップルや10%の抵抗が合理的に引き起こす可能性があるよりも多くのエラーに寄与していることがわかりました。そのため、私はJohnCのソリューションにも賛成票を投じました。彼はこのすべてをより詳細にカバーしているからです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.