使用可能なアナログ(入力)ピンの数を増やすにはどうすればよいですか?


26

マルチプレクサを使用してArduinoのデジタルピン数を拡張する方法をすでに知っています。

持っているアナログ入力チャンネルの数を増やしたい。1つの解決策は、別のArduinoをスレーブとして追加することです。

アナログ入力チャンネルの数を増やすにはどうすればよいですか?(いくつかのMUXingとADCが関係していると思います)。答えを書くのが複雑すぎる場合、回路/コードの一般的な概要も同様にうまくいくでしょう。

提案をシールドすることもできますが、それほどハードではないハードウェアソリューションがあればそれを希望します。


回答:


32

既にデジタルマルチプレクサチップに精通している場合は、朗報です!アナログ信号にも使用できます。

http://playground.arduino.cc/Learning/4051

基本的な前提は、デジタル信号の多重化とまったく同じです。4051チップを「レーンチェンジャー」として使用し、チップに切り替えるレーンに指定したレーンの信号を読み取ります。4051は、3つのデジタルピンと1つの追加のアナログ(またはデジタル)ピンをArduinoで使用して、最大8レーンの入力を作成します。一部のマルチプレクサーはチェーン可能であるため、arduino自体から信号を離すことなく、かなり簡単に8つの信号を追加できます。

これは、デジタル信号について既に知っている手法とまったく同じで、読み取り元のチャンネルをデジタルピンではなくアナログピンに接続し、バイナリ状態を循環してアナログ値を読み取ります。

アニメーションGIFを作成しました。

ここに画像の説明を入力してください


3
リンクは質問に答えますが、少し詳しく説明していただけますか?回路について簡単に書いてください。(リンクのみの回答はネットワーク上で推奨さません
Manishearth

はい。回答が拡大しました。
スティーブクーリー

3
1つの明確化、あなたが言及する4051はデジタルマルチプレクサではなくアナログマルチプレクサです。出力ドライバと入力ドライバは線形応答用に設計されていないため、これを達成できないデジタルマルチプレクサが間違いなく存在するため、答えで明確にします。アナログマルチプレクサを連鎖するMUXの特性に応じた信号に影響を与えることができることを添加注多分価値
naven87

1
アナログマルチプレクサを選択するのは簡単ではないことは注目に値します。設計者は、電圧スイング(ほとんどの場合、オペアンプのような電源範囲内でのみ動作)、帯域幅、オン抵抗、クロストークなどを考慮する必要があります。ショーストッパー。
ミスターミステア

デジタルピンを使用してセンサーに電力を供給することができるので、センスVCCに関して1本のデジタルピンをオンにし、同じアナログを共有できると思います。
シアストピエカルツ

10

ArduinoのATmegaチップ自体がアナログMUXを使用していることを覚えておくことは重要です。Unoベース(ATmega328)チップには、ADCが1つしかありません。6つのアナログ入力は、実際にはその1つのADCに接続するMUXです。

これが、一度に1つのアナログ入力しか読み取れない理由です。

アナログ入力を拡張する場合、このMUXをすべて実行するのにかかる時間と、アプリケーションで追加の外部ADCが必要かどうかを検討する必要があります。


1

これを考慮してください:Arduinoとのシリアル通信でATtiny 85を追加し、Rx、Txに2つのピンを使用し、アナログとして使用できる3つのピンがあります。これにより、独自のプロトコルを開発できます。ATtinyはアルゴリズムを処理し、処理された情報をArduinoに送信できます。また、非常に安価です。

良い一日

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