中断和休眠 Arduino项目中的这两个课题要怎么解?

中断和休眠 Arduino项目中的这两个课题要怎么解?

作者:Becky Stern

关键词:Arduino,休眠,中断

在许多Arduino项目中,我们经常会遇到两个挑战:如何让设备及时响应外部事件,以及如何降低系统功耗。由于Arduino程序通常采用单线程方式运行,当程序执行复杂任务时,往往难以及时处理按钮、传感器等外部输入。

Boosting Arduino Efficiency: Interrupts and Power Management

比如,在展示一个长像素动画的同时,又需要电路能始终响应来自按钮等外部输入的信号。这时,你就可以使用中断来实现这一目的。又比如,你想降低电路的功耗,让设备在电池供电状态下也能长时间工作,这时,你可以让电路进入休眠状态,当需要使用时,通过中断再次唤醒它。

硬件中断正如其名,会中断正在Arduino上运行的程序。这一功能只能通过特定的引脚来实现,电路板文档中有引脚设定详情。即使程序处于正常运行状态,例如循环次数很多的像素动画,处理器也能够持续监控这些特殊引脚。

我需要做的就是,在我的电路中,用按钮连接一个中断引脚和5V电源,在代码中为该引脚赋值一个中断模式。该引脚可检测三种模式的设置,你可以选择用哪一种。比如”上升“,即从低到高、”下降“,即从高到低,以及”变化“:要么上升,要么下降。

这样,我的程序就可以利用中断引脚监控用户输入,比如在触发中断时,告诉程序跳转到下一个LED动画。这一功能对于制作Neo Pixel服装很有用,可以使按钮在长动画期间的反应更灵敏。

Boosting Arduino Efficiency: Interrupts and Power Management

若要使用Arduino的休眠模式,我们需要调用Arduino低功耗库 ( Low Power Library),库中有大量的示例,方便你轻松上手。休眠模式的不同之处,在于设备关闭程度的差别。

Boosting Arduino Efficiency: Interrupts and Power Management

假设你要制作一个温湿度记录仪,每分钟只需读取一次数据,你可以使用带定时器的深度休眠,每分钟唤醒一次传感器,传感器在其余时间都处于休眠状态,这将大大减少设备耗电量。

Boosting Arduino Efficiency: Interrupts and Power Management

此外,还有轻度休眠、待机和空闲等模式。每种模式提供的功能不同,但也会消耗一些电量。Arduino文档中详细解释了这些模式之间的区别。

Boosting Arduino Efficiency: Interrupts and Power Management

可以使用中断将Arduino从休眠模式中唤醒,比如数字输入信号,甚至是通过模数转换器的传感器输入。使用与之前相同的电路,我可以将微控制器置于低功耗模式,通过附加的中断将其唤醒。

Boosting Arduino Efficiency: Interrupts and Power Management

Arduino低功耗库中有这样的示例,名为ExternalWakeup。

虽然中断和电量控制属于进阶话题,但我希望你们可以了解有一些简单的方法,可以使用休眠模式和中断,让你的项目反应更灵敏,并消耗更少的电量。

欢迎查看本系列其他内容,了解更多关于电子设计入门的信息!

无论是制作智能传感节点、便携式设备,还是需要长时间运行的物联网应用,掌握中断与休眠机制都能让您的设计更加高效和可靠。希望通过本文的介绍,您能够在未来的Arduino项目中灵活运用这两项功能,打造性能与功耗兼顾的优秀作品。

相关产品

Atmega328P Arduino Uno R3 AVR® Atmega, Maker AVR MCU 8-位 评估板 - 嵌入式

Arduino

A000066

ARDUINO UNO R3 ATMEGA328P评估板

NINA-W10 SAM D, Maker 802.11 b/g/n(WiFi/WLAN/Wi-Fi 4) 收发器 2.4GHz 评估板

Arduino

ABX00023

ARDUINO MKR WIFI 1010 评估板

有引线 免清洁 焊线 Sn63Pb37(63/37) 20 AWG,21 SWG 线轴,2 盎司(56.70g)

SRA Soldering Products

WBNCC633731-2OZ

免清洁 焊线(63/37)

关于本系列视频

电子设计博大精深,对于初学者来说,有一定的难度。本系列视频旨在介绍一些入门级的技术和技巧,包括电路设计基础知识、简单程序设计等,让初学者从基础开始,再一步步向更进阶出发,在电子设计的世界里,发掘更多乐趣,同时也可以让电子设计爱好者温故知新。

关于Becky Stern

A person smiling at camera

Description automatically generated

Becky Stern是一名创客,拥有多年设计电子项目的经验,创作和分享是她两大爱好。在独立创业之前,她曾担任 Instructables (Autodesk) 的产品经理、Adafruit 的可穿戴电子产品总监等。她的作品曾被 BBC、CNN、Business Insider、Forbes 和 Science Friday 等知名媒体报导过。她创建了数百个关于技术和手工制作的线上DIY教程和视频,旨在分享她的知识,帮助同是电子设计爱好者的同路人学习,以及相互交流。

喜欢【与Becky入门电子世界】系列吗? 请关注订阅并点赞和分享,敬请留意下一期!

******

如有任何问题,欢迎联系得捷电子DigiKey客服团队。

中国(人民币)客服
- 400-920-1199
- service.sh@digikey.com
- QQ在线实时咨询 |QQ号:4009201199

中国(美金)/ 香港客服
- 400-882-4440
- 8523104-0500
- china.support@digikey.com

Digikey WeChat QR Code

到微信搜寻“digikey”或“得捷电子
关注我们官方微信
并登记成会员,
每周接收工程师秘技,
赚积分、换礼品、享福利

头像
得捷电子

评论已关闭。

Copyright©DigiKey Electronics