亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

掌握 Arduino 内部定时器实现精准定时

组件与物料

组件数量
Arduino UNO1
LED1
220Ω 电阻1

项目简介

Arduino 内部定时器可实现精准定时,且不阻塞主循环。本教程以 Timer0 为例,详解 CTC 模式、预分频器、比较匹配中断配置,附带 1ms 定时翻转 LED 示例。

核心原理

关键寄存器配置

// 设置 CTC 模式
TCCR0A |= (1 << WGM01);

// 设置比较值:16MHz / 64 / 1000Hz = 250 -> 0xF9 (249)
OCR0A = 0xF9;

// 启用比较匹配 A 中断
TIMSK0 |= (1 << OCIE0A);

// 全局中断使能
sei();

// 设置预分频 1/64 (CS01=1, CS00=1)
TCCR0B |= (1 << CS01) | (1 << CS00);

完整示例:1 秒翻转 LED

int timer = 0;
bool state = 0;

void setup() {
  pinMode(13, OUTPUT);
  TCCR0A = (1 << WGM01);      // CTC 模式
  OCR0A = 0xF9;               // 1ms @ 16MHz/64
  TIMSK0 |= (1 << OCIE0A);    // 启用中断
  sei();                      // 全局中断使能
  TCCR0B |= (1 << CS01) | (1 << CS00); // 预分频 64,启动定时器
}

void loop() {
  if (timer >= 1000) { // 1000ms = 1秒
    state = !state;
    timer = 0;
  }
  digitalWrite(13, state);
}

ISR(TIMER0_COMPA_vect) {
  timer++; // 每 1ms 执行一次
}

注意事项

原理图

掌握 Arduino 内部定时器实现精准定时

制造工艺

  1. DIY 蓝牙控制 Arduino 间谍小车
  2. FlickMote:基于手势的智能家居红外遥控器
  3. DIY Arduino TV-B-Gone:万能关机遥控器
  4. 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
  5. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  6. Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
  7. Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
  8. 从零构建智能 Arduino 四足机器人:完整指南
  9. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
  10. 利用 Arduino Nano R3 自制全功能 CNC 雕刻机
  11. Earth Analyzer:面向精准农业的多模态物联网环境监测巡检车
  12. 基于 Arduino Mega 与物联网传感器的高级家庭监控系统