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によっては(PCF8574が供給する電流が不十分なのか)BakLightを十分に点灯することができません。

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

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

続く....