当前位置: 代码网 > it编程>编程语言>Asp.net > U8g2库的使用

U8g2库的使用

2024年05月16日 Asp.net 我要评论
一.硬件介绍: 由于笔者这里只有0.96寸的OLED屏幕,那就讲讲最常用的0.96寸OLED屏幕吧。 OLED介绍: OLED,即有机发光二极管( Organic Light Emitting Diode)。 OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲 ...

一.硬件介绍:

由于笔者这里只有0.96寸的oled屏幕,那就讲讲最常用的0.96寸oled屏幕吧。

oled介绍:

oled,即有机发光二极管( organic light emitting diode)。 oled 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。lcd 都需要背光,而 oled 不需要,因为它是自发光的。这样同样的显示 oled 效果要来得好一些。以目前的技术,oled 的尺寸还难以大型化,但是分辨率确可以做到很高。在此我们使用的是0.96寸oled显示屏,该屏有以下特点:

  • 0.96寸oled 有黄蓝,白,蓝三种颜色可选;其中黄蓝是屏上 1/4 部分为黄光,下 3/4 为蓝;而且是固定区域显示固定颜色,颜色和显示区域均不能修改;白光则为纯白,也就是黑底白字;蓝色则为纯蓝,也就是黑底蓝字。
  • 分辨率为 128*64
  • 多种接口方式;oled 裸屏总共种接口包括:6800、8080 两种并行接口方式、3 线或 4 线的串行 spi 接口方式、 iic 接口方式(只需要 2 根线就可以控制oled了!),这五种接口是通过屏上的bs0~bs2来配置的。
  • 开发了两种接口的 demo 板,接口分别为七针的 spi/iic 兼容模块,四针的iic 模块。两种模块都很方便使用;希望大家根据实际需求来选择不同的模块。

图为笔者用oled屏幕做的一个温湿度和光照强度显示后面为lcd1602屏幕

0.96寸oled屏幕介绍:

  • 工作电压:3v~5.5v
  • i2c介面 (位址:0x30)
  • 驱动ic:ssd1306
  • oled屏幕分为单色和双色两种
  • gnd 电源地
  • vcc 电源正(3~5.5v)
  • scl oled 的 d0 脚,在 iic 通信中为时钟管脚
  • sda oled 的 d1 脚,在 iic 通信中为数据管

    和电脑显示器一样,oled屏幕左上角是坐标原点(0.0),水平轴坐标向右增大,垂直向下增大。

二.程序介绍:

1.u8g2库的下载:


2.u8g2库函数:

u8g2_ssd1306_128x64_noname_f_hw_i2c u8g2(u8g2_r0 ,u8x8_pin_none);
u8g2//程序库_ssd1306//控制晶片_128x64_noname//解析度和型号_f//暂存区大小可以改为1,2,f  _hw_i2c//控制介面 u8g2(u8g2_r0// 代表不旋转,u8x8_pin_none//代表没有重置引脚);
begin()//初始化
clear()//清除暂存记忆体
sendbuffer()//发送暂存记忆体内容给显示器,和上个指令搭配使用
enableutf8print()//启用enableutf8print(如:中文)的字串
setfont()//设定字体
drawstr(x,y,"字串")//在坐标(x,y)显示英文字体     注意:该函数不支持显示自制中文字
drawutf8(x,y,"字串")//使用前必须先设定显示字体
setcursor(x,y)//把游标设定在坐标(x,y)
print("字串")//在游标位置显示字体(可以用该方法显示中文字体)

小补充:

  • 关于字体传送门
  • 在显示文字或者图片时,并不会立即呈现在屏幕上,因为这些操作都是先在记忆体中组合画面,从主记忆体中划分出给显示器暂存影像资料用的区域,统称为frame buffer (影像暂存区)或简称暂存区(buffer)。
  • 连接介面可改用sw_i2c,代表用"software"(软体)模凝iic介面,除非有特殊需要,否则请采用硬体pc介面;自定义如下:
u8g2_ssd1306_128x64_noname_f_sw_i2c u8g2(u8g2_r0,19,20,u8x8_pin_none);//19 scl引脚   20  sda引脚

3.u8g2库使用模板:

#include <arduino.h>
#include <u8g2lib.h>

u8g2_ssd1306_128x64_noname_f_hw_i2c u8g2(u8g2_r0 ,u8x8_pin_none);

void setup() {
  u8g2.begin();//初始化
  u8g2.setfont(u8g2_font_ncenb08_tr);//设定字体
}

void loop() {


  u8g2.firstpage();
  do {
    
    u8g2.drawstr(0, 10, "temperature");//在指定位置显示字符串
    

    
  } while ( u8g2.nextpage() );
 

4.小应用:使用屏幕显示"hangzhou"

#include <arduino.h>
#include <u8g2lib.h>

u8g2_ssd1306_128x64_noname_f_hw_i2c u8g2(u8g2_r0 ,u8x8_pin_none);//实例化

void setup() {
  u8g2.begin();//初始化
  u8g2.setfont(u8g2_font_ncenb08_tr);//设定字体
}

void loop() {


  u8g2.firstpage();
  do {
    
    u8g2.drawstr(0, 10, "hangzhou");//在指定位置显示字符串
    

    
  } while ( u8g2.nextpage() );
}

5.效果显示:


注意笔者这里用的没有重置引脚因此uno板直接scl,scl相连,sda和sda相连
另外笔者这里就不介绍怎么用u8g2库显示中文了网上有太多案例了传送门

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com