【arduinoメモ】シフトレジスタ74HC595を使用して3線でLCDを表示する2014/10/09 23:33

arduinoのLCDライブラリを使えば、簡単な記述でLCDに文字を表示出来る。
ただしDigitalピンを6本使う。なるべく使用するピンの数を少なくしたい。

■事前準備
下記からダウンロードしたLCDライブラリでarduinoのLCDライブラリを上書きする。
<https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home>
ライブラリには2線用、3線用、I2C用などがあるが、3線用をつかう。ヘッダ宣言は以下を使う。
#include "LiquidCrystal_SR3W.h"

■配線図
シフトレジスタ(74HC595) -LCD(SD1602VBWB)間の接続
Qa0  - 11
Qb1  - 12
Qc2  - 13
Qd3  - 14
Qe4  - 6
Qf5  - 5
Qg6  - 4
※SD1602VBWBの場合、実際のピンの順番は左から14-1、16、15となるので注意

■スケッチ
スケッチ上でLCD定義する時に、通常は
  LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
  ※引数は(rs, enable, d4, d5, d6, d7)

と記述する所を
   LiquidCrystal_SR3W lcd(7, 8, 9);
   ※引数は(uint8_t data, uint8_t clk, uint8_t strobe)

とすればよい。

あとはLCDライブラリと同じように使える。
  lcd.print("hello, world!");
とすれば、その通り表示される。

使用したLCD(SD1602VBWB)はバックライトが機能する。
右端が15ピン(バックライト用VCC、上限3.3V)と16ピン(GND)。
LCDの外周までブルーに光る様がトロンみたいでカッコイイ。
上記のスケッチはこちら


■その他 arduino FIO上で3Vで動作可能か確認する。
LCDのVCCは5V必要。FIOは3.3Vなので、3.3Vを5Vに昇圧してLCDのVCC(ピン2)に入れる。
他のピンは3.3Vでも動くので同じ構成で試す。
これでも動く。実際にやるならUSBから5V取ってLCDのVCCにつなげた方が楽。
FIOつかったプロジェクトに適用したい。