ATtiny+PCF8574でLCDを使う(ATtiny85-LCD-library)


前回、PCF8574+LiquidCrystal_I2C_85V1.zip の使い方を紹介しました。
そこで、ついでなのでPCF8574+ATtiny85-LCD-library-master.zip の使い方を紹介します。

ライブラリが対応しているPCF8574とLCDの結線には、以下の2パターンがありますが
このライブラリはパターン2に対応しています。

パターン1(@)
LCD D4 D5 D6 D7 EN RW RS B/L
PCF8574 P0 P1 P2 P3 P4 P5 P6 P7

パターン2(AとB)
LCD RS RW EN B/L D4 D5 D6 D7
PCF8574 P0 P1 P2 P3 P4 P5 P6 P7

こ ちらから 「ATtiny85-LCD-library-master.zip」をダウンロードし、
展開したらLiquidCrystal_ATtinyフォルダーだけをライブラリーフォルダーに移動します。
ライブラリソースを確認しましたが、このライブラリはATtiny専用で、ATmegaでは使用することができません。
スケッチは以下の通りです。
なお、i2cアドレスは「PCF8574P」の場合は0x20、「PCF8574AP」の場合は0x38を指定してください。

/*
 * 1602 LCD Sample with ATtiny85-LCD-library-master.zip
 * https://github.com/platisd/ATtiny85-LCD-library
 *
 * PCF8574-----1602LCD-----TINY
 * A0                 -----GRD
 * A1                 -----GRD
 * A2                 -----GRD
 * P0     ----- RS
 * P1     ----- RW
 * P2     ----- EN
 * P3     ----- N/C
 * VSS                -----GRD
 * P4     ----- D4
 * P5     ----- D5
 * P6     ----- D6
 * P7     ----- D7
 * VDD                -----5V
 *
 * PCF8574-----1602LCD-----ATTiny85
 * SDA                -----PB0
 * SCL                -----PB2
 *
 * PCF8574-----1602LCD-----ATTiny84
 * SDA                -----PA6
 * SCL                -----PA4
 *
 * PCF8574-----1602LCD-----ATTiny861
 * SDA                -----PB0
 * SCL                -----PB2
 *
 * PCF8574-----1602LCD-----ATTiny4313
 * SDA                -----PB5
 * SCL                -----PB7
 */

#include <TinyWireM.h>
#include <LiquidCrystal_attiny.h>

#define i2cAddress 0x20

LiquidCrystal_I2C lcd(i2cAddress,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
    lcd.init(); // initialize the lcd
}

void loop()
{
  static int number=0;
  char buf[21];

  if (number < 100) {
    lcd.setCursor(0, 0);
  // Print a message to the LCD.
    sprintf(buf,"Hello, World %03d!",number++);
    lcd.print(buf);

  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
    lcd.setCursor(0, 1);
  // print the number of seconds since reset:
    lcd.print(millis());
  }
}


【ATtiny84@1MHz】
以下の結線で上記のスケッチが動きます。
FemtoCowのAddOnを使ってコンパイルしています。



【ATtiny85@1MHz】
以下の結線で上記のスケッチが動きます。



【ATtiny861@1Mhz】
以下の結線で上記のスケッチが動きます。



【ATtiny4313@1MHz】
以下の結線で上記のスケッチが動きます。



パフォーマンスは前回と全く同じです。

続く....