0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Arduino开发板的倒计时器制作设计

电子设计 来源:一板网 作者:风筝 2021-01-03 09:15 次阅读

计时器是一种时钟形式,通常用于测量时间间隔。有两种类型的计时器,一种是从零开始向上计数,用于测量已用时间,称为秒表。而第二种类型的计时器从用户提供的指定持续时间倒计时,通常称为倒计时器。

在本教程中,我们将向您展示如何使用Arduino开发板制作一个倒计时器。在本文中,我们没有使用任何实时时钟(RTC)模块来获取时间。持续时间由用户通过键盘和1602的LCD设定的。当计时器归零时,将会通过蜂鸣器发出警报声。

所需的材料

● Arduino UNO开发板

● LCD显示模块1602

● 4 * 4的矩阵键盘

● 蜂鸣器

● 按钮

电位器(10k)

电阻(10k、100欧)

● 连接导线

电路原理

pIYBAF_q8uyALXmmAAGMSbr6hF0276.png

在这里,Arduino Uno开发板用作主控制器。使用键盘来设定持续时间,以及LCD显示模块1602来显示倒计时。按钮用于启动定时。有关如何将Arduino开发板与4x4矩阵键盘进行连接,请参考:https://www.yiboard.com/thread-780-1-1.html。

代码和说明

在本文的末尾处,给出了完整的Arduino计时器代码。

在下面的代码中,我们正在初始化键盘和LCD的库以及代码中使用的变量。

#include

#include

long int set1;

long int set2;

long int set3;

long int set4;

long int j;

int t1, t2, t3, t4, t5, t6;

int r1, r2, r3;

char key;

String r[8];

String hours;

String minutes;

String seconds;

在下面的代码中,我们初始化行和列的数目,用于定义键盘矩阵。

const byte ROWS = 4; // Four rows

const byte COLS = 4; // Three columns

char keys[ROWS][COLS] = {

{'1','2','3','A'},

{'4','5','6','B'},

{'7','8','9','C'},

{'*','0','#','D'}

};

为了将连接4 * 4矩阵键盘与Arduino开发板进行连接,我们必须定义使用的行和列的引脚。所以在下面的代码中我们已经定义了键盘的引脚以及1602模块的引脚。

byte rowPins[ROWS] = { 6, 7, 8, 9 };// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins

byte colPins[COLS] = { 10, 11, 12, 13 };// Connect keypad COL0, COL1 and COL2 to t

LiquidCrystal lcd(A0, A1, 5, 4, 3, 2); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)

下面的代码用于声明一个keypad数组:

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

在void setFeedingTime()函数中,按下按钮后,我们可以输入定时器的时间,然后在输入完成后,我们必须按下D开始倒计时。

void setFeedingTime()

{

feed = true;

int i=0;

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Set feeding Time");

lcd.clear();

lcd.print("HH:MM:SS");

lcd.setCursor(0,1);

while(1){

key = kpd.getKey();

char j;

if(key!=NO_KEY){

lcd.setCursor(j,1);

lcd.print(key);

r[i] = key-48;

i++;

j++;

if (j==2 || j == 5)

{

lcd.print(":"); j++;

}

delay(500);

}

if (key == 'D')

{key=0; break; }

}

lcd.clear();

}

在void setup()函数中,我们初始化了LCD和串行通信,并在下面的代码中将引脚定义为INPUT和OUTPUT。

void setup()

{

lcd.begin(16,2);

Serial.begin(9600);

pinMode(A0, OUTPUT);

pinMode(A1, OUTPUT);

pinMode(A3, INPUT);

pinMode(A4, OUTPUT);

}

这个Arduino倒计时器的工作原理很简单,但代码有点复杂。

最初,它会在LCD显示屏上打印输出“Arduino Timer”,直到您按下按钮。只要按下按钮,它会通过调用“setFeedingTime”函数来要求输入倒计时时间。然后你可以通过使用键盘输入持续时间。然后你需要按'D'来保存时间并开始倒计时。在void loop()函数中,我们已经做了一些计算以逐秒递减时间,并根据剩余时间显示Hour、Minutes和Seconds(HH:MM:SS)相应的值。您可以在下面查看完整的代码。

当计时器归零时,蜂鸣器开始发出蜂鸣声并且只发出100次蜂鸣声。要停止蜂鸣器,请按住按钮。您可以随时使用按钮在计数时停止定时器。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计时器
    +关注

    关注

    1

    文章

    418

    浏览量

    32633
  • 蜂鸣器
    +关注

    关注

    12

    文章

    889

    浏览量

    45862
  • 开发板
    +关注

    关注

    25

    文章

    4943

    浏览量

    97185
  • Arduino
    +关注

    关注

    187

    文章

    6463

    浏览量

    186629
