内容简介:我是潘,曾经是个工程师。这是为 Ardui.Co 制作的 “Arduino 魔法书” 系列的专栏。上节课介绍了怎么让Arduino 全速运行,但大部分时候我们更希望 Arduino 能慢下来,节省更多的电能,让设备在户外数据采集等取电不便的地方,运行的更久。降低 Arduino 的速度,最简单粗暴的方式就是换一个频率低的晶振(硬件层面),UNO 和Mage2560 默认使用16MHz的晶振,换成8MHz,速度就会降下来一半。对即将进入成品阶段的设计,建议在硬件层面修改,因为这是最可靠稳定的。如果还在验证和
我是潘,曾经是个工程师。这是为 Ardui.Co 制作的 “Arduino 魔法书” 系列的专栏。上节课介绍了怎么让Arduino 全速运行,但大部分时候我们更希望 Arduino 能慢下来,节省更多的电能,让设备在户外数据采集等取电不便的地方,运行的更久。
降低 Arduino 的速度,最简单粗暴的方式就是换一个频率低的晶振(硬件层面),UNO 和Mage2560 默认使用16MHz的晶振,换成8MHz,速度就会降下来一半。对即将进入成品阶段的设计,建议在硬件层面修改,因为这是最可靠稳定的。如果还在验证和开发的阶段呢?软件方式会比较便利。
软件方式就是修改时钟分频寄存器(CLKPR),它决定了CPU 运行的速度。要注意的是, 速度一旦改变,就会影响delay()、millis() 等时间相关的函数,而且会影响ADC、串口等外围设备 。CLKPR 根据下表的值控制CPU的分频比(晶振频率除以分频比,即为CPU运行速度):
修改CLKPR 需要一个特殊过程,第一步,先将它的第7位(即 CLKCE)设置为1,并将其他位置零;第二步,给CLKPR 赋值。而且这个过程必须在4个周期内完成写入动作 -_-!! 所以过程中,最好禁止所有中断。
/* 作者:Ardui.co 效果:改变CPU速度 版本:1.0 更新时间:2018年5月29日 */ void setup() { bitSet(DDRB, 5); noInterrupts(); CLKPR = 1 << CLKPCE; CLKPR = 8;// 将CPU速度设置为 16MHz / 256 interrupts(); } void loop() { bitSet(PINB, 5); // 翻转 delay(4);// CPU慢了256倍,所以延迟时间为 4ms * 256 }
由于 CPU 的速度只有原来的1/256,Arduino 的示例程序程序Blink 中,延时函数 delay(1000) ,延迟时间即 1000ms * 256,超过4分种,闪烁实在太慢了,所以这里将延迟函数改为 delay(4),即1.024秒。
使用USB计量器测量降速后(下图一)和原速(下图二)的功耗,降速后功耗降低了10mA左右,节约了 20% 功耗。
节约10mA 是什么概念呢?计算一下:
原速运行时,Arduino UNO的功耗为 P = 0.05A * 5V = 0.25W
2节AA碱性电池升压(假设转换效率100%),工作在100mA 放电电流时,电量约 Q = 2Ah * 3V = 6Wh
即Arduino 可以运行 Q/P = 6Wh / 0.25A = 24h, 节能后 24h * (1 + 20%) = 28.8h
Arduino UNO 已经在龟速运行了,应该很省电,为什么也就能跑一天多?看来 Arduino 是相当耗电的。
不过,元凶是CPU吗?
其实,最耗电的是Arduino UNO 上的USB模块,而不是CPU。如果换成不带USB模块的 Arduino mini 来重复这个实验 Arduino 省电效果达90%以上,实际测试一下:
去掉 USB 模块后,耗电大幅下降80%以上。降速(上图一)和满速(上图二)的Arduino mini 功耗分别只有 4mA 和 10.55mA!
由于两颗板载 LED 功耗大概2mA * 2左右(其中一颗常亮),也就是说 Arduino mini 上单块 ATmega328P 的功耗只有 <1mA 和 6.5mA,降速后的功耗还不到原来的1/6!与满速的 Arduino UNO 相比不到 1/50 。
Arduino mini 的供电只需 3.3V,降速后的功率为 0.0033W。2节AA电池就可以让其运行 6Wh / 0.0033W = 1818h = 78天,两个多月时间!
但这个数字还不够理想,如果是户外采集数据,我们往往希望电池的寿命在半年、甚至一年以上,即使采用太阳能供电,Arduino 越省电,电池板体积也就能做的越小、成本越低。
另外,耗电的不止Arduino,还有更耗电的外部设备。有没有比降速更省电,同时让外围设备不耗电的方式呢?答案是肯定的。
后面的章节将介绍 Arduino 睡眠模式,不需要工作时,让系统打个盹,甚至睡个懒觉,进入冬眠状态,达到极致省电的状态,甚至2节AA电池就能让它工作2年以上。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与问题求解
韦斯 / 清华大学出版社 / 2011-8 / 89.50元
《数据结构与问题求解(Java语言版)(第4版)》是专为计算机科学专业的两个学期课程而设计的,从介绍什么足数据结构开始,继而对高级数据结构与算法进行分析。《数据结构与问题求解(Java语言版)(第4版)》以独特的方式,清晰地将每种数据结构的接口与其实现分离开来,即将如何使用数据结构与如何对数据结构编程相分离。《数据结构与问题求解(Java语言版)(第4版)》从抽象思维和问题求解的角度出发,为数据结......一起来看看 《数据结构与问题求解》 这本书的介绍吧!