划句顾 发表于 2021-10-2 16:00:09

EPS8266:OLED屏幕字符滚动和显示一个正方形

本帖最后由 划句顾 于 2021-12-4 13:05 编辑

运行的视频如下:{:10_254:}
演示视频
顺便帮我点个赞再走呗{:10_254:}

static/image/hrline/5.gif

代码如下:

/*
* author:LaoGu
* time:2021/10/2
* purpose:让OLED 屏幕字符滚动
*/
#include<Arduino.h>
#include<U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include<SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include<Wire.h>
#endif

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);//对应 OLED 的驱动协议、像素大小以及接线方式

int yPos = 0; //初始化y轴的坐标系

void setup(){
u8g2.begin();
}

void loop(){

u8g2.setFont(u8g2_font_ncenB08_tr);//设置字体
u8g2.firstPage();
do{
      u8g2.drawStr(0,yPos,"Hello ESP8266!");
    }while(u8g2.nextPage());

   if(yPos<83) //y轴的最大值
    {
      yPos+=10;
    }
    else{
      yPos = 0;
      }

delay(1000);
}


static/image/hrline/5.gif
在OLED上显示一个长方形,再加一个滚动的Hello
嘿嘿,举个栗子:
/*
* author:LaoGu
* time:2021/10/2
* purpose:让OLED 屏幕字符滚动和加一个长方体
*/
#include<Arduino.h>
#include<U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include<SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include<Wire.h>
#endif

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);//对应 OLED 的驱动协议、像素大小以及接线方式

int yPos = 0; //初始化y轴的坐标系

void setup(){
u8g2.begin();
}

void loop(){

u8g2.setFont(u8g2_font_ncenB08_tr);//设置字体
u8g2.firstPage();
do{
      u8g2.drawStr(0,yPos,"Hello!");
      u8g2.drawBox(48,20,25,15); //起始x,起始y,方形的宽W,方形的高H
    }while(u8g2.nextPage());

   if(yPos<83) //y轴的最大值
    {
      yPos+=10;
    }
    else{
      yPos = 0;
      }
   

delay(1000);
}


static/image/hrline/5.gif
一些知识:{:10_279:}
https://xxx.ilovefishc.com/album/202110/02/140633jfk4uk9ef3romr4b.png

    u8g2.clear()                                          // 清空缓冲区内的所有像素点;
   
    u8g2.clearBuffer()                                  //清空缓冲区内的所有像素,接着用 sendBuffer() 方法来把缓冲区内容显示出来;

    u8g2.Print()                                          //在当前光标位置输出文字。光标位置可以用 setCursor() 函数设定。字体可以用setFont() 函数。

    u8g2.drawStr(x, y, str)                        //绘制字符串,它能输出什么在屏上。取决于它的setFont被设置的字体集。

    u8g2.drawBox (x, y, w, h)                     //画一个实心方形,w 为宽,h 为高

    u8g2.firstPage() 和 u8g2.nextPage()      //绘图库的图片循环需要放在这两个函数内部

    u8g2.drawCircle(x, y, rad, opt)             //画个空心圆,可选4个方向的半圆

注:
    rad是圆的四分之一弧度。opt是选项:

    U8G2_DRAW_UPPER_RIGHT      //左上角弧度
    U8G2_DRAW_UPPER_LEFT      //右上角弧度
    U8G2_DRAW_LOWER_LEFT      //左下角幅度
    U8G2_DRAW_LOWER_RIGHT   //右下角幅度
    U8G2_DRAW_ALL                   //全圆
   
    u8g2.drawDisc(x, y, rad, opt)      // 画个实心圆,参数用法同上

    u8g.drawLine(x0, y0, x1, y1)      // 画直线,x0,y0是直线起始位置, x1,y1是直线终止位置。


static/image/hrline/5.gif
网址

小甲鱼的铁粉 发表于 2021-10-2 22:45:31

{:10_275:}

yangyiheng 发表于 2021-10-4 13:39:50

{:5_101:}

私が 发表于 2021-10-5 16:59:11

谢谢

1molHF 发表于 2021-10-5 17:39:49

{:5_106:}

yalie 发表于 2021-10-5 19:06:26

{:5_109:}

sunyt 发表于 2021-10-6 08:48:32

厉害

sunyt 发表于 2021-10-6 08:49:23

{:5_95:}

柿子饼同学 发表于 2021-10-6 09:03:00

{:10_277:}

13569246579 发表于 2021-10-6 10:36:54

{:5_109:}

myqf123 发表于 2021-10-6 13:28:58

希望能拿到

myqf123 发表于 2021-10-6 13:29:28

{:9_229:}

myqf123 发表于 2021-10-6 13:32:03

python 能实现吗?

划句顾 发表于 2021-10-6 17:19:29

myqf123 发表于 2021-10-6 13:32
python 能实现吗?

应该可以,但是我不会{:10_256:}

luchangsheng 发表于 2021-10-6 17:36:08

牛啊

hornwong 发表于 2021-10-7 11:28:53

{:5_95:}

hornwong 发表于 2021-10-7 11:29:30

{:5_95:}

tianlai7266 发表于 2021-10-7 15:46:04

{:10_254:}

寒蝉-8 发表于 2021-10-7 20:04:54

{:5_106:}

python0729 发表于 2021-10-7 20:55:57

厉害了,我的哥,你太牛了{:5_101:}
页: [1] 2 3 4 5
查看完整版本: EPS8266:OLED屏幕字符滚动和显示一个正方形