0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何让Arduino进入睡眠状态

454398 来源:工程师吴畏 2019-08-26 08:54 次阅读

第1步:需要的材料/使用的电路板

使用什么电路板?

在本教程中,我们将使用Arduino Uno,因为它是一个更简单的原型板。在一个真实的现场项目中,我会使用Arduino Pro Mini。 Arduino Uno和Arduino Pro Mini具有非常相似的特性,Arduino pro mini具有更少的硬件供电(例如USB部分,额外的LED和其他一些东西),因此功耗更低。这就是为什么Arduino Pro mini是更好的选择。举一个例子,Uno在清醒时使用30-40 mA,在睡眠时使用约19 mA。 Pro Mini在唤醒时使用25mA,在睡眠时使用0.57 mA。由于每个mA在连接到电池时都很重要,你可以看到没有比赛,Arduino Pro Mini是赢家。

注意:作为初学者,Arduino Pro Mini可能有点令人生畏,但没有理由。是的,您需要将标题焊接到电路板上,并且需要使用FTDI电缆上传草图,但除此之外没有重大差异。

第2步:睡眠模式

当您查看ATmega328p的文档时(单击此链接获取本文档的副本)处理器用于Arduino Uno和Arduino Pro mini,您会注意到那里有许多不同的睡眠模式可用。但在现实世界中,实际上只有一种模式很有用;掉电模式(SLEEP_MODE_PWR_DOWN)。

当您将Arduino置于休眠状态时,它会关闭所有不必要的组件,从而降低MCU微控制器单元)的功耗。在这种模式下,你可以唤醒它的唯一方法是使用外部影响(例如我们轻轻唤醒它)。我们将在本教程稍后讨论如何执行此操作。

步骤3:中断

在我们进入代码放置Arduino之前睡觉我们需要了解中断概念。描述它的最佳方式是;你正在研究你真正需要关注的事情。你戴着耳机大声爆破你的音乐,淹没你的余情。你如此专注于外面世界对你失去了。引起你注意的唯一方法就是给你一个轻推。在你收到这个轻推之后,你要注意中断的内容,并在处理之后你重新打开音乐并继续你的任务。

注意:我不打算深入了解中断有什么用处,但如果您想了解有关此概念的更多信息,请查看我的教程( 使用中断来改善项目的功能 )

大多数真正的Arduino都有几个引脚可以做到这一点。 Uno和Pro Mini有2个引脚(d2和d3),能够中断Arduino正在做的事情。有了这个,我们可以将Arduino推回到清醒状态。

第4步:代码/草图

您可以从我的下载已完成的完成草图网站点击此链接要获得完整的描述和解释代码如何工作,您可以点击链接:让您的Arduino进入睡眠状态的指南进入我的博客。

第5步:EXERCISE 1

步骤1)

现在是时候上传草图了。但在此之前,在d2中放了一根跳线。现在就把它拔掉另一端。加载草图并等待5秒钟,LED指示灯熄灭,Arduino进入休眠状态。

步骤2)

LED熄灭后插入跳线的另一端连接Arduino Uno上的GND引脚。这将拉低引脚2 LOW触发中断,从而唤醒正在睡眠的Arduino。 LED重新亮起后,您可以将跳线从GND中取出,5秒钟后,Arduino会重新进入睡眠状态。

对于我使用实时时钟(RTC)唤醒的示例项目湿度和温度数据记录器只需单击以下链接:使用RTC唤醒ARDUINO数据记录器的示例。它是如何在现实世界中发挥作用的一个很好的例子

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    187

    文章

    6461

    浏览量

    186569
