马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 划句顾 于 2021-12-4 13:05 编辑
运行的视频如下:
演示视频
顺便帮我点个赞再走呗
代码如下:
/*
* 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);
}
在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);
}
一些知识:
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是直线终止位置。
网址
|