(4)arduino控制.96寸oled显示图案、中英文文字、以及变量

(4)arduino控制.96寸oled显示图案、中英文文字、以及变量

一、准备工作

需要准备的材料有:arduino uno、0.96寸oled、杜邦线
在这里插入图片描述

二、依赖库

oled可以调用u8g2库中的函数来运行,这是我找到最简易的运行oled的方式。
arduino ide的菜单栏中找到工具–管理库,打开库的管理界面
在这里插入图片描述
在这里插入图片描述
在上方搜索栏搜索如下库并下载(可能有无需下载的库,但是保险起见可以全部下载)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、接线图

接线如下图所示:
在这里插入图片描述
端口位置可能略有差异,但是端口名称基本一致,按照端口名称连接即可。

四、oled运行代码

代码中分别对图案、中文、英文、变量值进行显示
其中,将显示不同类型的代码打包成三个函数:face、heart、letter,具体含义见代码注释。
代码如下:

#include <U8g2lib.h>                                       //u8g2库
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA); //配置构造函数      
int a=66;                                                  //定义变量a=66

void setup() 
{
    u8g2.begin();                                          //启动u8g2驱动程序
    u8g2.clearBuffer();                                    //清空显示屏缓存
}

void loop() 
{
    face();                                                //调用函数,显示图案
    delay(1000);                                           //持续一秒钟
    heart();                                               //调用函数,显示英文字母和图案
    delay(1000);                                           //持续一秒钟
    letter(a);                                             //调用函数,显示中文和变量
    delay(1000);                                           //持续一秒钟
}

void face()
{
    u8g2.clearBuffer();                                    //清空显示屏缓存
    
    u8g2.drawCircle(56,40,8,U8G2_DRAW_LOWER_LEFT);         //画四分之一圆,圆心坐标(56,44),半径8
    u8g2.drawCircle(56,40,8,U8G2_DRAW_LOWER_RIGHT);        //画四分之一圆
    u8g2.drawCircle(72,40,8,U8G2_DRAW_LOWER_LEFT);         //画四分之一圆
    u8g2.drawCircle(72,40,8,U8G2_DRAW_LOWER_RIGHT);        //画四分之一圆
    u8g2.drawCircle(56,41,8,U8G2_DRAW_LOWER_LEFT);         //加粗画四分之一圆
    u8g2.drawCircle(56,41,8,U8G2_DRAW_LOWER_RIGHT);        //加粗画四分之一圆
    u8g2.drawCircle(72,41,8,U8G2_DRAW_LOWER_LEFT);         //加粗画四分之一圆
    u8g2.drawCircle(72,41,8,U8G2_DRAW_LOWER_RIGHT);        //加粗画四分之一圆
    u8g2.drawLine(40,18,20,30);                            //画斜线,两端点坐标分别是(40,18)(20,30)
    u8g2.drawLine(88,18,108,30);                           //画斜线
    u8g2.drawLine(40,17,20,29);                            //加粗画斜线
    u8g2.drawLine(88,17,108,29);                           //加粗画斜线
    
    u8g2.sendBuffer();                                     //加载以上内容
}

  void heart()
{
    u8g2.clearBuffer();                                    //清空显示屏缓存
    
    u8g2.setFont(u8g2_font_open_iconic_human_2x_t);        // 设置字体
    u8g2.drawGlyph(58,30,66);                              // 画心,符号左下角坐标为(58,36),符号编号为66
    u8g2.setFont(u8g2_font_unifont_t_chinese2);            //设置字体
    u8g2.drawUTF8(58+20,30,"ZFY");                         //显示英文,左下角位置坐标为(78,30)
    u8g2.drawUTF8(58-14-16,30,"JHR");                      //显示英文,左下角位置坐标为(28,30)    
    
    u8g2.sendBuffer();                                     // 加载以上内容
}

  void letter(int a)
{   
    u8g2.clearBuffer();                                    //清空显示屏缓存
    
    //int8_t a=u8g2.getMaxCharHeight();                      //获取最大高度
    //int8_t b=u8g2.getMaxCharWidth();                       //获取最大宽度
    
    u8g2.setFont(u8g2_font_unifont_t_chinese2);            //设置字体
    u8g2.drawUTF8(20,17,"智能检测系统");                    //显示文字,左下角位置坐标为(20,17)
    u8g2.drawUTF8(50,34,":");                             //显示:,左下角坐标为(50,34)
    u8g2.drawUTF8(0,34,"位移为:");
    u8g2.setCursor(64,34);                                 //设置将要打印变量的左下角坐标
    u8g2.drawUTF8(0,34,"位移为:");

    u8g2.print(a);                                         //打印变量a
     
    u8g2.sendBuffer();                                     // 加载以上内容
  }

*(若oled不亮,尝试将usb拔掉之后再重新连接)
效果为交替显示图案、心形、文字以及变量,效果见下图所示

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 26
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值