このブログを検索

2019/12/22

秋月電子 I2C接続キャラクタLCDモジュール 16x2行 白色バックライト付 ACM1602N1-FLW-FBW

参考
http://skomo.o.oo7.jp/f47/hp47_54.htm

ピンヘッダをはんだ付け

各ピンの機能

1(VSS)Ground
2(VDD)3.3V
3(Vo)LCD contrast adjust
4(SCL)SERIAL CLOCK INPUT
5(SDA)SERIAL DATA INPUT
6(BL+)Power supply for BL+
7(BL-)Power supply for BL-

arduino unoとの接続(ブレッドボード)

1 - Ground
2 - 3.3V
3 - 半固定抵抗の真ん中
4 - A4
5 - A5
6 - 3.3V
7 - Ground

半固定抵抗の両端をGround, 3.3Vへ

スケッチ

上記リンクのものをそのまま使って表示できた。
以下に転載

#include <Wire.h>
const char table[]={"From fairest creatures we desire "};

void setup() 
{
  Wire.begin();       // I2C初期化
  LCD_begin();

  byte i;
  writeCmd(0x80);//ディスプレイON、CURSOR-OFF、blinking-OFF
  delay(5);
  for(i=0;i<16;i++)
  {
    writeData(table[i]);
    delay();
  }
  writeCmd(0xC0);//2行目の先頭に移動
  delay(5);
  for(i=16;i<32;i++)
  {
    writeData(table[i]);
    delay(5);
  }
}

void loop() {}

void LCD_begin(void)
{
  // LCD初期化
  delay(15);
  writeCmd(0x01);//クリア ディスプレイ
  delay(5);
  writeCmd(0x38);//8ビットモード、2ライン、5x8ドット
  delay(5);
  writeCmd(0x0f);//ディスプレイON、CURSOR-ON、blinking-ON
  delay(5);
  writeCmd(0x06);//CURSOR移動、スクロールOFF
  delay(5);
}

void writeCmd(uint8_t cmd) 
{
  uint8_t rs_flg;
  Wire.beginTransmission(0x50);
  rs_flg = 0x00;
  Wire.write(rs_flg);
  Wire.write(cmd);
  Wire.endTransmission();
}

void writeData(uint8_t dat) 
{
  Wire.beginTransmission(0x50);
  Wire.write(0x80);
  Wire.write(dat);
  Wire.endTransmission();
}