シールドを別のシールドに積み重ねることはできますか?

昨日私はArduino Unoに積み重なったサーボモータシールドにモーターシールドを積み重ねようとしました。

しかし、私は両方を使用しようとすると何か問題があることに気付きました。エネルギーが失われたり、サーボモータのシールドに接続されたステッピングモーターが奇妙にゆっくり動いているようです。

私はすでにオンラインでチェックして、多くのシールドを積み重ねることについての説明を見つけました。シールドが同じピンまたはSSを使用しないことを確認することについて。初心者としては、助けが非常に役立つでしょう。ありがとうございました。

ここで私が使用する2つのシールドがあります。

wiki : https://www.dfrobot.com/wiki/index.php/Digital_Servo_Shield_for_Arduino_SKU:DRI0027

これらのリンクでは、使用されるピンを持つすべての仕様を見つけることができます。私は両方の人が分かち合っていると思っています...確かに分かりません。

誰にも解決策はありますか?事前に多くの感謝。

0
あなたの例をありがとう。しかし、私の問題のために、私の盾の両方が異なっています。彼らは同じではありません。私はちょうど私が別のarduinoを購入する必要がある場合kknowしたい、またはそれを動作させるための方法を持っている
追加された 著者 flakeshake,
Mhh ok、だから、最良の選択は、私が知っているarduinoごとに1つのシールドを使用することです。しかし、私も知っている、時々我々は複数のシールドを積み重ねることができます。私のプロジェクトでは、できるだけ軽くて薄いものにしたい
追加された 著者 flakeshake,
本当の答え、あなたは知らない。たとえば、シールドはシリアルポートを使用する必要があります。したがって、同じシリアルポートを使用する必要があるので、2番目の同一シールドが機能しない可能性があります。または、シールドの設計者が何かを賢明にして、第2シールドのソフトウェアシリアルポートを使用している可能性があります。
追加された 著者 st2000,
上記のコメントは、ハードウェアのみを参照しています。リソースを共有するというソフトウェアの問題もあります。例えば、モーターシールドは、SDCardシールドと同じタイマーを使用することができます。したがって、両方のソフトウェアが同じArduino上で動作している場合、それぞれのソフトウェアは動作しない可能性があります。
追加された 著者 st2000,
1つ以上のシールドまたはArduinoライブラリを使用する場合、常にリソースが不足するリスクがあります。これが起こらないことを確実にする唯一の真の方法は、それぞれが必要とするリソースを理解するまで、シールドおよび/またはライブラリを後方にエンジニアリングすることです。それは初心者のための多くの仕事です。多くの人が、単純に実験/テストして、特定の組み合わせが機能するかどうかを確認します。通常、ソフトウェアのために何も悪いことは起こりません。しかし、ハードウェアには常に「何かを燃やす」チャンスがあります。
追加された 著者 st2000,

1 答え

まず、2つのシールドのピン配置を比較する必要があります。シールドが完全に異なるピンを使用する場合は、それらを一緒に使用することができます。

しかし、ピンを共有している場合は、そのピンの種類と使用方法をさらに詳しく調べる必要があります。

あなたの例では、シールドとPWM(3/11)とGPIO(8/9/12/13)とアナログ入力(A0/A1)のためにSPIが使用されています(ピン10-13)。

紛争が起きたことが分かりました。例えば、DFRobotシールド用のSPIクロック用のピン13もArduinoシールドのGPIOピンの1つに使用されています。 MISOのピン12はGPIOとして使用されています。 MOSIのピン11もPWM用に使用されています。

それらはピン上の異なる機能なので、決して機能しません。

しかし、SPIピンを両方のシールドの SPI として使用していれば、そのできます。その場合、SPIは複数のシールド間で共有できるマスタ/スレーブバスプロトコルであるため、各シールドに固有の「チップセレクト」ピンのみです。

5
追加された
ありがとう、それは素晴らしい答えです!だから、もし私がarduino Megaを使いたいとしても、それはうまくいかないでしょう。私は2つの別々のArduinoウノを使用すると思います。
追加された 著者 flakeshake,