收藏 人收藏

    评论

    相关推荐

    一文搞懂Linux进程的睡眠和唤醒

    睡眠机制: 1)主动睡眠(Blocking Sleep): 进程自愿进入睡眠状态,通常是通过系统调用如sleep()、wait()等。 2)被动
    发表于 11-04 15:15

    使用wifi_set_sleep_type设置为light sleep后无法进入休眠怎么解决?

    使用wifi_set_sleep_type设置为light sleep后无法进入休眠,模块电流一直在80mA左右,(用强制light sleep休眠可以到十几mA) 手册说调用wifi_set_sleep_type后“由系统底层决定何时进入睡眠
    发表于 07-22 06:12

    ESP8266上运行AT命令固件,通过发送命令AT GSLP使其进入深度睡眠状态,ESP8266如何从深度睡眠中醒来?

    我正在ESP8266上运行 AT 命令固件。我可以通过发送命令 AT GSLP 使其进入深度睡眠状态。但是我如何从深度睡眠中醒来ESP8266呢?是否可以发送另一个 AT 命令来唤醒它
    发表于 07-16 07:32

    请问esp32-s3如何正确进入睡眠模式?

    开发板:esp32-s3-WROOM-1 ESP-IDF:5.0 不管通过esp_light_sleep_start()还是esp_deep_sleep_start()进入睡眠模式,功耗都是在
    发表于 06-11 09:03

    esp32-s3添加ulp adc触发唤醒后调用sleep_start不能进入睡眠的原因?

    1.esp32-s3 在light_sleep睡眠模式下 添加ulp低功耗 risv 3s定时器唤醒源正常,同时添加ulp adc触发唤醒后调用sleep_start 不能进入睡眠的问题 。 2.
    发表于 06-07 07:01

    请问大佬们有什么办法能使ESP32-C3进入睡眠状态后BLE依然连接呢?

    esp_sleep_pd_config的资料(图4) ,遗憾的是里面没有ESP_PD_DOMAIN_BT,请问大佬们有什么办法能使ESP-C3进入睡眠状态后BLE依然连接呢?
    发表于 06-07 06:15

    TC397在系统需要时将MCU设置为睡眠模式遇到的疑问求解

    我想在系统需要时将 MCU 设置为睡眠模式,但在实施过程中我发现了一些疑点。 1为了外围模块进入睡眠状态,我需要先将 EDIS 设置为 0,但我不确定何时应将该位设置回 1?是否会通
    发表于 05-27 08:28

    请问如何CYW20721B2进入睡眠状态

    我曾尝试 CYW20721B2 休眠,但至今没有成功。 我有一个 CYBT-413061 模块,在 APPLICATION_START() 结尾处的几个示例程序中添加了以下代码,但没有睡眠
    发表于 05-24 08:12

    STM32F103进入睡眠模式或者待机模式或者停机模式,IO脚原先设置的电平值是否会改变?

    STM32F103进入睡眠模式或者待机模式或者停机模式,IO脚原先设置的电平值是否会改变? 锁定STM32F103的IO脚,那么当 STM32F103进入睡眠模式或者待机模式或者停机模式,IO脚原先设置的电平值是否会改变?
    发表于 05-17 09:22

    stm32f0待机模式用rtc闹钟唤醒,第二次唤醒没办法进入睡眠什么情况?

    stm32f0待机模式用rtc闹钟唤醒问题,第一次正常,可以进入睡眠,第二次唤醒重启后执行 PWR_EnterSTANDBYMode();就直接重启了,没办法进入睡眠什么情况?
    发表于 04-28 07:12

    请问STM32进入睡眠模式怎么下载程序?

    今天做低功耗实验,不小心把唤醒的代码屏蔽了,板子开机后1秒左右就进入深度睡眠了,这下下载不了程序了。尝试用ISP下载,但是不管是读MCU器件信息还清除芯片、下载程序都一直返回1F。莫非要报废了
    发表于 04-24 08:00

    请问一下睡眠模式怎么用WFI进入中断?

    请问一下睡眠模式怎么用WFI进入中断,还有进入睡眠模式说的CPU时钟关闭,对其它时钟及模拟时钟无影响是什么意思,除了PWR时钟开启,其他关闭吗,什么是模拟时钟
    发表于 04-23 07:57

    CY8C4045AZI-S413使用外部时钟 (48MHz) 而不是内部时钟时可以进入睡眠模式吗?

    CY8C4045AZI-S413 使用外部时钟 (48MHz) 而不是内部时钟时可以进入睡眠模式吗? 如果是,使用内部时钟和外部时钟进入睡眠模式的 API 和程序是否相同? 即使使用外部时钟
    发表于 02-26 06:36

    psoc6在进入睡眠前配置了spi的口为高阻态,spi无法正常工作是为什么?

    ); } //----------------------------------------------------------- 我发现一个问题就是我如果在进入睡眠前配置了spi的口为高阻态,在睡眠唤醒后,我的spi重新初始化也无法正常工作。 读到的设备数据异常。
    发表于 02-21 06:16

    ADUCM360如何用外部中断将CPU从睡眠模式唤醒?

    需要实现的功能:ADUCM360外接时钟,时钟定时中断引脚连接CPU的外部中断6,CPU不工作时进入睡眠模式,当时钟定时到达5分钟时,外部中断将CPU从睡眠模式唤醒,并执行一些测量运算,完成后
    发表于 01-12 06:59