#include <Wire.h>
const char table[]={"This is program for The AMC1602 "};
void setup()
{
Serial.begin(115200);
Serial.println("¥n¥nsetup Serial.begin(115200)");
Serial.println("setup Wire.begin(5, 4)");
Wire.begin(5, 4); // I2C初期化 ESP-WROOM-32用
// Serial.println("setup Wire.begin()");
// Wire.begin(); // I2C初期化 ArduinoProMini用
Serial.println("setup LCD_begin()");
LCD_begin();
Serial.println("setup displayString()");
displayString();
}
void loop() {
// displayString();
}
void LCD_begin(void)
{
Serial.println("LCD_begin(void)");
// LCD初期化
delay(15);
Serial.println("LCD_begin writeCmd(0x01)");
writeCmd(0x01);//クリア ディスプレイ
delay(5);
Serial.println("LCD_begin writeCmd(0x38)");
writeCmd(0x38);//8ビットモード、2ライン、5x8ドット
delay(5);
Serial.println("LCD_begin writeCmd(0x0f)");
writeCmd(0x0f);//ディスプレイON、CURSOR-ON、blinking-ON
delay(5);
Serial.println("LCD_begin writeCmd(0x06)");
writeCmd(0x06);//CURSOR移動、スクロールOFF
delay(5);
}
void writeCmd(uint8_t cmd)
{
Serial.print(" writeCmd(");
Serial.print(cmd);
Serial.println(")");
uint8_t rs_flg;
Serial.println(" writeCmd Wire.beginTransmission(0x50)");
Wire.beginTransmission(0x50);
rs_flg = 0x00;
Serial.println(" writeCmd Wire.write(rs_flg)");
Wire.write(rs_flg);
Serial.print(" writeCmd Wire.write(");
Serial.print(cmd);
Serial.println(")");
Wire.write(cmd);
Serial.print(" writeCmd Wire.endTransmission() ");
Serial.println(Wire.endTransmission());
}
void writeData(uint8_t dat)
{
Serial.print(" writeData(");
Serial.print(dat);
Serial.println(")");
Serial.println(" Wire.beginTransmission(0x50)");
Wire.beginTransmission(0x50);
Serial.println(" Wire.write(0x80)");
Wire.write(0x80);
Serial.println(" Wire.write(dat)");
Wire.write(dat);
Serial.print(" writeData Wire.endTransmission() ");
Serial.println(Wire.endTransmission());
}
void displayString(void)
{
byte i;
Serial.println("displayString riteCmd(0x80)");
writeCmd(0x80);//ディスプレイON、CURSOR-OFF、blinking-OFF
delay(5);
Serial.println("displayString writeData START");
for(i=0;i<16;i++)
{
Serial.print("displayString writeData(table[i]) [");
Serial.print(table[i]);
Serial.println("]");
writeData(table[i]);
delay(5);
}
Serial.println("displayString writeData END");
Serial.println("displayString writeCmd(0xC0)");
writeCmd(0xC0);//2行目の先頭に移動
delay(5);
Serial.println("displayString writeData START");
for(i=16;i<32;i++)
{
Serial.print("displayString writeData(table[i]) [");
Serial.print(table[i]);
Serial.println("]");
writeData(table[i]);
delay(5);
}
Serial.println("displayString writeData END");
}