1. 程式人生 > >Ardunio + I2C OLED顯示文字和小圖案

Ardunio + I2C OLED顯示文字和小圖案

某寶上買了個I2C介面的OLED單色小顯示屏,128*64解析度。光看到賣家說給例程,就沒注意到賣家說排插柱要自己焊尷尬。好吧反正就四個,用週五下午偷懶等下班的時間動手搞定。

I2C介面的就是方便,VCC和GND分別接Arduino的5V和地,SCL和SDA也直接插在了Arduino的SCL和SDA引腳插座上(AREF邊上的那兩個)。

商家給的例程用的庫就是U8glib,用起來還是很方便的。需要注意的是u8g的定義,如果編譯不通過有可能是例程中所有u8g定義都被註釋了。例程提供了上百種定義,縱有一款適合你。我最後是嘗試了U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI 這一條才編譯通過並能正常執行。

匯入庫之後看看U8glib的Hello world例程基本上連猜帶蒙也能看懂個七八成。列印英文文字的套路基本上就是:

 u8g.setFont(u8g_font_unifont);
 u8g.drawStr( 0, 22, "Hello World!");

或者

u8g.setFont(u8g_font_baby);
u8g.setPrintPos(15,70);
u8g.print("Hello World!");

漢字還沒研究,先研究了下怎麼顯示圖案。

比方說,我要顯示這個圖案:

(120*64,BMP格式)

賣家給的例程包裡有一個“128x64取字軟體”的資料夾,給了一個PCtoLCD的工具。用它開啟BMP,選項裡設定取模方式為“逐行式”,取模走向逆向,自定義C51格式,行字首留空,行字尾改成一個半形的逗號,然後確定。這時候軟體會給出一個預覽圖,按“生成字模”按鈕,自動產生了一串程式碼,形如:

......
0x00,0xF8,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC8,0x01,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,
......

要的就是這個。

Arduino中的套路是:

#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI

然後填充這段程式碼,除了字模內容什麼都不要改:

static unsigned char bitmap[] U8G_PROGMEM = {

......
0x00,0xF8,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC8,0x01,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,
......

}

這樣就可以呼叫drawXBMP了:

void draw(void) {

  u8g.drawXBMP(0, 0, 120, 64, bitmap);

}

setup不用動,用示例中自帶的就好,

loop裡:

void loop(void) {
  // picture loop
  u8g.firstPage();
  do {
    draw();
  } while ( u8g.nextPage() );

  // rebuild the picture after some delay
  delay(500);
}

打完收工,編譯上傳看效果。

效果圖:

嗯,最近也迷上樂高了,這個坑也不小啊。。。



相關推薦

Ardunio + I2C OLED顯示文字圖案

某寶上買了個I2C介面的OLED單色小顯示屏,128*64解析度。光看到賣家說給例程,就沒注意到賣家說排插柱要自己焊。好吧反正就四個,用週五下午偷懶等下班的時間動手搞定。 I2C介面的就是方便,VCC和GND分別接Arduino的5V和地,SCL和SDA也直接插在了Ardu

MFC入門(三)-- MFC圖片/文字控制元件(迴圈顯示文字圖片的程式)

慣例附上前幾個部落格的連結: MFC入門(一)簡單配置:http://blog.csdn.net/zmdsjtu/article/details/52311107 MFC入門(二)讀取輸入字元:http://blog.csdn.net/zmdsjtu/article/details/52315088 &

6-如何顯示文字影象

通過前面幾篇的學習我們知道處理器加電或復位之後,BIOS-ROM程式就會讀取硬碟的主引導扇區(即0面0道1扇區),並將它載入到0x0000:0x7c00處,即實體地址0x07c00,並判斷是否有效。 一個有效的主引導扇區的最後兩位元組是0x55和0xAA,BIOS-ROM程式會判斷這兩個標誌

UITabBarItem不能顯示文字圖片

ViewController中加入UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"Playlists" image:[UIImage imageNamed:@"music.png"] tag:0]; se

iOS富文字編輯(在label裡顯示文字圖片)

在開始寫之前先看一下效果圖 在此效果圖中有富文字中指定的位置新增圖片,還有最後位置新增的圖片資訊 程式碼如下 呼叫方法------- 給label賦值 NSString * Str = @"中國人民解放軍萬歲,中華人民共和國萬歲,萬歲!"; sel

自定義Toast 顯示文字圖片

