コントローラ基盤 Vol.12014年10月29日

ちょっと、光もので遊んでいます。

e-bayで1個 $1.03で見つけた16桁2行、20桁4行表示のキャラクターLCDをI2C接続するためのコントローラーモジュールで遊んでみました。使用しているコントローラーICは汎用IO拡張ICのPCF8574、またはPCF8574Aです。このコントローラはI2Cバスから受け取ったデータをそのままP0~P7データピンに出力します。I2CバスにLCDのコマンドやデータを順次送ることで表示させます。今回購入したものはさすが中国製、5個注文して内2個はPCF8574で残りはPCF8574Aを使用したものが届きました。I2Cアドレスの割り振りが異なる以外に違いはないのでOKです。国内ではaitendoで同種のコントローラー基板を販売しています。


ArduinoにキャラクターLCDを接続するとデジタルピンを最低6個消費してしまします。I2C接続ならアナログピンを2個使用するだけで接続できます。ArduinoのLCDライブラリーと同じ機能を提供するI2C接続LCDライブラリーがあります。


aitendoにはPCF8574を使用したGPIOエキスパンダという汎用のGPIO拡張基板もあります。こちらはすべてのピンが引き出されています。PCF8574ライブラリーが利用できます。


【ツール】
I2Cバスに接続されている機器を検索しIDを表示してくれるスキャナーがあると便利です。

  • Raspberry Pi (Linux)ではコマンドが用意されていますから叩くだけです。ツールのインストールは、apt-get install i2c-tools で行います。
    $ sudo i2cdetect 0
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-0.
    I will probe address range 0x03-0x77.
    Continue? [Y/n] y
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: 70 -- -- -- -- -- -- --

  • Arduinoでは簡単なスケッチを書き込むことでI2Cバスに接続されている機器のアドレスをシリアルに出力してくれます。Arduino Playgroundを参照してください。

コメント

トラックバック

このエントリのトラックバックURL: http://azss.asablo.jp/blog/2014/10/29/7483555/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。