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

比如,在展示一个长像素动画的同时,又需要电路能始终响应来自按钮等外部输入的信号。这时,你就可以使用中断来实现这一目的。又比如,你想降低电路的功耗,让设备在电池供电状态下也能长时间工作,这时,你可以让电路进入休眠状态,当需要使用时,通过中断再次唤醒它。
硬件中断正如其名,会中断正在Arduino上运行的程序。这一功能只能通过特定的引脚来实现,电路板文档中有引脚设定详情。即使程序处于正常运行状态,例如循环次数很多的像素动画,处理器也能够持续监控这些特殊引脚。
我需要做的就是,在我的电路中,用按钮连接一个中断引脚和5V电源,在代码中为该引脚赋值一个中断模式。该引脚可检测三种模式的设置,你可以选择用哪一种。比如”上升“,即从低到高、”下降“,即从高到低,以及”变化“:要么上升,要么下降。
这样,我的程序就可以利用中断引脚监控用户输入,比如在触发中断时,告诉程序跳转到下一个LED动画。这一功能对于制作Neo Pixel服装很有用,可以使按钮在长动画期间的反应更灵敏。

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

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

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

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

Arduino低功耗库中有这样的示例,名为ExternalWakeup。
虽然中断和电量控制属于进阶话题,但我希望你们可以了解有一些简单的方法,可以使用休眠模式和中断,让你的项目反应更灵敏,并消耗更少的电量。
欢迎查看本系列其他内容,了解更多关于电子设计入门的信息!
无论是制作智能传感节点、便携式设备,还是需要长时间运行的物联网应用,掌握中断与休眠机制都能让您的设计更加高效和可靠。希望通过本文的介绍,您能够在未来的Arduino项目中灵活运用这两项功能,打造性能与功耗兼顾的优秀作品。
相关产品
![]()
Arduino ARDUINO UNO R3 ATMEGA328P评估板 | ![]()
Arduino ARDUINO MKR WIFI 1010 评估板 | ![]()
SRA Soldering Products 免清洁 焊线(63/37) |
关于本系列视频
电子设计博大精深,对于初学者来说,有一定的难度。本系列视频旨在介绍一些入门级的技术和技巧,包括电路设计基础知识、简单程序设计等,让初学者从基础开始,再一步步向更进阶出发,在电子设计的世界里,发掘更多乐趣,同时也可以让电子设计爱好者温故知新。
关于Becky Stern

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”或“得捷电子”
关注我们官方微信
并登记成会员,
每周接收工程师秘技,
赚积分、换礼品、享福利