Toast用於提示當前應用的狀態資訊,如網路連線狀態等,一般是顯示一段文字,也可以定製自己的Toast。下面舉例說明: public class MyActivity extends Activity { /** Called when the activity is

Qlable顯示文字圖片

文字的顯示格式(1)背景色,前景色注:實際用的是第14章的QtStyleSheet的技術(2) 字型及大小(3) 對齊方式(4) 是否換行(5) 設定邊框 用於設定對齊方式和是否換行pixmap用於插入圖片frameshape用於設定文字邊框 用於匯入圖片

文字在h5程式中的顯示

後臺傳來的資料有 content: "<p><img src="http://file.rzkeji.com/web/zhaowoa/upload/2018/11/29/95fb21bb1eab0266665b1c56969c74ea.png" title="15438

使用opencv調用24*24點陣字庫8*16ASCII字庫在圖片顯示文字數字

使用 sca show alt 編碼的轉換 獲取 引用 raw 格式 課程實驗:編程讀漢字點陣字庫,把自己的名字和學號疊加到圖片的右下位置。 主要步驟分為三部分 第一部分:讀取圖片(文件讀取) 第二部分:讀取文字並從字庫中提取相應的編碼(字庫的存儲原理) 第三部分:將相

Qt學習筆記:QLabel同時顯示圖片文字

環境 系統:Windows10 64位 家庭中文版 Qt版本:5.6.0 msvc2013 64位 編譯器:Visual Studio 2013 專業版 前言 QLabel是Qt自帶的一個顯示用控制元件,可以用來顯示圖片和文字。其使用也非常方便:用setPixmap(cons

WAP移動端頁面顯示文字內容等比縮放的實現

同一個頁面,在不同顯示比例下如何等等比縮放而使頁面不會變形 比如同一個頁面下,372px 和642px顯示比例下文字大小和塊元素高度會隨著顯示的比例來等比縮放 比例始終顯示協調,不用重複除錯,其中一個重要的元素是將所有定義寬高的元素設定為rem rem是一個相對大小的值

GridView 自帶的全選表頭顯示文字,重繪表頭表頭繫結控制元件

雖然我比較喜歡GridView自帶的全選功能頭部是checkbox,不過還是有些人比較想要用文字,作為版主,分享一下經驗吧。Dev13.x開始就有GridView的全選功能,目前也越來越完善了,13.x的版本是有問題的,當初我就放棄用自帶的功能。GridView 如果設定全

MFC 子視窗工作列顯示圖示主視窗最化在系統托盤中顯示圖示

MFC子視窗工作列顯示圖示很簡單, 只需要在子視窗的初期化函式OnInitDialog()中新增ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW); 主視窗在系統托盤中顯示圖示以及恢復視窗是參考某位大神的程式碼 (一)  原理

PCL 顯示一隻白兔Eigen矩陣

1, VS2015 PCL1.8.0 相關配置參考 PCL 點雲初識 再根據debug or realse新增 lib 3, 顯示小白兔的程式 #include<pcl/visualization/cloud_viewer.h> #i

C# TreeView顯示圖片文字對應

首先在工具欄中拖出TreeView和ImageList並在ImageList中新增圖片 this.treeView1.ShowLines = false; this.treeView1.ShowPlusMinus = false; this.treeVie

html讓同一行的文字圖片居中對齊顯示

實現方法:css屬性->vertical-align:middle給行內的每個內容標籤都加上這個屬性(注:改屬性只對行內元素起作用,如果不是行內元素要加上diaplay:inline-block);實現效果如圖:(rem佈局)     <div class="sa

帶行間距的TextView,讓文字ImageSpan中的圖片居中顯示

上一篇部落格,講了怎麼讓匹配表情、連結、關鍵字等等。上篇部落格 http://blog.csdn.net/u014620028/article/details/52277102 但是,也留下了一個問題。就是行間距的問題。例如: 給展示行間距的textvie

cocos2d-x 中新增顯示文字的三種方式 LabelTTF 、LabelBMFont LabelAtlas

在 cocos2d-x 中有三個類可以在層或精靈中新增文字: LabelTTFLabelBMFontLabelAtlas LabelTTF 直接支援使用 TTF 字型檔,可以支援全部的中文,但是效率稍低。LabelBMFont 適合顯示特定的文字,通過預先將文字生成圖片,

tornadofx拖拽顯示文字檔案圖片檔案

class DragFile : View("drag and drop") { val dragFileModel = DragFileModel(this) lateinit var ap: FlowPane override val root = vbox {

HiHo1505:HiHo的禮物(Meet-In-The-Middle + 組合數學)

整數 image namespace 多少 max using for 2種 100% 時間限制:10000ms 單點時限:1000ms 內存限制:256MB 描述 某人有N袋金幣,其中第i袋內金幣的數量是Ai。現在他決定選出2袋金幣送給小Hi,再選2袋金幣送給小H