收藏 人收藏

    评论

    相关推荐

    基于Arduino的串口通信项目

    Arduino Mega等。 USB数据线 :用于将Arduino开发板连接到计算机。 串口设备 :可以是另一个Arduino开发板、传感
    的头像 发表于 11-22 09:24 157次阅读

    看门狗定时的工作原理

    看门狗定时是一种独立的计时器硬件模块,其核心功能是倒计时。如果系统软件在计时器超时前没有对其进行复位操作(即“喂狗”),看门狗将触发一个预定义的动作,通常是系统复位或中断。
    的头像 发表于 10-21 14:18 249次阅读
    看门狗定时<b class='flag-5'>器</b>的工作原理

    LMC555 CMOS计时器数据表

    电子发烧友网站提供《LMC555 CMOS计时器数据表.pdf》资料免费下载
    发表于 08-20 09:16 0次下载
    LMC555 CMOS<b class='flag-5'>计时器</b>数据表

    基于51单片机24秒倒计时设计

    本资源内容概要:       这是基于51单片机24秒倒计时设计包含了 C语言程序源代码(keil软件打开) 。本资源适合人群:      单片机爱好者、电子类专业学生、电子diy爱好者。本资源能
    发表于 06-25 10:03 0次下载

    倒计时三天!软通动力邀您共赴数字中国建设峰会·智算云生态大会

    倒计时三天!软通动力邀您共赴数字中国建设峰会·智算云生态大会
    的头像 发表于 05-21 09:50 387次阅读
    <b class='flag-5'>倒计时</b>三天!软通动力邀您共赴数字中国建设峰会·智算云生态大会

    倒计时3天!软通动力与您相约鲲鹏昇腾开发者大会2024

    倒计时3天!软通动力与您相约鲲鹏昇腾开发者大会2024
    的头像 发表于 05-07 09:21 478次阅读
    <b class='flag-5'>倒计时</b>3天!软通动力与您相约鲲鹏昇腾<b class='flag-5'>开发</b>者大会2024

    SiliconLabs携手Arduino演示基于MGM240模块的新型Nano Matter开发板

    Arduino Nano Matter开发板,从而将Matter协议引入Arduino生态系统,为广大的开发人员提供一个快速涉足Matter互联互通设计的绝佳途径。
    的头像 发表于 04-11 17:35 613次阅读
    SiliconLabs携手<b class='flag-5'>Arduino</b>演示基于MGM240模块的新型Nano Matter<b class='flag-5'>开发板</b>

    用74192设计倒计时电路,proteus仿真时为什么手动改变逆计数的时钟引脚时可以进行计数

    用74192设计倒计时电路,proteus仿真时为什么手动改变逆计数的时钟引脚时可以进行计数,使用信号发生输入方波时无法进行计数
    发表于 03-24 12:20

    数字电路,八路竞赛抢答毕业设计,Proteus仿真

    计时器复位;右:抢答开始),若处于右边,鼠标点击SW1旁红色左右箭头,将开关打至左边。 观察图中,8位选手的编号为0~7。 运行仿真,仿真结果如下图所示。选手号数码管无显示,倒计时数码管显示停留在30
    发表于 03-18 13:11

    电池厂赴欧建厂倒计时 或是基于欧盟《新电池法》

    电池厂赴欧建厂倒计时 或是基于欧盟《新电池法》 因为欧洲车企提出新的要求,强调2027年之后的动力电池必须要本地化,最起码是电芯和正极材料是在欧洲生产的;这使得电池厂赴欧建厂进入倒计时。 从电池厂
    的头像 发表于 02-22 16:50 668次阅读

    揭秘 “红绿灯倒计时” 原理

    如今,高德“红绿灯倒计时”功能已服务遍布全国范围内近240个城市的8万多个红绿灯路口,未来还将进一步拓展至更高数量级。
    的头像 发表于 02-21 17:19 1777次阅读

    fpga开发板与linux开发板区别

    FPGA开发板与Linux开发板是两种不同的硬件开发平台,各自具有不同的特点和应用场景。在以下的文章中,我将详细介绍FPGA开发板和Linux开发板
    的头像 发表于 02-01 17:09 2080次阅读

    倒计时1天!中国电信携手中兴通讯共赢5G-A新时代

    原文标题:倒计时1天!中国电信携手中兴通讯共赢5G-A新时代 文章出处:【微信公众号:中兴通讯】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 12-18 18:30 741次阅读

    小安派Arduino开发板 ,全新支持以太网口

    前面几款小安派出来的时候,经常有粉丝询问是否支持Arduino?其它款小安派也是支持的,大家可以去安信可社区搜索查看,小安派-UNO-ET485 Arduino开发板来了,兼容UNO的经典外形,易
    的头像 发表于 12-06 16:00 743次阅读
    小安派<b class='flag-5'>Arduino</b><b class='flag-5'>开发板</b> ,全新支持以太网口

    小安派-UNO-ET485 Arduino开发板简介

    前面几款小安派出来的时候,经常有粉丝询问是否支持Arduino?其它款小安派也是支持的,大家可以去安信可社区搜索查看,小安派-UNO-ET485 Arduino开发板来了,兼容UNO的经典外形,易上手。
    的头像 发表于 12-03 09:58 897次阅读
    小安派-UNO-ET485 <b class='flag-5'>Arduino</b><b class='flag-5'>开发板</b>简介