お次はこれ。
青色7セグメントLEDシリアルドライバモジュール 完成品
データシート
7セグLEDをシリアル通信(SPI通信)で点灯してみたい。
Raspberry Piで秋月の7セグLEDシリアルドライバを使用する
このページを参考にした。5V接続。
サンプルコードコピペしただけでいとも簡単に動いた。しかも表示がラッチされる(プログラムを終了しても点灯状態が維持される)。素晴らしい。そしてモジュールってすごい楽。しかし楽な反面、SPI通信の仕組みについてはあまり勉強にならなかった。
Raspberry Pi GPIOを使用したSPI通信(温度センサ)
SPI通信の標準モード接続はこれ。ここによると、ラズパイのピン数だと2スレーブまでしか制御できないことになる。しかし、デイジーチェーン接続を使うと、より多くのデバイスを接続できる。
と思いきや、このデイジーチェーン接続は、ところてんの様に各スレーブ間でデータが押し出されていく形式。つまり、各スレーブを完全に独自に制御できるわけではないということ。各スレーブから順々にデータを取り出していくことや、順々にデータを渡していく方式に使えそう。それ以外の複数デバイス制御には、任意のアドレスを指定できるためSPI通信ではなくI2C通信のほうが適していそうだ。
ちなみにこれ、表示がラッチされるが、GPIO1ピン16mAの電流制限はよいのだろうか。データシート上は45mAとなっているが。。と、いうことは、ナマの7セグモジュールをつなげてはだめで、電流制限抵抗が必要だったかもしれない。あるいはGPIOとは別の5V電源を用意するか。ラズパイはUSBから電流を供給されているのだから、GPIOピンの制限によらない電流供給も可能なように見えるが。それが1番ピンのことなのだろうか?
ここによると、3.3Vと5Vのピンは大きな電流を供給可能なようだ。よかった。
