ATtiny+PCF8574でLCDを使う(BackLight制御)


今までに、以下の3つのライブラリを紹介してきました。

@modified LiquidCrystal_I2C library for the ATtiny(LiquidCrystal_I2C.h と LiquidCrystal_I2C.cpp)

ADigisparkArduinoIntegration/libraries/DigisparkLCD(LiquidCrystal_I2C.h と LiquidCrystal_I2C.cpp)

Bplatisd/ATtiny85-LCD-library(LiquidCrystal_attiny.h と LiquidCrystal_attiny.cpp)

これらのいずれでもBackLightの制御を行うことができますが、ここにも違いがあります。
ヘッダーファイルのBackLightに関するdefineは以下のようになっています。

@modified LiquidCrystal_I2C library for the ATtiny
#define LCD_BACKLIGHT 0x00
#define LCD_NOBACKLIGHT 0x80


ADigisparkArduinoIntegration/libraries/DigisparkLCD
#define LCD_BACKLIGHT 0x08
#define LCD_NOBACKLIGHT 0x00


BATtiny85-LCD-library
#define LCD_BACKLIGHT 0x08
#define LCD_NOBACKLIGHT 0x00

つまり、@はBackLight-ONでGND、OFFでVCCとなり、
ABはBackLight-ONでVCC、OFFでGNDとなります。

どういうことかと言うと@はBackLightのCathode側(マイナス側)をON/OFFする仕様で
ABはBackLightのAnode側(プラス側)をON/OFFする仕様になっています。

@のライブラリを使ってBackLightを制御する場合、
以下のようにPCF8574のP7をBackLightのCathode側(マイナス側)に接続することになります。




ABのライブラリを使ってBackLightを制御する場合、
以下のようにPCF8574のP3をBackLightのAnode側(プラス側)に接続することになりますが、
LCDによっては(インピーダンスの関係か)BakLightを十分に点灯することができません。



そのような時は、以下のようにPCF8574のP3をBackLightのCathode側(マイナス側)に接続することになります。
この場合、BackLightのON/OFFが逆転動作(ONで消灯、OFFで点灯)します。



以下のような反転回路を加えてやることでBackLightのON/OFFが正しく動くようになります。
使用したトランジスターは2SC1815L、抵抗は10Kオームです。



続く....