質問: Arduinos間の通信オプション 私は5〜10人のArduinosの間でコマンドとデータを送るためにコミュニケーションを探しています。 "Arduino"とは、Arduinoプログラミングフレームワークを使ってプログラムされたATmega328を意味します。 各デバイスは同じPCB上にあります。 私はI2CとSPIがある程度通信できることは知っていますが、実際には、複数のマイクロコントローラを相互に接続するのではなく、マイクロコントローラに接続された周辺機器のデバイスを意味し、通常は一度に数バイトのデータしか送信しません。一方、私はLCDディスプレイがそれらを使用して駆動できることを知っています、そして、私はそれらのケースで転送されているデータがたくさんあると思います。 マイクロコントローラ間の通信にI2C(マルチマスタ、マルチスレーブ、シングルエンド、シリアルコンピュータバス)のようなものがありますか?それぞれのデバイスが任意の他のデバイスにデータを送信することを許可する。たとえば、スイッチがデバイスAで押された場合、デバイスBは、スイッチが押されたときにデバイスBが常にAに尋ねることなく、デバイスBに通知します。およびその逆。 **Edit**: I found some libraries that may do what I want with RS-485. Is this the only viable option for ~1k bps transmission between 5-10 devices? I would imagine TCP/IP over Ethernet would work as well, but that seems like too much. Are there any I2C libraries that allow sending that amount of data between only master devices? * *
回答: @ Majenkoの優れた答えに加えて、あなたはコミュニケーションしているものについて考える必要があります。 それはあなたが単一のビットを伝えたいと思うように聞こえる - おそらくあなたは個々のピンで逃げることができますか?マスターと最大13台のスレーブがある場合は、スレーブ上の1つのピンに(抵抗を介して)接続されたマスター上の1つのピンを持つことができます。スレーブAが信号を送りたいと思ったら、ピンを上げるでしょう。マスタは次に各ピンを順番にポーリングして、誰が何を言ったかを理解することができます。