每24小时使用计时器打开Arduino


9

我目前正在研究一个Arduino项目,该项目每天通过ESP8266向我发送汽车电池的电量。在冬季,我不开车,我想在电池跌落到临界值以上时得到通知,以便为电池充电并防止损坏。

因此,能源效率对于该项目很重要,因此它不会使电池本身放电。我阅读了很多有关睡眠模式,高效的下拉稳压器等的信息。这些都具有一个共同点,那就是稳压器一直在运行,这不是我想要的。

我正在寻找某种“计时器上的夹心电路”。它应该倒计时24小时,然后打开一个继电器或MOSFET,将稳压器连接到电源,然后打开Arduino和ESP8266。Arduino完成传输后,它将重置计时器,从而将稳压器与电源断开,依此类推。当然,定时器电路仅需消耗很少的功率。

有人知道这样的电路吗?我在搜索速卖通时想到的所有单词变体都没有成功。还是可以轻松使用IC创建这样的电路的IC?


1
并非所有的稳压器都相同。有些仅使用几微安。
Gerben

开箱即用的想法...标准的定时开关是否足够?
user31208 '17

Answers:


5

一种方法是使用DS3231(精确实时时钟)模块。此类模块在Ebay上的售价不到1美元。搜索ds3231 arduino

通常,这些模块具有六针连接器,其针标记为32K,SQW,SCL,SDA,VCC和GND。如DS3231规范所述,INT / SQW引脚用于方波输出或中断输出。在规格的第13页上的“控制寄存器”部分,它说:

位2:中断控制(INTCN)。该位控制INT / SQW信号。当INTCN位设置为逻辑0时,在INT / SQW引脚上输出方波。当INTCN位设置为逻辑1时,计时寄存器和任一警报寄存器之间的匹配将激活INT / SQW输出(如果还使能了警报)。

最初,您将运行一个草图来设置DS3231:打开每日警报,启用中断而不是方波,设置当前时间等。然后,加载一个可运行的程序,该程序在每次运行时读取汽车电池电压,并且行为适当。

DS3231 INT / SQW引脚将连接至P沟道MOSFET的栅极,该MOSFET将12V电源切换至Arduino。当警报的漏极开路输出引脚INT / SQW打开时,P脚将打开。该操作程序开始其业务,然后清除DS3231中断标志,以关闭电源,直到发生下一次警报为止。(对于调试,请设置比一天更短的时间间隔;例如,每分钟一次,如规格第12页的表2,警报掩码位中所述。)

通常,使用3.3V电池供电时,DS3231消耗0.84μA电流;如果使用5V电源,则消耗1μA。参见规格第3页的电气特性。


1
P-fet栅极可能应通过一个1兆欧的电阻上拉至+12。否则它将在INT / SQW引脚关闭时有效地打开,并且可能浮动到任意水平
James Waldby-jwpat7 '16

3

计时器或计时器电路本身必须消耗一些电流。如果我没记错的话,任何微微功率AVR芯片在睡眠模式下消耗的电流都很少-328的微安只有10s。休眠AVR以消耗最小电流几乎需要关闭所有东西,但看门狗定时器除外,并且最大WDT周期为8秒。像Narcoleptic这样的图书馆将为您管理更长的时间。但是,您需要做的是提供比Arduino板上内置的稳压电源更有效的稳压电源(如果要使用的话)。完成后,Arduino在汽车电池上的负载应该是微小的。

一种有效供电的可能设计是一组碱性电池,例如串联3个,用于4.5输出(新鲜时)乘以2个或更多此类并联的串,直接连接到5v总线。

我还没有进行功率预算来知道您需要的容量以及是否需要D电池,或者是否可以用较小的电池(例如AA)制成实用的阵列,但这是一种实现汽车电池零负载的方法(折扣汽车电池电压传感器的要求)。您可能希望在每日报告中包括Arduino电池阵列的健康状况,或者,以几枚碱性电池的价格,您可能过度设计了Arduino电池,因此无需对其进行监视。

几个数据点表明,单独使用电池是一种可行的方法:

  • 单个9v碱性电池在一个烟雾探测器中运行了一年以上,包括在未加热的阁楼中过冬(以我自己的经验),而9v碱性电池的容量并不为人所知。
  • 我的数字挫折恒温器已经在2个AA电池上运行了几年,之后a)它们死亡,b)我明智地决定每年开始更换它们。:)

自2012年6月以来,我有一个ATmega48(非常类似于328P)在几个AA电池上运行。它每天醒着超过4分钟,其余时间都在睡觉。到目前为止尚未更换电池。
Edgar Bonet

这是一个令人印象深刻的运行时-感谢附加数据点@EdgarBonet!我期望一个睡觉的Arduino和一个碱性电池组可以成为一个“一劳永逸”的系统,但是如果不计算能耗,我没想到它会表现的那么好。因此,@ DirkPitt,有一些真实的支持数据。
JRobert

它不是一个完整的Arduino:我的Uno无法达到低于40 mA的电流,而SLEEP_MODE_PWR_SAVE只有异步计时器处于活动状态的裸露ATmega 占用了大约2 µA的电流。
Edgar Bonet


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.