I/O Expanderを使ってみる その2(MCP23017)
はじめに
以前MCP23S08というI/O Expanderを使いましたが、今回はMCP23017です。
MCP23017はI2C通信で16ピンまで増やせます。しかもアドレスを指定するピンが3つあるので、8つまで追加できそうですね。
MCP23S08はSPI通信で8ピンまで、アドレス指定用のピンは2つでした。
つまりどういうことかというと、I2C通信用の2本の信号線で、I/Oピンをいっぱい増やすことができます。
▼秋月電子の販売ページはこちら。
16bit I2C I/Oエキスパンダー MCP23017: 半導体(モジュール) 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)
ピンを増やすならマイコン自体を増やすのも1つの手だと思いますが、より低価で小型なのはMCP23017の利点ではないでしょうか。
▼以前の記事はこちら
回路を組む
今回はマイコンにSeeed Studio XIAO nRF52840を使いました。前回の記事で使用したものです。
▼前回の記事はこちら
小型のマイコンでピンを増やすことができれば、全体として小型にできるかな?と思っています。
注意点は、MCP23017のピンからは大きな電流を流せないことです。データシートをみると、最大25mAなのかな?マイコンのピンでも同じことですが、モーターとかは厳しいでしょうね。
▼回路図はこちら
▼実際の配線はこちら
プログラムを書く
▼今回使うのはAdafruitのライブラリです。
Arduino | Adafruit MCP23017 I2C GPIO Expander | Adafruit Learning System
▼順番にLEDを光らせる、シンプルなプログラムです。Arduino系でよく使う関数が多いので、書きやすいですね。
▼実際の動作はこちら。16個のLEDが、順番に光っています。
最後に
I2C通信で16ピンも増やせるので、なかなか便利ですね。XIAO系のマイコンを使っていると、ピンが少なくてモータードライバー用にマイコンを追加していたのですが、省略できそうです。
▼秋月電子だとI/O Expanderの種類が少なかったのですが、他の販売店だと表面実装用の製品がありますね。
“I/O Expanderを使ってみる その2(MCP23017)” に対して1件のコメントがあります。