arduino小项目1——小时钟

难度系数:★

使用工具,arduino uno,面包板,杜邦线,4寸0.96寸I2C小屏幕

接线图,文字描述。
单片机上的A4接小屏幕上的SDA,A5接SCL。

 代码

#include <MsTimer2.h>
#include <U8g2lib.h>

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL, SDA); // 配置构造函数

int year = 2020, month = 1, day = 1, hour = 0, minute = 0, second = 0;

void onTimer() {
    second++;
    if (second >= 60) {
        second = 0;
        minute++;
        if (minute >= 60) {
            minute = 0;
            hour++;
            if (hour >= 24) {
                hour = 0;
            }
        }
    }
}

void setup() {
    Serial.begin(9600);
    u8g2.begin();
    u8g2.clearBuffer();

    MsTimer2::set(1000, onTimer); // 中断时间为1秒
    MsTimer2::start(); // 启动定时器
}

void loop() {
    displayTime();
}

void displayTime() {
    u8g2.clearBuffer();
  
    u8g2.setFont(u8g2_font_ncenB08_tr);
    u8g2.drawStr(0, 15, "TIME:");
  
    u8g2.setFont(u8g2_font_ncenB12_tr);
    char strTemp[12];
    sprintf(strTemp, " %d.%.2d.%.2d", year, month, day);
    u8g2.drawStr(35, 15, strTemp);
  
    u8g2.setFont(u8g2_font_ncenB14_tr);
    sprintf(strTemp, "%.2d.%.2d.%.2d", hour, minute, second);
    u8g2.drawStr(25, 45, strTemp);

    u8g2.sendBuffer();
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值