在本文中,我们将学习如何制作一个简单的2 步 Arduino 可编程定时器电路,该电路可用于通过独立可调的 ON 和 OFF 时序来切换电气负载的开/关。
例如,如果您希望灯保持 ON 24 小时和 OFF 2小时,您可以通过快速修改程序代码来执行此操作。同样,您可以通过适当地更改代码,将输出时序自定义为任何其他所需的时间间隔集。
程序代码
void setup(){
pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(13, HIGH);
delay(86400000);
digitalWrite(13, LOW);
delay(3600000);
}
在上面的示例代码中,行延迟(86400000);和 延迟(3600000); 分别确定输出ON和OFF延迟时间间隔,以毫秒为单位。在这里,数字 86400000 毫秒对应于 24 小时,而 3600000 表示 1 小时延迟。
您可以根据个人喜好自定义这两个值,以获得所需的输出延迟。
设置并通电后,Arduino将继续在两步ON/OFF定时序列之间切换。只要系统仍然通电。
电路图
完整的电路图以及Arduino连接可以在下图中看到:
Arduino 单脉冲定时器电路
如果您不希望计时器循环遍历两步计时器,而是希望计时器是一次性类型,这将在设置的延迟后永久关闭,则可以应用以下代码:
int led = 13; // Pin 13 has an LED connected on most Arduino boards.
unsigned long DELAY_TIME = 10000; // 10 sec
unsigned long delayStart = 0; // the time the delay started
bool delayRunning = false; // true if still waiting for delay to finish
void setup() {
pinMode(led, OUTPUT); // initialize the digital pin as an output.
digitalWrite(led, HIGH); // turn led on
// start delay
delayStart = millis();
delayRunning = true;
}
void loop() {
// check if delay has timed out
if (delayRunning && ((millis() - delayStart) >= DELAY_TIME)) {
delayRunning = false; // finished delay -- single shot, once only
digitalWrite(led, LOW); // turn led off
}
}
如果您想要相同可编程定时器电路的离散设计版本,则可以选择此电路
Arduino可编程定时器电路所需的部件
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
定时器电路
+关注
关注
1文章
29浏览量
12858 -
Arduino
+关注
关注
184文章
6427浏览量
184833 -
可编程定时器
+关注
关注
0文章
7浏览量
1753
发布评论请先 登录
相关推荐
可编程计数器/定时器的相关资料分享
过程)■CPU干预■指令执行时间作间隔2、不可编程的硬件定时方式(就像保险丝熔断一样,并不是由程序控制的)■方式固定■硬件设定参数3、可编程
发表于 12-13 06:23
8253计数器定时器结构与编程
可编程计数器/定时器的特点计算机及电子系统中需要定时信号,如系统的日历时钟,动态存储器的刷新,应用系统的定时中断、定时查询与检测等。
发表于 12-09 10:59
•146次下载
可编程定时器计数器8253
实验 可编程定时器计数器8253一)实验目的掌握8253的基本工作原理和编程方法。http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛二)实验
发表于 03-25 10:58
•3942次阅读
用MC14541B构成的可编程序定时器
用MC14541B构成的可编程序定时器
MC14541B是由16级二进制计数振荡器(C、R电路)、自动电源复位和输出控制电路构成的。16级计数器的分频比依靠控制输
发表于 12-29 10:30
•3229次阅读
评论