在本文中,我们将学习如何制作一个简单的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连接可以在下图中看到:
如果您不希望计时器循环遍历两步计时器,而是希望计时器是一次性类型,这将在设置的延迟后永久关闭,则可以应用以下代码:
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
}
}
如果您想要相同可编程定时器电路的离散设计版本,则可以选择此电路
全部0条评论
快来发表一下你的评论吧 !