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の利点ではないでしょうか。

▼以前の記事はこちら

I/O Expanderを使ってみる その1(MCP23S08-E/P)

はじめに  今回はI/O ExpanderのMCP23S08を使ってみました。  I/O Expanderを使うと、マイコンのピンを増やすことができます。SPI通信やI2C通信でI/O Expanderのピンを…

回路を組む

 今回はマイコンにSeeed Studio XIAO nRF52840を使いました。前回の記事で使用したものです。

▼前回の記事はこちら

nRF52840を使ってみる その1(Seeed Studio XIAO nRF52840 Sense)

はじめに  今回はSeeed Studio XIAO nRF52840というマイコンを使ってみました。小型でありながらBLE、加速度センサー、マイクなどを搭載しています。最近はSeeed Studio…

 小型のマイコンでピンを増やすことができれば、全体として小型にできるかな?と思っています。

 注意点は、MCP23017のピンからは大きな電流を流せないことです。データシートをみると、最大25mAなのかな?マイコンのピンでも同じことですが、モーターとかは厳しいでしょうね。

▼回路図はこちら

▼実際の配線はこちら

プログラムを書く

▼今回使うのはAdafruitのライブラリです。

 Arduino | Adafruit MCP23017 I2C GPIO Expander | Adafruit Learning System

▼順番にLEDを光らせる、シンプルなプログラムです。Arduino系でよく使う関数が多いので、書きやすいですね。

▼実際の動作はこちら。16個のLEDが、順番に光っています。

最後に

 I2C通信で16ピンも増やせるので、なかなか便利ですね。XIAO系のマイコンを使っていると、ピンが少なくてモータードライバー用にマイコンを追加していたのですが、省略できそうです。

▼秋月電子だとI/O Expanderの種類が少なかったのですが、他の販売店だと表面実装用の製品がありますね。

https://www.marutsu.co.jp/GoodsListNavi.jsp?path=1900250012

I/O Expanderを使ってみる その2(MCP23017)” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です