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
网址
{:10_275:} {:5_101:} 谢谢 {:5_106:} {:5_109:} 厉害 {:5_95:} {:10_277:} {:5_109:} 希望能拿到 {:9_229:} python 能实现吗? myqf123 发表于 2021-10-6 13:32
python 能实现吗?
应该可以,但是我不会{:10_256:} 牛啊 {:5_95:} {:5_95:} {:10_254:} {:5_106:} 厉害了,我的哥,你太牛了{:5_101:}