计时器是用于测量时间间隔的一种时钟。计时器有两种类型,一种从零开始递增计数,用于测量经过的时间,称为秒表。并且,第二个倒计时从用户提供的指定持续时间开始倒计时,通常称为倒数计时器。
在这里,在本教程中,我们将向您展示如何使用Arduino制作倒数计时器。在这里,我们没有使用任何实时时钟(RTC)模块来获取时间。持续时间由用户借助键盘和16x2 LCD提供。当计时器达到零时,将在蜂鸣器的帮助下发出警报声。
所需材料
- Arduino UNO
- 液晶屏16 * 2
- 4 * 4矩阵键盘
- 蜂鸣器
- 按键
- 电位计(10k)
- 电阻(10k,100 ohm)
- 连接线
Arduino倒数计时器电路图
Arduino Uno在这里用作主控制器。键盘用于输入持续时间,并且16 * 2 LCD用于显示倒计时。该按钮用于开始时间。在这里检查如何将4x4键盘与Arduino和16x2 LCD与Arduino进行接口。
Arduino倒数计时器代码和说明
在该项目的结尾给出了完整的Arduino Timer代码。
在下面的这段代码中,我们正在初始化键盘和LCD的库以及代码中使用的变量。
#包括
现在,在下面的代码中,我们将初始化no。行和列的定义键盘的矩阵。
const字节ROWS = 4; //四行const字节COLS = 4; //三列char键= {{'1','2','3','A'},{'4','5','6','B'},{'7',' 8','9','C'},{'*','0','#','D'}};
为了将4 * 4矩阵键盘与Arduino连接,我们必须定义行和列的引脚。因此,在下面的代码中,我们定义了键盘和16x2 LCD的引脚。
字节rowPins = {6,7,8,9}; //将键盘ROW0,ROW1,ROW2和ROW3连接到这些Arduino引脚上 字节colPins = {10、11、12、13}; //连接键盘COL0,COL1和COL2至t LiquidCrystal LCD (A0,A1,5,4,4,3,2 ); //创建一个LC对象。参数:(rs,启用,d4,d5,d6,d7)
以下代码用于制作键盘,
键盘kpd =键盘(makeKeymap(keys),rowPins,colPins,ROWS,COLS);
在 void setFeedingTime() 函数代码中,按下按钮后,我们可以输入计时器的时间,然后在输入计时器的持续时间后,我们必须按D键才能开始倒计时。
void setFeedingTime(){feed = true; int i = 0; lcd.clear(); lcd.setCursor(0,0); lcd.print(“设置进纸时间”); lcd.clear(); lcd.print(“ HH:MM:SS”); lcd.setCursor(0,1); while(1){key = kpd.getKey(); 字符j; if(key!= NO_KEY){lcd.setCursor(j,1); lcd.print(key); r =键48; i ++; j ++; 如果(j == 2-j == 5){lcd.print(“:”); j ++; } delay(500); } if(key =='D'){key = 0; 打破; 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() 函数中,我们已经进行了一些计算,以逐秒递减时间,并根据剩余时间显示小时,分钟和秒(HH:MM:SS)的适当值。所有代码都通过注释很好地解释了。您可以在下面查看完整的代码和演示视频。
当计时器达到零时,蜂鸣器开始发出蜂鸣声,并且仅发出100次哔声(根据代码)。要停止蜂鸣器,请按住按钮。您可以随时使用按钮在计数之间停止计时器。