Arduino使用OLED显示内容
2017-11-18 20:41
766 查看
之前买了一块OLED,128×64,芯片为SSD1306,IIC接口
给的资料很少,网上找到支持库为U8glib,貌似这个已经很久不更新了
新的库叫U8g2,可以直接在Arduino库中找到并下载
下载了U8glib,发现例子基本都是SPI接口的,IIC的
U8glib例子中没有IIC的接口使用方法,到处找资料
硬件连接为A5-SCL,A4-SDA,并且定义如下
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
几个常用的方法:
后面又下载了U8g2,功能更强大了,提供了对话框什么的,直接使用例子就行,非常方便
给的资料很少,网上找到支持库为U8glib,貌似这个已经很久不更新了
新的库叫U8g2,可以直接在Arduino库中找到并下载
下载了U8glib,发现例子基本都是SPI接口的,IIC的
U8glib例子中没有IIC的接口使用方法,到处找资料
硬件连接为A5-SCL,A4-SDA,并且定义如下
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
几个常用的方法:
u8g.setRot90(); //旋转90° u8g.setRot180(); //旋转180° u8g.setRot270(); //旋转270° u8g.undoRotation(); //取消旋转 u8g.setFont(u8g_font_osb18); //设置字体 u8g.drawStr(0, 20, "ABC"); //画出字符在(0,20)的位置 u8g.setPrintPos(0,15); //设置位置 u8g.print("Error Code: "); //打印内容 u8g.drawBitmapP( 0, 0, 1, 9, bitmap); //画位图,每行一个字节(8个点),总共9行,数据定义在bitmap[] u8g.drawXBMP( 0, 0, 38, 24, bitmap); //画位图,38×24,数据定义在bitmap[] // 还有一个需要注意的地方,u8g有缓存,所以一般显示要使用下面的方法,将绘图函数放到draw()中 void loop(void) { // picture loop u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); // rebuild the picture after some delay delay(1000); }
后面又下载了U8g2,功能更强大了,提供了对话框什么的,直接使用例子就行,非常方便
#include <u8x8lib.h> U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE); void setup(void) { // 定义输入按键 u8x8.begin(/*Select=*/ 7, /*Right/Next=*/ A1, /*Left/Prev=*/ A2, /*Up=*/ A0, /*Down=*/ A3, /*Home/Cancel=*/ 8); } void loop(void) { uint8_t r; u8x8.setFont(u8x8_font_chroma48medium8_r); r = u8x8_UserInterfaceMessage(u8x8.getU8x8(), "Message", "Box", NULL, " Ok \n Cancel "); if ( r == 0 ) { u8x8.userInterfaceMessage("You pressed the", "Home/Quit", "Button", " Ok "); } else if ( r == 1 ) { u8x8.userInterfaceMessage("You selected the", "Ok", "Button", " Ok "); } else if ( r == 2 ) { u8x8.userInterfaceMessage("You selected the", "Cancel", "Button", " Ok "); } }
相关文章推荐
- arduino使用oled显示时间MQ_2温湿度
- C#中datagridview使用tooltip控件显示单元格内容的方法
- 内容较少时,页面的footer始终显示在底部,不是使用fixed。
- 使用Robot从txt文件中读取不同行的内容并显示
- android中使用gridview显示文本内容
- ExtJs Column 显示文字内容过长 使用Tootip显示全部内容
- C#中使用DataGridView控件显示数组中的内容
- 使用js实现显示和隐藏区域的内容(复习)
- markdown编辑器 的简单使用 显示 正常的内容
- sp使用<c:choose>标签来控制内容显示
- c#使用itextsharp输出pdf(动态填充表单内容,显示中文)
- 使用eWebEditor 不显示内容的问题
- flask之使用ajax实现点击左侧边栏,不刷新显示右边内容
- 在ASPX页面中使用include命令的发现,在DIV中显示另一页面的内容,这样可以使页面更加简洁
- 使用BeyondCompare比较文件夹下的文件时,相同的文件内容,但显示为不相同
- 将模版列功能改造成博客内容列表, 并使完成分页 (使用分页模板完成,显示上一页,下一页,第一页,最后一页,和当前第x页,共y页 。)
- 使用inline-block,使前面img,后面空div居中显示在一行后,导致当div中有内容时,div下移问题
- 【Arduino】【ESP】使用Arduino(ESP8266版本)获取雅虎天气信息,并使用点阵显示......进行中
- android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
- 使用Robot从txt文件中读取不同行的内容并显示(续)