在本文中,我們將學習如何制作一個簡單的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文章
31瀏覽量
13356 -
Arduino
+關注
關注
190文章
6526瀏覽量
196906 -
可編程定時器
+關注
關注
0文章
9瀏覽量
1981
發布評論請先 登錄
相關推薦
熱點推薦
可編程計數器/定時器的相關資料分享
過程)■CPU干預■指令執行時間作間隔2、不可編程的硬件定時方式(就像保險絲熔斷一樣,并不是由程序控制的)■方式固定■硬件設定參數3、可編程
發表于 12-13 06:23
可編程定時器計數器8253
實驗 可編程定時器計數器8253一)實驗目的掌握8253的基本工作原理和編程方法。http://www.3532n.com 電子發燒友
發表于 03-25 10:58
?4386次閱讀
微機原理—可編程計數器/定時器8253概念詳解
過程)■CPU干預■指令執行時間作間隔2、不可編程的硬件定時方式(就像保險絲熔斷一樣,并不是由程序控制的)■方式固定■硬件設定參數3、可編程
發表于 11-26 20:51
?12次下載
如何制作一個簡單的2步Arduino可編程定時器電路
評論