玩转OLED,U8g2动画,增长数字和随机三角形等

1.动态数字显示

从逻辑上来说,就是绘制一个实心方块,遮挡上一次绘制的内容,然后再绘制这一次的。

//动画数字效果
void dynamicNum(int x, int y, int num)
{
  int i;
  for (i = 0; i < num; i++)
  {
    u8g2.setDrawColor(0);
    u8g2.drawBox(x, 10, 60, 60);
    u8g2.setCursor(x, y);
    u8g2.setDrawColor(1);
    u8g2.print(i);
    u8g2.drawBox(0, 63 - 3, (127 / 100) * i, 3);
    u8g2.sendBuffer();
    delay(2);
  }
}

2.三角形的绘制

这一个算法就是画一个等边三角形,本来是这样的,但我加了伪随机数,于是就变成了一个乱飞的三角形

random(int i)函数,用于生成从0到i的一个数字

void animateG(int x, int y, int r)
{

  int rd1 = random(2);
  int rd2 = random(3);
  int rd3 = random(3);
  int rd4 = random(3);
  int rd5 = random(3);
  int rd6 = random(2);
  u8g2.drawLine(x * rd1, (y - r * 2 / 3) * rd2, (x + r / sqrt(3)) * rd3, (y + r / 3) * rd4);
  u8g2.drawLine((x + r / sqrt(3)) * rd3, (y + r / 3) * rd4, (x - r / sqrt(3)) * rd5, (y + r / 3) * rd6);
  u8g2.drawLine((x - r / sqrt(3)) * rd5, (y + r / 3) * rd6, x * rd1, (y - r * 2 / 3) * rd2);
}

3.屏幕关闭效果

类似老电视的那种显像管失电后十字关闭的效果,我是想模仿这个的。

void close()
{
  u8g2.clear();
  u8g2.drawBox(0, 63 / 2 - 3, 127, 6);
  u8g2.drawBox(127 / 2 - 3, 0, 6, 63);
  u8g2.sendBuffer();
  delay(3);
  u8g2.clear();
  u8g2.drawBox(0, 63 / 2 - 2, 127, 4);
  u8g2.drawBox(127 / 2 - 2, 0, 4, 63);
  u8g2.sendBuffer();
  delay(3);
  u8g2.clear();
  u8g2.drawBox(0, 63 / 2 - 1, 127, 2);
  u8g2.drawBox(127 / 2 - 1, 0, 2, 63);
  u8g2.sendBuffer();
  delay(3);
  u8g2.clear();
}

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很高兴听到您对u8g2 OLED库的兴趣。下面是一篇简短的文章,帮助您快速入门和使用u8g2 OLED库。 u8g2 OLED库是一个用于驱动各种OLED屏幕的库。它支持多种芯片和接口,包括I2C、SPI和并行接口。使用u8g2库可以轻松地控制OLED屏幕,使其显示文本、图形和动画。 以下是使用u8g2 OLED库的基本步骤: 1. 安装u8g2库 您可以在Arduino IDE的库管理器中找到u8g2库,安装后即可使用。 2. 初始化OLED屏幕 在您的Arduino代码中,首先需要初始化OLED屏幕。在初始化时,您需要指定OLED屏幕的型号、接口和引脚等信息。例如,以下代码初始化了一个128x64像素的OLED屏幕,使用I2C接口: ``` #include <U8g2lib.h> U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0); void setup() { u8g2.begin(); } ``` 3. 显示文本 使用u8g2库可以方便地在OLED屏幕上显示文本。以下代码在OLED屏幕上显示了一行文本: ``` u8g2.setFont(u8g2_font_ncenB08_tr); u8g2.drawStr(0, 10, "Hello World!"); ``` 在这里,我们指定了文本的字体和位置。 4. 显示图形 u8g2库还支持在OLED屏幕上显示各种图形,包括线条、矩形、圆形等。以下代码在OLED屏幕上绘制了一个矩形: ``` u8g2.drawFrame(10, 10, 20, 30); ``` 在这里,我们指定了矩形的位置和大小。 5. 刷新屏幕 在您的代码中完成文本和图形的绘制后,需要调用u8g2库的`sendBuffer()`函数将数据发送到OLED屏幕上。以下代码刷新了OLED屏幕: ``` u8g2.sendBuffer(); ``` 以上就是使用u8g2 OLED库的基本步骤。您可以根据自己的需要进行文本和图形的绘制,实现各种有趣的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值