ArduinoでI2C信号をモニタする

SCL, SDAをモニタするのに、専用の機材(ロジックアナライザ等)を使う、LEDを光らせる、等がありますが、ここではせっかくI2C slaveをArduinoで作っているのでArduinoの機能を使います。

従来はシリアルモニタでキャラクタコードを出力していたのですが、最近シリアルプロッタと言う便利な機能が追加されたのでこれを使いましょう。以下がサンプルコードです。

byte scl = 0;
byte sda = 0;

byte b = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print(scl+2);//SCLが下なのが一般的のようなので気になる人は変えて下さい
  Serial.print(",");
  Serial.print(sda);
  Serial.println("");
  
  if (b == 00) { scl=0;sda=0;}
  else if (b == 64){ scl=1;sda=0;}
  else if (b == 128){ scl=0;sda=1;}
  else if (b == 192){ scl=1;sda=1;}

  b++;
  
  }

Arduino IDEのメニューのツール>シリアルプロッタを選択すると以下のような画面が現れます。



ここまで


コメント

このブログの人気の投稿

i2c-tools 備忘録(内容が古くなりましたが記録として残します)

python-smbus(内容が古くなりましたが記録として残します)

I2Cシミュレータを作る