#include<Wire.h>
#define OLED_ADRS 0x3C //SA0=L(SA0=Hの場合は0x3D)
int DisplayON = 0x0F,
ClearDisplay = 0x01,
ReturnHome = 0x02;
void setup() {
Wire.begin();//Wireライブラリを初期化し、I2Cマスタとしてバスに接続
init_oled();
}
void loop() {
char moji[] = "I2C OLED WHITE12345";
for(int i=0;i<20;i++){
writeData(moji[i]);
}
writeCommand(0x20+0x80);//2行目の先頭
for(int i=0;i<20;i++){
writeData(i + 0xB1);
}
contrast_max();//輝度を最大に設定
while(1){}
}
//----main end----
void writeData(byte t_data){
Wire.beginTransmission(OLED_ADRS);
Wire.write(0x40);
Wire.write(t_data);
Wire.endTransmission();
delay(1);
}
void writeCommand(byte t_command){
Wire.beginTransmission(OLED_ADRS);
Wire.write(0x00);
Wire.write(t_command);
Wire.endTransmission();
delay(10);
}
void contrast_max(){
writeCommand(0x2A);//RE=1
writeCommand(0x79);//SD=1
writeCommand(0x81);//コントラストセット
writeCommand(0xFF);//輝度MAX
writeCommand(0x78);//SDを0に戻す
writeCommand(0x28);//2C=高文字 28=ノーマル
delay(100);
}
void init_oled(){
delay(100);
writeCommand(ClearDisplay);
delay(20);
writeCommand(ReturnHome);
delay(2);
writeCommand(DisplayON);
delay(2);
writeCommand(ClearDisplay);
delay(20);
}
2016年3月4日金曜日
OLEDモジュール SO1602AWWB-UC-WB
I2Cプログラム例
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