查看: 3010|回复: 19

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

[复制链接]
  • TA的每日心情
    奋斗
    2019-8-25 00:01
  • 签到天数: 87 天

    [LV.6]常住居民II

    发表于 2019-7-27 23:00 | 显示全部楼层 |阅读模式
    本帖最后由 新手之帆 于 2019-7-28 16:54 编辑

                                                    震惊!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[5]={"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要更改

    图片
    IMG_20190728_163507.jpg
    IMG_20190728_163520.jpg
    IMG_20190728_163658.jpg
    视频:


    为了秉承Arduino开源精神,提高小白们的编程素养
    本人决定,该库开源!!!


    虽然是呕心沥血做出来的,但分享给社区的朋友们才更好
    恳请版主大佬加精!!!感激不尽
    要是大家觉得好,请鼓励一下我,打赏一下,或者评论自己的感受
    谢谢!
    q3320987642
    MENU.rar (1.9 KB, 下载次数: 146)
  • TA的每日心情

    2019-11-16 00:47
  • 签到天数: 116 天

    [LV.6]常住居民II

    发表于 2019-7-27 23:17 | 显示全部楼层
    这么晚还在逛论坛
  • TA的每日心情
    奋斗
    2019-8-25 00:01
  • 签到天数: 87 天

    [LV.6]常住居民II

     楼主| 发表于 2019-7-28 00:36 | 显示全部楼层
    Creeper666 发表于 2019-7-27 23:17
    这么晚还在逛论坛

    很早啊,只是家里灯坏了,晚上没开电,看不清键盘
  • TA的每日心情

    2019-11-16 00:47
  • 签到天数: 116 天

    [LV.6]常住居民II

    发表于 2019-7-28 09:18 | 显示全部楼层
    新手之帆 发表于 2019-7-28 00:36
    很早啊,只是家里灯坏了,晚上没开电,看不清键盘

    你把你的OLED像素全开,然后照着键盘不就行了
  • TA的每日心情
    奋斗
    2019-8-25 00:01
  • 签到天数: 87 天

    [LV.6]常住居民II

     楼主| 发表于 2019-7-28 12:49 | 显示全部楼层
    Creeper666 发表于 2019-7-28 09:18
    你把你的OLED像素全开,然后照着键盘不就行了

    牛逼啊,但128*64*3像素点够用吗
  • TA的每日心情
    奋斗
    2019-8-25 00:01
  • 签到天数: 87 天

    [LV.6]常住居民II

     楼主| 发表于 2019-7-28 17:57 | 显示全部楼层
    大家可以用一下,成功的评论。屏幕型号必须是ssd1306,要装U8G2的库

    该用户从未签到

    发表于 2019-7-28 23:33 | 显示全部楼层
    屏幕上只显示12345额
  • TA的每日心情
    奋斗
    2019-8-25 00:01
  • 签到天数: 87 天

    [LV.6]常住居民II

     楼主| 发表于 2019-7-29 00:07 | 显示全部楼层
    zistar 发表于 2019-7-28 23:33
    屏幕上只显示12345额

    有没有用中文,有的话要自己做字库。或者用里面的,代码发上来,也许你的参数有问题
  • TA的每日心情
    开心
    2019-11-20 09:57
  • 签到天数: 186 天

    [LV.7]常住居民III

    发表于 2019-8-3 10:03 | 显示全部楼层
    这个屏我也收了一个,只是从未接触过,要向老师学习
    微信图片_20190803100100.jpg




    该用户从未签到

    发表于 2019-8-8 15:32 | 显示全部楼层
    你用了好几个u8g2的库函数,最好说明一下它的用法
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    为拍月亮而生的便携望远镜系统。
    为拍月亮而生的便携望远镜
    参赛项目: 便携望远镜系统 参赛组员: 1人 布丁:嵌入式软件、上位机软件、电路、结
    基于机器视觉的智能分拣机械臂
    基于机器视觉的智能分拣机
    本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
    小白求助
    小白求助
    也许我这个问题也许看起来有些幼稚。。。 还在入门的路上打滚,在看《爱上Arduino》这
    SpiderRobot 蜘蛛
    SpiderRobot 蜘蛛
    关于SpiderRobot 项目实行方案 之前有人推荐我做这个项目,于是乎就有了这个 h
    没有合适的模块,想到自己焊接芯片
    没有合适的模块,想到自己
    有些模块没有加工过的模块销售,想着自己要是能把芯片焊在一起也是一样的。只是这个尺
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表