基本的なことがまだ理解出来ていないと思いますが、LCD(I2C接続)について教えてください。
LCD 1602A
I2C変換モジュール PCF8574
PIC 12F1822
2行で使用したいのですが
電源投入後のLCD初期化処理は次のコマンドでいいのでしょうか?
0x28
0x29
0x14
0x70
0x56
0x6c
delay 200ms
0x28
0x01
0x0c
4bitモードにしたあとは送信データだけでなく、アドレスや制御コードも4bitで送信しなくてはいけないのでしょうか?
今手元に現物がなくてわかる範囲になります、すいません。
購入したLCDとI2C変換
Amazonで下記の製品名の物になります。
WayinTop 1602 LCD ディスプレイモジュール 16×2キャラクタ 青 バックライト付き 白抜き + IIC/I2C/TWI/SPI シリアルインターフェイス シリアルI/F モジュールポート
参考にしたサイト
http://machoto2.g2.xrea.com/page/P1822/P12_A05.htm
コードについては参考にさせてもらってるところと同じです。アドレスは変えました。これをもとに4ビット試したりしました。
某掲示板でとある質問者による投稿が上の2つ。
私ならどうするだろうと考えてみた。
まあ、掲示板へ質問しに行かないことだけは確かだけど。
販売サイトに以下の情報がちゃんと書かれている。
LCDディスプレイ:
動作電圧:5V
インターフェースIC:HD44780
表示:16文字 x 2行
バックライト色:青
文字カラー:白
コントラスト調整:V0(ピン3)
サイズ:80x36x9mmI2CシリアルI/F:
動作電圧:5V
チップ:PCF8574
I2Cアドレス:デフォルト0x27、0x20~27に変更可能
ピン:GND、VCC、SDA、SCL
ピン接続:GND-GND、VCC-5V、SDA-A4、SCL-A5
半固定抵抗付き、コントラスト調整可能
サイズ:41.5x19x15.3mmLCDディスプレイのピンアサイン:
ピン1(VSS):GND
ピン2(VDD):電源(+5V)
ピン3(V0):Contrast Adj–VRでVDD-VSS間で電圧調整できるよう接続
ピン4(RS):Register Select–コマンド発行の際0,データ転送の際1にセット
ピン5(RW):Read/Write–読出:High, 書込:Low
ピン6(E):Enable Signal–通常はLowにしておき、送受信の際Positive pulseを与える
ピン7~14(D0~D7):Data Bit0~Bit7–8bitモード
ピン15(A):バックライト 電源プラス–VDDに接続可
ピン16(K):バックライト 電源マイナス–VSSに接続可I2Cシリアルインターフェイス アドレスの対応:
A0 A1 A2 I2Cアドレス
0 0 0 0x20
1 0 0 0x21
0 1 0 0x22
1 1 0 0x23
0 0 1 0x24
1 0 1 0x25
0 1 1 0x26
1 1 1 0x27
当然、真っ先にGoogle先生にお尋ねする。
「PIC HD44780 PCF8574 1602」で検索して上から7番め。
写真から見てもこれに違いない。
ソースコードと
モジュールのライブラリまで提供されていた。
持ってるはずのモジュールが見つからないので動作確認はしてない。
それでも、結論はただ一つだ。
「四の五の言わずにまずググれ。」
追記
探したら出てきた。
液晶の方は単独で使うようにピンヘッダがはんだ付けしてあった。
IICのモジュールの方もブレッドボードに挿して使うようにピンヘッダをはんだ付けした。
2014年8月1日に購入し、
「1602 16×2 HD44780 Character LCD with I2C Serial Interface Adapter Module」
2015年3月3日にIIC部分を切り離していた。
「16×2 Character LCD with I2C Module の分離」
ずいぶん荒っぽいことをやって、しかも放置してあったので、まずArduinoで動作テストした。
問題なく動作するようだ。
続けて、上で見つけたサイトから拝借したコードとライブラリをPIC16F1827に書き込む。
表示テスト無事完了。
追記
探したらPIC12F1822が出てきた。
が、メモリーが足りずにBuildできない。
と思ったらC90にしたらBuildできた。
こちらも問題なく動作した。
8pinなので実行時にICSP関連の線を外すのを忘れずに。
追記
で、肝心の質問者さんはどうなったのか、毎度毎度のフェードアウト、自然消滅、音沙汰無し。
ただのネタだったんでしょうね。