U8glib库参考文档:
http://www.geek-workshop.com/thread-10634-1-1.html
OLED显示屏接线和基本测试
http://www.jianshu.com/p/01828256b373
汉字取模方法:
http://www.jianshu.com/p/3477a8eb29cf (与图片取模方法类似,直接打字即可)
arduino OLED显示汉字和传感器的模拟值
程序如下:
//这个程序只是一个汉字和数值动图显示的演示。
//用汉字取模软件“字模提取V2.2”得到汉字的编码,具体方法参加上一篇文章
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI
#define word1W 16 //定义第一个汉字的宽度
#define word1H 16 //定义第一个汉字的高度
#define word2W 16 //定义第二个汉字的宽度
#define word2H 16 //定义第二个汉字的高度
//第一个汉字的编码
static unsigned char word1[] U8G_PROGMEM = {
0x00,0x00,0xBE,0x7F,0xA2,0x00,0xA2,0x00,0xA2,0x00,0xBE,0x3F,0x88,0x20,0x88,0x20,
0xBA,0x20,0x8A,0x20,0x8A,0x3F,0x8A,0x00,0xBA,0x00,0x87,0x00,0x80,0x7F,0x00,0x00};
//第二个汉字的编码
static unsigned char word2[] U8G_PROGMEM = {
0x40,0x00,0x80,0x00,0xFF,0x7F,0x00,0x00,0x28,0x0A,0xC8,0x09,0x28,0x0A,0xF8,0x0F,
0x80,0x00,0xFE,0x3F,0x42,0x20,0x22,0x22,0xF2,0x27,0x22,0x24,0x02,0x28,0x02,0x10};
//绘画第一个汉字的子程序
void word1draw(void) {
// graphic commands to redraw the complete screen should be placed here
u8g.drawXBMP( 0, 0,word1W,word1H, word1);//x坐标0,y坐标0,宽度,高度,编码word1
}
//绘画第二个汉字的子程序
void word2draw(void) {
// graphic commands to redraw the complete screen should be placed here
u8g.drawXBMP( 18, 0,word2W,word2H, word2);//x坐标18,y坐标0,宽度,高度,编码word2
}
void setup(void) {
}
void loop(void) {
// picture loop
int val = analogRead(0);//获取A0模拟值 赋值给val
u8g.firstPage();
do {
word1draw();//调用绘画第一个汉字的子程序显示汉字
word2draw();//调用绘画第二个汉字的子程序显示汉字
u8g.setFont(u8g_font_fub30);//设置字体和自号,目前测试字号有fub14,17,20,30,49n
u8g.setPrintPos(0, 50); //显示的位置
u8g.print(val);//显示变量val的值
u8g.setFont(u8g_font_fub14);//设置字体和自号,目前测试字号有fub14,17,20,30
u8g.setPrintPos(95, 50); //显示的位置
u8g.print("cm");//显示单位
} while( u8g.nextPage() );
// rebuild the picture after some delay
delay(500); //数值刷新延迟时间
}