ArduinoとRaspberryPiをI2Cでつなぐ


ArduinoとRaspberryPiを繋ぐ方法としてはUARTもありますが、Arduinoは5V RaspberryPiは3.3Vでレベル変換が必要となります。
http://blog.retep.org/2014/02/15/connecting-an-arduino-to-a-raspberry-pi-using-i2c/
では2つのデバイスをレベル変換無しで簡易的に接続する方法を紹介しています。
方法としてはI2Cがベストとのこと。
UART(RS232Cなど)ではlow-highの電圧で通信するのに対してI2Cではpulldown-highzで通信します。I2Cでは通信線にあらかじめかかっている電圧をそのままにしたりGNDにつないじゃったりして通信するので、お互いの電圧が違っても問題ありません。もちろん相手の入力限界より高い電圧がかからないように、かつ、相手がちゃんと0と1を認識できるレベルで通信する必要があります。
今回の場合は3.3Vでうまく動いたようですね。
サイトではArduinoとRaspberryPiをそれぞれI2Cで通信されるC言語のプログラムが公開されています。非常に参考になりますね。