arduino定时器pdf_Arduino基础入门篇18—数字时钟
Arduino不但有外部中斷,還有定時器中斷,不同Arduino開發(fā)板其定時器數(shù)量及性能也各不相同,這取決于開發(fā)板主控制器。Uno R3開發(fā)板有三個定時器,本篇通過使用定時器庫「TimerOne」來更新數(shù)碼管顯示,制作一個數(shù)字時鐘。
Arduino提供了豐富的庫,關(guān)于定時器的庫包括「TimerOne」、「MsTimer2」等,更多的支持庫的信息可從官網(wǎng)獲取Libraries for Arduino。
1. 定時器庫安裝
在IDE中點擊「項目」—「加載庫」—「管理庫」,查找「TimerOne」進行安裝。
安裝庫
2. 實驗材料
Uno R3開發(fā)板
配套USB數(shù)據(jù)線
面包板及配套連接線
四位共陰極數(shù)碼管
4個220Ω限流電阻
3. 實驗步驟
1. 根據(jù)原理圖搭建電路。
根據(jù)四位數(shù)碼管的引腳圖,a,b,c,d,e,f,g,dp引腳分別連接開發(fā)板的數(shù)字引腳7,6,5,10,11,8,9,4。數(shù)碼管的1,2,3,4引腳分別串聯(lián)220Ω限流電阻,電阻另一端分別連接開發(fā)板的數(shù)字引腳2,3,12,13。
實驗原理圖如下圖所示:
實驗原理圖
實物連接圖如下圖所示:
實物連接圖
2. 新建sketch,拷貝如下代碼替換自動生成的代碼并進行保存。
/*
SevTimer
使用定時器驅(qū)動四位數(shù)碼管實現(xiàn)數(shù)字時鐘顯示
*/
#include "TimerOne.h"
#include "SevSeg.h"
SevSeg sevseg;
int Fen = 0;
int Miao = 0;
byte numDigits = 4; //數(shù)碼管位數(shù)
byte digitPins[] = {2, 3, 12, 13}; //數(shù)碼管公共極連接Arduino的引腳
byte segmentPins[] = {7, 6, 5, 10, 11, 8, 9, 4}; //數(shù)碼管a,b,c,d,e,f,g,dp對應(yīng)引腳
byte hardwareConfig = COMMON_CATHODE ; // 共陰極數(shù)碼管
void setup() {
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins); //初始化數(shù)碼管
Timer1.initialize(1000000);//初始化定時器為1s
Timer1.attachInterrupt( timerIsr );//設(shè)置中斷回調(diào)函數(shù)
}
void loop() {
sevseg.setNumber(Fen * 100 + Miao, -1); //設(shè)置要顯示的數(shù)據(jù),不顯示小數(shù)點
sevseg.refreshDisplay(); // 必須重復(fù)運行刷新數(shù)碼管顯示
}
void timerIsr()//定時器中斷處理函數(shù)
{
Miao++;
if (Miao > 59)
{
Miao = 0;
Fen++;
if (Fen > 59)
Fen = 0;
}
}
3. 連接開發(fā)板,設(shè)置好對應(yīng)端口號和開發(fā)板類型,進行程序下載。
程序下載
4. 實驗現(xiàn)象
數(shù)碼管1秒計數(shù)一次,滿60秒分鐘加一,實現(xiàn)數(shù)字時鐘效果。
實驗現(xiàn)象
5. 實驗分析
數(shù)碼管驅(qū)動依舊使用「SevSeg」,具體使用方法在前面文章有所介紹。在setup()中使用 Timer1.initialize(1000000)來初始化定時器,括號內(nèi)為定時周期,以微妙為單位,所以這里的1000000為1秒。然后使用Timer1.attachInterrupt( timerIsr )來設(shè)置中斷回調(diào)函數(shù)。我們在程序中要實現(xiàn)timerIsr()函數(shù),在里面實現(xiàn)分鐘和秒數(shù)的控制。
有了定時器,有了數(shù)碼管,我們可以很方便的實現(xiàn)一些跟時鐘有關(guān)的制作,你可以結(jié)合數(shù)碼管和蜂鳴器,來實現(xiàn)倒計時提示的制作。
總結(jié)
以上是生活随笔為你收集整理的arduino定时器pdf_Arduino基础入门篇18—数字时钟的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DNA存储大数据,峰哥身价暴涨10个亿
- 下一篇: Markdown 入门及语法详细指南 ★