震惊!OLED菜单竟只用10行代码就可以完成到完美!!!-Arduino中文社区 - Powered by Discuz! Archiver

新手之帆 发表于 2019-7-27 23:00

震惊!OLED菜单竟只用10行代码就可以完成到完美!!!

本帖最后由 新手之帆 于 2020-11-1 17:02 编辑

                                                震惊!OLED菜单竟只用10行代码就可以完成到完美!!!
相信各位在看了我上次的教程贴之后,已经略有头绪。
但!这显然对小白们不怎么友好!!!
毕竟,我们都是从小白过来的。


所以,我花费了大概1天的时间,将菜单功能封装成了个库,其功能比我上次给出的代码强大了大概1/3。怎么样?
是不是有点小激动了呢???


首先,我还是来讲解一下该库的一些函数:


void Begin(int buttona,int buttonb,int delay_time,int times_val,String c,int button_state);


该句应放在setup里面。
buttona指按键a的pin,buttonb指按键b的pin
delay_time指消抖时的时间,根据本人手抖,一般为45
times_val指你在同一时间的屏幕上总共有多少选项,取值范围为1-3(悄悄告诉你,会根据该值,自动生成较好看的界面哟!)
c指你的在选项面前的指向符号,记住(要加"")
button_state指在按键按下的一瞬间,button的状态,这取决于你的一端接pin,另一端接v还是g


void Inputstring(String str[],int num,bool state);


放在setup里面
str是输入你的字符串数组,就是选项的名字们。
注意:是数组,但在输入时,无需加[]


num指你这个数组有多少个元素


state指是否含有中文,就是名字里面
最后写false,除非你真的要显示中文
但!!!!!!
要是你要显示中文的话,必须用esp32 || due ||2560 ||零知的开发板,等高配开发板,小的内存不怎么够


void Loop(void);
没什么,直接放在loop里面就行


void Inputfun_0(String fun0_s1,String fun0_s2,String fun0_s3);


注意!!该函数十分重要
取决于你按下按键,显示选项的内容
应放在setup里面
其中指1、2、3行
你可以其中一些行不写
打个""就可以
给出例子


Inputfun_0("time","","weather");


就是这样


该函数有11个
就是_后面为0-10


这取决于你究竟要多少个,也就是你的选项名数组有多少个


主要就这几个函数


示例代码:
#include<MENU.h>
Menu test;
String s={"time","weather","arduino","esp32","esp8266"};
void setup() {
test.Begin(5,18,45,3,"--",0);
test.Inputstring(s,5,0);
test.Inputfun_0("a","b","c");
test.Inputfun_1("f","e","f");
test.Inputfun_2("fe","h","i");
test.Inputfun_3("1","k","l");
test.Inputfun_4("24·","n","o");
}

void loop() {
test.Loop();
}
//记住!按键的pin要更改

图片





q3320987642

库文件









Creeper666 发表于 2019-7-27 23:17

这么晚还在逛论坛

新手之帆 发表于 2019-7-28 00:36

Creeper666 发表于 2019-7-27 23:17
这么晚还在逛论坛

很早啊,只是家里灯坏了,晚上没开电,看不清键盘

Creeper666 发表于 2019-7-28 09:18

新手之帆 发表于 2019-7-28 00:36
很早啊,只是家里灯坏了,晚上没开电,看不清键盘

你把你的OLED像素全开,然后照着键盘不就行了;P

新手之帆 发表于 2019-7-28 12:49

Creeper666 发表于 2019-7-28 09:18
你把你的OLED像素全开,然后照着键盘不就行了

牛逼啊,但128*64*3像素点够用吗

新手之帆 发表于 2019-7-28 17:57

大家可以用一下,成功的评论。屏幕型号必须是ssd1306,要装U8G2的库

zistar 发表于 2019-7-28 23:33

屏幕上只显示12345额

新手之帆 发表于 2019-7-29 00:07

zistar 发表于 2019-7-28 23:33
屏幕上只显示12345额

有没有用中文,有的话要自己做字库。或者用里面的,代码发上来,也许你的参数有问题

eagler8 发表于 2019-8-3 10:03

这个屏我也收了一个,只是从未接触过,要向老师学习





Dgh丶 发表于 2019-8-8 15:32

你用了好几个u8g2的库函数,最好说明一下它的用法
页: [1] 2 3 4 5
查看完整版本: 震惊!OLED菜单竟只用10行代码就可以完成到完美!!!