本帖最后由 504835618 于 2014-10-1 20:18 编辑
才学ARDUINO手上有几个LED ,OLED屏接触了u8glibv库,这几天有点时间,就简单的看了下u8glibv文件,学到画了几个图,希望对喜欢这个库的初学朋友有点帮助,我本人也是小白一个,希望老鸟不要见笑。下面是简单的u8glibv画的图及程序。开机画面借用本坛朋友的,在此谢谢!!
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);
#define u8g_logo_width 128//定义开机画面宽度
#define u8g_logo_height 18//定义开机画面宽高度
//------------------
const unsigned char u8g_logo_bits[] U8G_PROGMEM =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xE0,
0x03, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00,
0x00, 0xFE, 0xF9, 0xF7, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0xF8,
0x03, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF9, 0xE1, 0x03, 0x00, 0x00, 0x00,
0x00, 0x38, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFC, 0xEF, 0xF9, 0x8F, 0xD7, 0x73, 0xF1, 0xC1, 0x3B, 0x9F, 0xFF,
0xFF, 0x1E, 0x3E, 0x00, 0x00, 0xBC, 0xEF, 0xC1, 0xE1, 0x9F, 0xFF, 0xDD,
0xE3, 0x3F, 0xCC, 0xE1, 0xF0, 0xBF, 0x7B, 0x00, 0x00, 0x3C, 0xF7, 0xE1,
0xE1, 0x9F, 0xFF, 0xC6, 0xF7, 0x3E, 0x8E, 0xF3, 0xF0, 0xFF, 0xF8, 0x00,
0x00, 0x3C, 0xF3, 0xE1, 0xF1, 0x93, 0xFF, 0xE6, 0xF7, 0x3C, 0x8F, 0xF7,
0xF0, 0xFF, 0xFC, 0x00, 0x00, 0x7C, 0xF2, 0xE1, 0xF1, 0x83, 0x87, 0xFE,
0xF7, 0x39, 0xFF, 0xF7, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x7C, 0xF0, 0xE3,
0xF3, 0xA3, 0x03, 0xFE, 0xF7, 0x3F, 0xFF, 0xF7, 0x71, 0xFC, 0xFF, 0x00,
0x00, 0x7C, 0xF8, 0xE3, 0xF3, 0xBF, 0x03, 0xFE, 0xE3, 0x3F, 0xFF, 0xF3,
0x71, 0xDC, 0x7F, 0x00, 0x00, 0x7E, 0xFC, 0xE7, 0xE3, 0xBF, 0x03, 0xFC,
0xE3, 0x3F, 0xFE, 0xF3, 0x71, 0x9C, 0x7F, 0x00, 0x00, 0xC1, 0x03, 0xF8,
0xCF, 0xE7, 0x0F, 0xF0, 0x00, 0x7F, 0xFC, 0xFC, 0xFF, 0x3E, 0x1E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void setup() {
// Start the I2C interface
volcdlogo(0, 28);//开始画面X,Y
Serial.begin(9600);
}
//------开机画面----------
void volcdlogo(unsigned int x, unsigned int y)
{
//u8g.setRot180();//屏幕旋转x度
u8g.firstPage();
do
{
u8g.drawXBMP( x, y, u8g_logo_width, u8g_logo_height, u8g_logo_bits);//调用上面的图像代码
}
while( u8g.nextPage() );
delay(3000);//延时5秒到下一个画面
}
void loop() {
//======开始显示==========
u8g.firstPage();
do {
draw();
}
while( u8g.nextPage() );
}
//======定义的显示模式======
void draw(void) {
//u8g.setRot180();//屏幕旋转x度
u8g.drawLine(0,0 , 128, 64);//直线斜线X-X1,Y-Y1,改变X1,Y1可以改变线的角度
u8g.drawHLine(0,0,128);//x,y,L直线改变L可以改变长度
//u8g.drawPixel(16,32);//像素
u8g.drawFrame(5,15,20,20);//矩形X,Y,W,H
u8g.drawRFrame(30,15,20,20,5);//四边斜角型X,Y,W,H,R=四边的角
u8g.drawBox(55,15,20,20);//x, y, w, h实心矩形
u8g.drawRBox(80,15,20,20,5);//x, y, w, h,r斜角实心型
u8g.drawCircle(15,50,10,30);// x0, y0, rad=圆的大小, opt缺口的方向
u8g.drawDisc(115,25,10,30);//x0, y0, rad, opt实心圆
u8g.drawEllipse(40,50,10,5);//x0, y0, rad, opt椭圆形
u8g.drawEllipse(40,50,5,10);//x0, y0, rad, opt椭圆形
u8g.drawFilledEllipse(65,50,5,10);//x0, y0, rad, opt 实心椭圆形
u8g.drawFilledEllipse(65,50,10,5);//x0, y0, rad, opt 实心椭圆形
u8g.drawTriangle(90,55,100,45,80,45);//x0, y0, x1, y1, x2, y2三角关系
}
|