#include <SPI.h>
#define PWR 8
#define RS 9
#define CS 10
uint8_t pic[6][128] ={{0,0,0,0,128,192,192,224,224,224,224,224,224,224,224,224,224,96,0,0,0,0,0,0,0,0,0,0,0,0,128,224,224,224,224,224,224,224,224,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,31,3,0,0,0,0,0,0,0,0,0,0,224,248,254,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,60,126,126,231,231,199,199,206,142,140,0,0,3,63,255,252,0,0,240,254,30,62,248,240,0,0,254,255,15,0,0,255,255,255,0,7,7,7,7,255,255,255,7,7,7,7,0,248,252,254,15,7,7,7,7,15,30,28,0,0,0,255,255,255,224,224,224,224,255,255,255,0,0,0,0,0,0,0},
{0,0,0,0,255,255,255,255,255,255,255,255,191,135,128,128,128,128,128,128,128,128,0,0,0,0,7,7,7,7,7,135,199,231,247,251,255,255,255,255,255,255,0,0,0,0,0,0,0,0,12,28,60,56,48,48,49,57,63,31,15,0,0,0,7,63,62,62,63,7,0,0,7,63,62,62,63,7,0,0,0,63,63,63,0,0,0,0,0,63,63,63,0,0,0,0,0,3,15,31,28,56,56,56,56,28,30,14,0,0,0,63,63,63,0,0,0,0,63,63,63,0,0,0,0,0,0,0},
{0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,31,3,0,0,128,192,224,240,248,252,254,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,224,176,24,8,8,8,8,16,48,0,0,0,192,48,16,8,8,8,24,16,96,0,0,0,248,0,0,0,248,8,8,8,8,8,8,8,0,0,0,248,16,96,192,0,0,0,0,0,248,0,0,0,192,48,16,8,8,8,24,16,96,0,0,248,8,8,8,8,8,8,8,0,0,0,0,0,0,0},
{0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,239,227,240,248,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,96,193,129,3,2,2,6,132,204,120,0,15,112,192,128,0,0,0,0,192,96,0,0,0,255,0,0,0,255,2,2,2,2,2,2,2,0,0,0,255,0,0,0,3,12,24,96,192,255,0,0,15,112,192,128,0,0,0,0,192,96,0,0,255,2,2,2,2,2,2,2,0,0,0,0,0,0,0},
{0,0,0,0,1,3,3,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,3,3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
};
void lcdCmd(uint8_t cmd){
digitalWrite(RS,LOW);
digitalWrite(CS,LOW);
SPI.transfer(cmd);
digitalWrite(CS,HIGH);
}
void lcdData(uint8_t data){
digitalWrite(RS,HIGH);
digitalWrite(CS,LOW);
SPI.transfer(data);
digitalWrite(CS,HIGH);
}
void initLCD(){
lcdCmd(0xAE); //Display = OFF
lcdCmd(0xA0); //ADC = normal
lcdCmd(0xC8); //Common output = revers
lcdCmd(0xA3); //LCD bias = 1/7
//内部レギュレータON
lcdCmd(0x2C);
delay(2);
lcdCmd(0x2E);
delay(2);
lcdCmd(0x2F);
//コントラスト設定
lcdCmd(0x23); //Vo voltage regulator internal resistor ratio set
lcdCmd(0x81); //Electronic volume mode set
lcdCmd(0x1C); //Electronic volume register set
//表示設定
lcdCmd(0xA4); //Display all point ON/OFF = normal
lcdCmd(0x40); //Display start line = 0
lcdCmd(0xA6); //Display normal/revers = normal
lcdCmd(0xAF); //Dsiplay = ON
}
void setup() {
pinMode(PWR,OUTPUT);
pinMode(RS,OUTPUT);
pinMode(CS,OUTPUT);
digitalWrite(PWR,HIGH);
digitalWrite(CS,HIGH);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV2);
SPI.setDataMode(SPI_MODE3);
initLCD(); //LCD初期化
}
void loop() {
for(int page=0;page<6;page++){
lcdCmd(0xb0+page); //ページアドレス選択
lcdCmd(0x10); //カラムアドレス上位4bit = 0000
lcdCmd(0x00); //カラムアドレス下位4bit = 0000
for(int col=0;col<128;col++){
lcdData(pic[page][col]);
}
}
delay(1000);
}