ESP32学习,驱动LED点阵屏,更换时钟大字体

ESP32学习,驱动LED点阵屏,更换时钟大字体

试着更换不同的时钟大字体
在这里插入图片描述
在这里插入图片描述



使用PCtoLCD2002工具制作自模

在这里插入图片描述
使用不同的字体,多做几种

在这里插入图片描述
日历、农历版面交替显示

在这里插入图片描述


1.大字显示的代码

BigTime()(示例):


//大屏显示时间
void BigTime(){
    if(bigTimeFlag<15){
        //FillTab(0,0,128,45,myBLACK);//清屏
        if(hou!=houOld){
            FillTab(0,0,60,50,myBLACK);//清屏
            houOld=hou;
        if(hou<10){
            dis30Numbers(0,-3,-7, myColor[flagColor]);
            dis30Numbers(hou, 26,-7, myColor[flagColor]);
        }else{
            dis30Numbers(hou/10,-3,-7, myColor[flagColor]);
            dis30Numbers(hou%10, 26,-7, myColor[flagColor]);
        }}
        if(minu!=minuOld){
            FillTab(68,0,60,50,myBLACK);//清屏
            minuOld=minu;
        if(minu<10){
            dis30Numbers(0,69,-7, myColor[flagColor]);
            dis30Numbers(minu, 98,-7, myColor[flagColor]);
        }else{
            dis30Numbers(minu/10,69,-7, myColor[flagColor]);
            dis30Numbers(minu%10, 98,-7, myColor[flagColor]);
        }}
        FillTab(58,26,10,20,myBLACK);//清屏
        if(sec<10){
            drawText("0",61,28);
            drawText(String(sec),61,36);
        }else{
            drawText(String(sec/10),61,28);
            drawText(String(sec%10),61,36);
        }
        FillTab(57,2,12,26,myBLACK);//清屏
        drawHanziS(58,5,weekHZ[week].c_str(),myRED);
    }else{
        if(day1!=day1Old){
            day1Old=day1;//设置标志 就不再刷新 防止闪屏
            FillTab(0,0,128,45,myBLACK);//清屏
            houOld=hou+2;minuOld=minu+3;// 返回时能正常显示
            //可以加标志显示日期
            displayNumbers(year1,40,0,myWHITE);
            if(month1<10){
                displayNumbers(0,64,0,myWHITE);
                displayNumbers(month1,76,0,myWHITE);
            }else{
                displayNumbers(month1,76,0,myWHITE);
            }
            if(day1<10){
                displayNumbers(0,98,0,myWHITE);
                displayNumbers(day1,110,0,myWHITE);
            }else{
                displayNumbers(day1,110,0,myWHITE);
            }
            //显示农历
            u8g2Fonts.setFont(u8g2_font_wqy12_t_gb2312); 
            u8g2Fonts.setForegroundColor(myColor[rand()%9]);
            String nongli=china_animals+" "+china_monthday+" "+china_holiday+" "+china_year;
            u8g2Fonts.drawUTF8(1,32,nongli.c_str());
            //显示天气
            String tianqi="天气:"+Weather+"  "+"气温:"+Temp;
            u8g2Fonts.drawUTF8(1,44,tianqi.c_str());
        }
        
    }
    bigTimeFlag++;if(bigTimeFlag>=20){bigTimeFlag=0;day1Old=day1Old+2;}
/*
            dis30Numbers(1,-2,2, myWHITE);
                dis30Numbers(2, 28,2, myWHITE);
                drawBit( 48,-1, sz30_maohao,32, 63, myWHITE);
                dis30Numbers(3,70 ,2, myWHITE);
                dis30Numbers(6, 100,2, myWHITE);

        if(millis()-NowTime>=1000){
        NowTime=millis();
        GetTime();
        FillTab(10,5,72,7,myBLACK);
        drawText(oneNumTwo(day1)+"-"+oneNumTwo(month1)+"-"+String(year1)+" "+showMode,10, 5);
        FillTab(10,17,60,7,myBLACK);
        int week_ =week;
        if(week==15)week_=0;
        drawText(oneNumTwo(hou)+":"+oneNumTwo(minu)+":"+oneNumTwo(sec)+" "+String(week_),10, 17);
        }
        */
}

总结

字体比较大,要是每秒都更新整个屏,有点闪烁晃眼,所以还要考虑做好局部更新的逻辑。

  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值