タグ付けされた質問 「i2c」

3
ArduinoでI2Cデバイスを使用するにはどうすればよいですか?
16ビットポートエクスパンダー(MCP23017)など、さまざまなプロジェクトで使用したいいくつかの便利なI2Cコンポーネントがあります。 これらをArduinoで動作させるには何をする必要がありますか?Arduinoで動作しますか、それとも特定のボードまたはシールドが必要ですか?
12 i2c 

2
安価な有線マルチポイントメッシュネットワーク
インタラクティブなダンスフロア用に、負荷センサーとRGB LEDの15 x 15グリッドを作成したいと考えています。各ノードはArduinoによって駆動され、フロア全体はRaspberryPiによって管理されます。私はノードがPiと通信するための最良の方法を見つけ出そうとしています。理想的には、ネットワークには次の特性があります。 ノードあたりの低コスト マスターとしてのRaspberry Pi、スレーブとしてのarduinoノード 各ノードがグリッドのどこにあるかを知る能力 修復:ノードがダウンしても、他のノードはすべて削除されません。 壊れたノードを簡単に置き換えることができます 各ノードの電子機器は約12インチ離れています。 マスターはマトリックスから5〜10フィート離れています。 これまでのところ、私はいくつかのイデアについて苦労しています。 I2C これにより、各ノードをアドレス指定できるようになりますが、Arduinoでは最大127個のアドレスしか許可されず、このマトリックスには少なくとも225個のノードがあるようです。 SPI デイジーチェーン接続されている場合、各ノードがマトリックスのどこにあるかを簡単に知ることができます。しかし、1つのノードが通信を停止した後ですべてのノードを切断した場合。(右?)各行を個別にデイジーチェーンで接続できるので、1つがダウンしてもその行にのみ影響します。 1-Wire 1-wireも有望に見えます。ノードの配置を決定する独自の方法を理解する必要があります。これは、さまざまな方法で実現できます。 カスタムシリアル 各ノードには、4つの側面のそれぞれにシリアル接続(rx / tx)があります。これにより、各ネイバーと直接通信し、自分宛でないメッセージを渡すことができます。1つのノードがダウンした場合、各宛先へのパスがいくつかあるため、メッセージは自動的に壊れたノードの周りにルーティングされます。このオプションは少しおかしいので、あまりにもカスタムで複雑なものは避けたいと思います。 USB これには、各ノードにUSBハブが必要です。 XBee高 すぎる。 他の考えやオプション?
11 serial  i2c  spi  networking 


7
I2C LCDシリアルインターフェースボードがテキストを表示しない(ピンが間違っていますか?)
1602のLCD画面があり、それだけで問題なく動作します。しかし、私が別に購入したI2C / IIC LCDコントローラーを使用していくつかのピンを解放したかったのです。 コントローラーが正しいアドレスでArduino UNOと通信しているようですが、テキストを表示できません。デフォルトでは(コードなし)、LCDには16の実線の「正方形」が1行あるようです。私のコードでアドレス27を使用すると、LCDは16マスの2行に変わります(下の写真を参照)。このコードでは、バックライトを3回点滅させることもできます。しかし、私は2行の正方形以外は何も得ることができません。(完全なコードはこの質問の最後にあります)。 F MalpartidaによるLiquidCrystal_I2Cライブラリを使用していますが、これは一般的に使用されているようです。 私が使用すべきより良いライブラリはありますか? 私はそれがコードで使用されている間違ったピンであるかどうか疑問に思っています。オンラインで見るすべてのスケッチは、次のピンを使用しています。 // addr,en,rw,rs,d4,d5,d6,d7,bl,blpol LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address しかし、私がオンラインで見る1602 LCDはすべて、私の写真と同じように、私のピンと同じです。 これらのピンは標準のようです: さらに混乱を招くように、LCDボードのピンは左側の1から始まりますが、デフォルトのコードのピンは0から始まるようです!そこで、コードのピンをLCDボードの番号に変更してみました。LCDが2行の正方形に変化しなくなり、バックライトが点滅しなくなりました。次に、各ピンから1を引いて(0から開始する)、同じ結果を得ました。次に、デフォルトのピンマイナス1を使用してみましたが、同じ結果が得られました。したがって、デフォルトのピンはどういうわけかより正確ですか?何が悪いのですか? 他の誰かがこれらのI2Cコントローラーの1つをそれらのために動作させるようにしましたか? 完全なコード: /* YourDuino.com Example Software Sketch 16 character 2 line I2C Display Backpack Interface labelled "YwRobot …
9 i2c  lcd 

4
voidループ外の関数はどのように機能しますか?
Arduinoのスケッチで、void setup()1回実行するvoid loop()部分とループし続ける部分を使用することに慣れています。メインの外部にvoid関数があるとどうなりますvoid loop()か?これらはすべて並行してループし続けますか、それとも次々に実行されますか?または、特定のvoid関数は、特定の基準が満たされた場合にのみ実行されますか(whileループなど)? たとえば、以下のコードではvoid receiveData(int byteCount)、void sendData()関数と関数はいつ実行されますか? //I2C_test //This code demonstrates communication via an I2C bus between a raspberry pi and an arduino. //When the Raspberry pi (master) sends data to the Arduino (slave), the Arduino uses this //data to control a motor. After the Arduino has recieved data …

1
I2Cで「NACK受信」とはどういう意味ですか?
I2Cについて読んでいます。このサイトで: http://playground.arduino.cc/Main/WireLibraryDetailedReference#endTransmission それはendTransmission()次のステータスコードのいずれかを返すことができると言います: 0:送信に成功しました。 1:送信バッファーがtwiバッファーに対して大きすぎます。twi.hで設定されたTWIバッファー長は、Wire.hで設定された送信バッファー長と同等であるため、これは発生しません。 2:アドレスが送信され、NACKが受信されました。これは問題であり、マスターはSTOP条件を送信する必要があります。 3:データが送信され、NACKが受信されました。これは、スレーブが送信する必要がないことを意味します。マスターは、STOP条件または繰り返しSTARTを送信できます。4:別のtwiエラーが発生しました(たとえば、マスターがバスアービトレーションを失った)。 Arduinoに何も接続しない場合(またはSDA / SCLの両方にプルアップ抵抗を使用する場合)、常にステータス2を取得します。それは何か他の意味ですか? これが私のサンプルコードです #include "Wire.h" void setup() { Serial.begin(9600); Wire.begin(); } void loop() { Wire.beginTransmission(42); Wire.write(0); byte status = Wire.endTransmission(); Serial.println(status); // always prints 2 }
8 i2c 

2
I2Cによる書き込みスケッチ
純粋なArduinoの質問ではありません。私は実際にはスタンドアロンのATmega168を使用しています。これまでのところ、AVR-ISPプログラマー(AVR Studioから作業中)を使用してチップをプログラミングしています。すべてが完了すると、チップはカバーされ、I2Cピンにしかアクセスできなくなります。MISO、MOSIなどのピンは到達不能になります。 I2Cピンを使用して、チップに焼き付けられたプログラムを更新する方法があるのか​​と思っていました。ブートローダーを再度書き込む必要はありませんが、必要に応じてプログラムを更新するだけです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.