Arduino UNO R3自学笔记16 之 Arduino的定时器介绍及应用

注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。

前言:学习定时器的功能。

1.定时器介绍

        定时器也是一种中断,属于软件中断。 它就像一个时钟,可以测量事件的时间间隔。        

        比如早晨闹钟可以准时在7点半叫你,醒不醒就是你自己的事了。

2.Arduino UNO R3的定时器

        Arduino Uno 采用的是 16Mhz 的晶振。单次计数需要 1/16000000 秒或 62 纳秒。这意味着 Arduino  62 纳秒从一条指令移动到另一条指令。当然时钟频率越高,处理速度就越快。

每个定时器都有一个计数器,在计时器的每个时钟周期递增。因此,你需要定的时间,单片机自己通过数数来实现。

在 Arduino Uno 中有三个定时器,他们分别被使用到以下官方函数和库中:

  • Timer0(8 位定时器)
    • delay()
    • delayMicroseconds()
    • millis()
    • micros()
  • Timer1(16 位定时器)
    • 伺服电机库 Servo.h
  • Timer2(8 位定时器)
    • tone()函数

各个定时器与引脚功能、软件库功能对应关系:

Timer0:D5/D6的PWM输出、delay()、millis()、delayMicroseconds()。
Timer1:D9/D10的PWM输出、舵机库Servo.h、TimerOne库。
Timer2:D3/D11的PWM输出、无源蜂鸣器的tone()、 MsTimer2库(三方库)。

3.今日知识点讲解

 MsTimer2库(三方库)的使用:

        #include <MsTimer2.h>    //调用三方库

        MsTimer2::set(time, Task_Time);   //初始化库函数,在setup函数里。

                参数一:time,是指定时多久,单位毫秒。

                参数二:定时的时间到了需要去执行的任务函数。
        MsTimer2::start();     //开启定时器,无参数。在setup函数里三方库的初始化后面。

4.应用及电路连接图

实验内容: LED 闪烁运行。

电路接线图:

5.实现代码

#include <MsTimer2.h> //调用三方库定时器库

#define led 13
boolean LEDStatus;

void Task_Time()                      //时间到了的执行函数
{
  LEDStatus = !LEDStatus;             //灯状态翻转
  if (LEDStatus)digitalWrite(led, HIGH);
  else digitalWrite(led, LOW);
}

void setup() 
{
  pinMode(led, OUTPUT);              //13引脚设置为输出
  MsTimer2::set(1000, Task_Time);    //初始化定时器库,设置一秒执行一次Task_Time
  MsTimer2::start();                 //开启定时器
}

void loop() 
{
//不用写内容,自动调用。
}

5.仿真视频

定时器仿真视频

上一篇:Arduino UNO R3自学笔记15 之 Arduino如何驱动数码管?

下一篇:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ω-QAQ-Ω

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值