blinker怎么实现控制状态显示和u8g2时钟显示-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2723|回复: 7

[已解答] blinker怎么实现控制状态显示和u8g2时钟显示

[复制链接]
发表于 2020-8-6 21:00 | 显示全部楼层 |阅读模式
预想效果:显示屏上能显示当前开关灯的状态,和实时时钟出现问题:如图,时钟出现23:71分
[td]

[/td]
`N}~RXTJ%KTKY@Z@A}Q5I.png
  1. void loop()//一直循环的语句
  2. {
  3. Blinker.run();
  4.   
  5.   uint32 times = Blinker.time();
  6.   int8_t sec = Blinker.second();
  7.   int8_t min = Blinker.minute();
  8.   int8_t hour = Blinker.hour();
  9.   u8g2.setFont(u8g2_font_unifont_t_chinese2);//设置一个字体
  10.   u8g2.setCursor(64, 16);//选定坐标
  11.   u8g2.print(hour);//上坐标内显示的内容
  12.   u8g2.sendBuffer();//显示再屏幕上

  13.   
  14.   u8g2.setCursor(0, 30);//选定坐标
  15.   u8g2.print("Wel come to: 315");//上坐标内显示的内容
  16.   u8g2.sendBuffer();//显示再屏幕上
  17.    
  18.   u8g2.setCursor(106, 16);//选定坐标
  19.   u8g2.print(sec);//上坐标内显示的内容
  20.   u8g2.sendBuffer();//显示再屏幕上

  21.   u8g2.setCursor(85, 16);//选定坐标
  22.   u8g2.print(min);//上坐标内显示的内容
  23.   u8g2.sendBuffer();//显示再屏幕上
  24. }
复制代码
            后来在循环里添加
            清屏u8g2.clearBuffer(); 和延迟 delay(1000);但是效果不理想,屏幕在一直闪动
            而且我在控制舵机处添加的状态显示也被loop里的清屏命令清除了
  1. void button2_callback(const String & state)
  2. {
  3.     BLINKER_LOG("get button2 state: ", state);
  4.     if (state=="press")
  5.     {
  6.       myservo.write(19);//舵机转动19°开灯
  7.             delay(2000);
  8.       myservo.write(35);//舵机转动到原35°复位
  9.       
  10.       BlinkerMIOT.print();//反馈状态

  11.   u8g2.setCursor(0, 14);
  12.   u8g2.print("当前:关");//在屏幕上显示状态
  13.   u8g2.sendBuffer();
  14.     }
  15. }
复制代码
求助     时钟的秒是怎么实现实时显示的?

 楼主| 发表于 2020-8-6 21:02 | 显示全部楼层
还有一个问题,程序控制功能都能实现,但是舵机有时候会自己打开灯,是程序原因还是网络原因
发表于 2020-8-7 01:23 | 显示全部楼层
如果不需要舵机的保持力,驱动完舵机注销引脚,避免此类情况发生
另外,可以使用millis()定时刷新屏幕,避免过度刷新
发表于 2020-8-7 02:00 | 显示全部楼层
这些需求基本和blinker无关,自己存个变量然后显示出来就行,至于舵机不受控,估计是电源不行,导致复位了吧
 楼主| 发表于 2020-8-7 16:31 | 显示全部楼层
奈何col 发表于 2020-8-7 02:00
这些需求基本和blinker无关,自己存个变量然后显示出来就行,至于舵机不受控,估计是电源不行,导致复位了 ...

好的谢谢
 楼主| 发表于 2020-8-7 16:32 | 显示全部楼层
XlinliY.Zhang 发表于 2020-8-7 01:23
如果不需要舵机的保持力,驱动完舵机注销引脚,避免此类情况发生
另外,可以使用millis()定时刷新屏幕,避 ...

那我想刷新屏幕信息的同时,怎么显示获取开关灯的状态呢
发表于 2020-8-7 16:35 | 显示全部楼层
hyh520 发表于 2020-8-7 16:32
那我想刷新屏幕信息的同时,怎么显示获取开关灯的状态呢

用个bool储存开关灯状态就行了
 楼主| 发表于 2020-8-7 16:37 | 显示全部楼层
XlinliY.Zhang 发表于 2020-8-7 16:35
用个bool储存开关灯状态就行了

我去试试  谢谢啦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:31 , Processed in 0.137370 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表