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

    文章

    395

    浏览量

    32153
  • 蜂鸣器
    +关注

    关注

    12

    文章

    850

    浏览量

    45297
  • 开发板
    +关注

    关注

    25

    文章

    4420

    浏览量

    93932
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184809
收藏 人收藏

    评论

    相关推荐

    使用51单片机开发板制作60秒时钟计时器

    大家好,我是大魔王,虽然我已经离开了校园,进入了职场,但是我仍然没有停下学习的脚步。经过三周的学习,我已经能够使用51单片机的开发板制作一个60秒的时钟计时器,今天就将这个小东西的创作过程和大家分享一下,这里使用的是郭天祥老师T
    的头像 发表于 10-31 15:05 1686次阅读
    使用51单片机<b class='flag-5'>开发板</b><b class='flag-5'>制作</b>60秒时钟<b class='flag-5'>计时器</b>

    怎么在倒计时器里应用定时

    怎么在倒计时器里应用定时
    发表于 10-30 06:02

    OpenHarmony创新赛丨报名倒计时30天!

    “OpenHarmony创新赛”) 报名进入倒计时 最后30天 啦! 一个月能做什么? 把武力值练到MAX! 还在犹豫是否上车? 戳下方了解所有参赛福利↓↓↓ 你无法拒绝参赛的N个理由 如何在一个月将武力值练到MAX
    的头像 发表于 10-21 16:45 358次阅读
    OpenHarmony创新赛丨报名<b class='flag-5'>倒计时</b>30天!

    如何使用Arduino制作一个LCD 220V电源操作计时器

      在这篇文章中,我们将使用 Arduino 制作一个 LCD 220 V 电源操作计时器,其倒计时时间可以通过 16 x 2 LCD显示屏见证。   所提出的LCD定时
    发表于 09-14 16:36

    倒计时 5 天,Next ’23 精彩待发!

    以下文章来源于谷歌云服务,作者 Google Cloud   点击屏末   |  阅 读 原 文  |   了解更多 Next ’23 详情!页面持续更新中~ 原文标题:倒计时 5 天,Next ’23 精彩待发! 文章出处:【微信公众号:谷歌开发者】欢迎添加关注!文章转
    的头像 发表于 08-24 17:40 398次阅读
    <b class='flag-5'>倒计时</b> 5 天,Next ’23 精彩待发!

    求助,根据给定的条件设计一个9秒倒计时装置

    提供的材料有:ne555p定时、74ls48芯片、74ls192芯片,蜂鸣器,数码管,按键,电阻电容若干。利用给定的材料,制作一款9秒倒计时闹钟。 倒计时闹钟包含一个数码管显示窗口、
    发表于 08-10 14:40

    倒计时3天丨软通动力&鸿湖万联与您相约华为开发者大会2023

    原文标题:倒计时3天丨软通动力&鸿湖万联与您相约华为开发者大会2023 文章出处:【微信公众号:软通动力】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 08-01 15:35 331次阅读

    Arduino沙漏计时器

    电子发烧友网站提供《Arduino沙漏计时器.zip》资料免费下载
    发表于 07-06 10:05 1次下载
    <b class='flag-5'>Arduino</b>沙漏<b class='flag-5'>计时器</b>

    红绿灯倒计时API开发文档

    百度红绿灯倒计时API开发文档
    发表于 06-30 11:53 3次下载

    健身房倒计时的时钟开源设计

    电子发烧友网站提供《健身房倒计时的时钟开源设计.zip》资料免费下载
    发表于 06-19 15:09 0次下载
    健身房<b class='flag-5'>倒计时</b>的时钟开源设计

    为新年倒计时制作的实时时钟

    电子发烧友网站提供《为新年倒计时制作的实时时钟.zip》资料免费下载
    发表于 06-19 10:19 0次下载
    为新年<b class='flag-5'>倒计时</b><b class='flag-5'>制作</b>的实时时钟

    SpaceX发射倒计时显示

    电子发烧友网站提供《SpaceX发射倒计时显示.zip》资料免费下载
    发表于 06-15 15:00 0次下载
    SpaceX发射<b class='flag-5'>倒计时</b>显示

    Arduino的OLED倒数计时器

    电子发烧友网站提供《带Arduino的OLED倒数计时器.zip》资料免费下载
    发表于 06-09 10:40 2次下载
    带<b class='flag-5'>Arduino</b>的OLED倒数<b class='flag-5'>计时器</b>

    基于89C51单片机的实用99分钟倒计时器源程序

    基于89C51单片机的实用99分钟倒计时器源程序
    发表于 05-15 10:34 17次下载

    基于51单片机的分钟倒计时源代码

    基于51单片机的一分钟倒计时例程源代码
    发表于 05-12 16:30 18次下载