|
- /*
- 【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
- 實驗九十七: 0.96寸I2C IIC通信128*64顯示器 OLED液晶屏模塊
- 安裝驅(qū)動庫:工具—管理庫—搜索“U8glib”-下載-安裝
- 實驗接線:A4---SDA, A5---SCL
- 項目三:將U8Glib標(biāo)志放在顯示屏上(Put the U8GLIB logo on the display.)
- 顯示“Copyright (c) 2019, eagler8@126.com”
- */
- #include "U8glib.h"
- U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);
- void drawColorBox(void)
- {
- u8g_uint_t w, h;
- u8g_uint_t r, g, b;
- w = u8g.getWidth() / 32;
- h = u8g.getHeight() / 8;
- for ( b = 0; b < 4; b++ )
- for ( g = 0; g < 8; g++ )
- for ( r = 0; r < 8; r++ )
- {
- u8g.setColorIndex((r << 5) | (g << 2) | b );
- u8g.drawBox(g * w + b * w * 8, r * h, w, h);
- }
- }
- void drawLogo(uint8_t d)
- {
- #ifdef MINI_LOGO
- u8g.setFont(u8g_font_gdr17r);
- u8g.drawStr(0 + d, 22 + d, "U");
- u8g.setFont(u8g_font_gdr20n);
- u8g.drawStr90(17 + d, 8 + d, "8");
- u8g.setFont(u8g_font_gdr17r);
- u8g.drawStr(39 + d, 22 + d, "g");
- u8g.drawHLine(2 + d, 25 + d, 34);
- u8g.drawVLine(32 + d, 22 + d, 12);
- #else
- u8g.setFont(u8g_font_gdr25r);
- u8g.drawStr(0 + d, 30 + d, "U");
- u8g.setFont(u8g_font_gdr30n);
- u8g.drawStr90(23 + d, 10 + d, "8");
- u8g.setFont(u8g_font_gdr25r);
- u8g.drawStr(53 + d, 30 + d, "g");
- u8g.drawHLine(2 + d, 35 + d, 47);
- u8g.drawVLine(45 + d, 32 + d, 12);
- #endif
- }
- void drawURL(void)
- {
- #ifndef MINI_LOGO
- u8g.setFont(u8g_font_4x6);
- if ( u8g.getHeight() < 59 )
- {
- u8g.drawStr(53, 9, "Copyright (c) 2019,");
- u8g.drawStr(77, 18, "eagler8@126.com");
- }
- else
- {
- u8g.drawStr(1, 54, " Copyright (c) 2019, eagler8@126.com");
- }
- #endif
- }
- void draw(void) {
- if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
- drawColorBox();
- }
- u8g.setColorIndex(1);
- if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) {
- drawLogo(2);
- u8g.setColorIndex(2);
- drawLogo(1);
- u8g.setColorIndex(3);
- }
- drawLogo(0);
- drawURL();
- }
- void setup(void) {
- }
- void loop(void) {
- u8g.firstPage();
- do {
- draw();
- u8g.setColorIndex(1);
- } while ( u8g.nextPage() );
- delay(200);
- }
復(fù)制代碼
|
|