产品概述

单片机天气 【教程】在SPI显示屏上显示网络天气#机器人编程

小编 2024-11-24 产品概述 23 0

【教程】在SPI显示屏上显示网络天气#机器人编程

来了,整活!这次我直接在上期时间程序里来添加网络天气,来看下代码。

·头文件新加了json解析跟http请求,网络天气数据我选了这个,网上多种多样的天气数据大家自己选择。请求参数是URL+城市名+key码,这个key码不要抄,它一天就50次请求,可以自己去注册个。

·新添的两个计时变量,我把wi-Fi、时间跟天气都放到setup里了,因为要获取网络天气数据wi~Fi我就不关闭了。loop里是时间跟天气的更新频率,Wi-Fi和时间函数就不看了跟上个视频基本一样,就看天气数据是如何获取的。

·发送请求URL跟key,城市获取http响应码,得到http._code_OK,这个URL就请求成功。

·获取请求返还的数据,解析这个json数据,通过它给的json数据格式来获取其中想要的数据。这里重新组合了下字符串,就为了显示效果。

·下面就是把文本在显示屏上显示出来,也没什么好说的。要在显示屏上显示天气信息,基本就是找到一个数据来源,根据它的要求发送http请求并获取数据再解析。

·最后根据自己的界面设计在显示屏上显现出来。

好了,活整完了,下次见!

单片机的低功耗模式介绍

文章目录

简介

一、功耗来源说明

1.1、芯片工作模式

1.2、静态损耗

1.3、I/O额外损耗

1.4、动态损耗

二、功耗如何测量

三、降低功耗有什么方法

3.1、选取合适的芯片工作模式

3.2、降低工作频率

3.3、关闭不需要使用的外设

3.4、 降低静态电流损耗

3.5、 周期采集供电

3.6、 设置IO口状态

四、如何唤醒

4.1 RTC周期唤醒

4.2 其他中断唤醒

五、低功耗怎么调试

六、怎样选择太阳能电源

6.1. 太阳能板配制计算方法:

6.2. 蓄电池配置计算方法:

简介

低功耗,其实并不是嵌入式行业独有的名词,对于大多数我们常见的电器,比如。电视机、冰箱、空调等等,都有低功耗概念在里面,包括手机以及电脑。现在给大家科普一下,其实低功耗离我们并不远,它对工业生产和嵌入式而言有何意义。

家用电器,比如电视机,在关机之后,通过遥控板还能控制电视机的开关,这其实就是电视机进入了低功耗状态,只保留必要的相关部分功能,将其他暂不需要的功能涉及的外设全部关闭,对电视机而言,关闭最耗电的屏幕部分,将处理器主板断电,只保留监听红外信号的MCU以及电路的供电,将设备功耗降到最低,以节约能源。

电子产品在我们生活中扮演了极其重要的作用,便携性的电子设备便是其中一种。便携性设备需要电池供电、需要消耗电池的能量。在同等电能提供下,低功耗设计的产品就能够工作更长的时间。时间的就是生命,因此低功耗设计是很重要的。便携性的设备需要低功耗设备

对于手机,无线耳机而言,就更为精密了,手机的低功耗已经是一个庞大的系统,大家可能都会发现,当使用手机打游戏的时候,手机发热最厉害,耗电也最快,其实就是低功耗控制体系导致的。当手机处于关机状态,那么手机只会保持内部核心的计时器的运转以及对开机键部分的信号检测,保证设备能从关机状态正常启动并且内部时间不会混乱。

而当手机处于正常使用的时候,比如你拿手机刷新闻,此时的手机其实也处于一种相对低功耗的模式,因为刷新闻对CPU运算没有太大压力,对网络、屏幕的刷新也没有太大的压力,所以特别是对CPU而言,会控频运转,并不会满载,相应的网络射频部分、屏幕供电部分也不会有太大压力,而当你将手机熄屏,那自然会将屏幕部分设置为最低功耗,只保留唤醒部分电流,MCU降频为很低,同时网络部分也会相应降频,这样还是能正常接收到网络消息推送,但是各个部分功能的功耗都控制到了很低的地步。

最终当然是当你最理想的满载打游戏的时候,屏幕快速刷新,CPU、网络射频部分全速运转,这时其实才是手机的全力运转,其他的时候都处于相对低功耗的状态下。

说回嵌入式行业,其实有很多大家不熟知的地方,低功耗的概念都有至关重要的作用,比如大山里面的监控仪器设备,里面并没有稳定的供电手段,甚至只能通过电池的方式供电运行,所以必须降低一切的不必要功耗,维持设备的正常运转,这其实并不是一件简单的事情,因为电路板涉及元器件繁多,不仅要在软件上完全正确配置设备的外设部分功能,还要在硬件板子上杜绝一切的不必要电源浪费。

像水库大坝的智能监测设备,一般情况下不可能使用市电供给,特别是这种场景,设备能连续稳定运行就显得尤为重要,像在南方地区,可能有一个月以上的连续阴雨天气,智能采集设备低功耗模式在这个时候就起作用了。

一、功耗来源说明

1.1、芯片工作模式

工作模式:外设正常运行,内核CPU及SRAM供电,未使用外设的时钟默认关闭。

睡眠模式(SLEEP):只有CPU停止工作,各个外设正常工作,依靠任何中断/事件唤醒。

停机模式(Standby):1.8V供电区域时钟被停止,内部HSI,PLL,外部时钟HSE均关闭,同时电压检测器也可进入低功耗模式,但SRAM和寄存器不断电,此时只能依靠外部中断(EXTI)和RTC时钟才能唤醒。

待机模式(StopMode):1.8V供电区域被时钟停止,内部HSI,PLL,外部时钟HSE均关闭,同时电压检测器也可进入低功耗模式,SRAM和不属于待机电路的寄存器也被断电关闭,此时即使是外部中断(EXTI)也不能将其唤醒,只能通过复位(外部复位,看门狗复位)、唤醒引脚、RTC时钟来唤醒。

从上面的表可以看出来,模式从上到下功耗越低,但唤醒条件越严格

注意:无论是在停止模式还是待机模式下,RTC和IWDG及其时钟源不会被关闭。

各个模式功耗:

功耗计算方式:功耗=工作电压*工作电流。

1.2、静态损耗

内部上下拉电阻损耗:这部分损耗主要取决于内部电阻的大小,一般为了降低内部电阻损耗常常需要降低电阻两端电压,若引脚为低电压则采用下拉电阻,若引脚为高电压则采用上拉电阻。主要来源有采集电阻、分压电阻、上下拉电阻、匹配电阻、电源芯片的静态电流等

1.3、I/O额外损耗

当引脚设为输入I/O时,用来区分电压高低的斯密特触发器电路会产生一部分消耗,为此可将引脚设为模拟输入模式。

1.4、动态损耗

对于悬浮的引脚,由于其电压不稳定会产生外部电磁干扰和损耗,因此必须把悬浮引脚设为模拟模式或输出模式,引脚电压的切换会对外部和内部电容负载产生动态损耗,其损耗与电压切换频率和负载电容有关。具体损耗值如下:

二、功耗如何测量

测量电路的功耗非常简单。这一切都归结为P = IV的方程。提供给电路的电压非常一致,并且在实际应用中会发生微小的变化。应该做的是借助电流表测量流入电路的电流。

通过使用电流表,可以计算该特定实例的功耗。然而,电流表提供的信息有限,因为它们不能完整地描述功耗特性,例如消耗的峰值功率、占空比和各种功耗水平的持续时间。

要进行深入分析,需要转向示波器并使用电流探头来测量流入电路的电流。这些读数被存储起来,可用于进一步分析。因此,将更好地了解电路的电流消耗。

一般标书要求会以值守电流、工作电流来间接的反映整体设备的功耗例如:

值守电流:小于0.5ma

工作电流:小于15ma

三、降低功耗有什么方法

3.1、选取合适的芯片工作模式

在1.1节提到过,芯片会有不同的工作模式,

功耗降序:工作模式>睡眠模式>停机模式>待机模式

一般选用停机模式进入低功耗模式,因为在保持IO口状态的同时,能通过外部中断,和RTC中断唤醒,而且能保证较低的功耗

3.2、降低工作频率

众所周知,频率越高,计算速度越快,带来的功耗也就越高,那么为了降低功耗,降低工作频率也是一种比较好的办法,也比较显著,在保证外设需要的工作频率要求,尽可能的降低频率。

3.3、关闭不需要使用的外设

项目使用到的外设时钟可以打开,比如调试串口,ADC等,不需要使用的外设时钟关闭,不然会造成额外的电流损耗

3.4、 降低静态电流损耗

比如三极管开关电路,会有电阻一直消耗电流,在满足要求的同时,可适当加大下拉电阻

选取高效率的电源转换芯片,下图为SY8303芯片的效率曲线

加大指示灯电阻,几乎每块电路板都有指示灯,在保证能达到指示效果的情况下,减小其电流损耗

加大指示灯电阻,几乎每块电路板都有指示灯,在保证能达到指示效果的情况下,减小其电流损耗

直接关闭芯片供电,比如232,485芯片,在值守模式下,便可以直接控制断电

3.5、 周期采集供电

比如传感器,摄像头,一般都是周期采集,比如十分钟,一小时间隔采集,这种情况下,一般采用周期供电,程序内部维护定时器,到时间节点,打开相应传感器供电,进行数据采集,采集完成后,断电。达到降低功耗目的

3.6、 设置IO口状态

端口设置,外加上拉、下拉电阻切记不能随便加,需要根据外围电路特性来设置端口模式。避免造成漏电,导致功耗升高。

如果此IO口带上拉,请设置为高电平输出或者高阻态输入;

如果此IO口带下拉,请设置为低电平输出或者高阻态输入;

空闲IO一律模拟模式

四、如何唤醒

4.1 RTC周期唤醒

4.2 其他中断唤醒

比如外部中断,雨量计就是通过外部中断唤醒的,在休眠时期,如果降雨,会触发雨量传感器相应,产生电平跳变,产生外部中断,此时会唤醒单片机进行数据采集。

五、低功耗怎么调试

1、以最小系统的形式验证芯片部分功耗

2、慢慢增加外围电路,记录好各部分电路的功耗

在最小系统的基础上,增加外为电路,记录在正常工作模式跟低功耗模式的消耗情况,例如

功耗 正常工作模式 低功耗模式

最小系统 3ma 300ua

串口1 20ua 20ua

串口2 20ua 20ua

3、通过万用表检测漏电部分

可以通过电压挡检测加在电阻两端的电压,由此通过欧姆定律推算出经过电阻的电流

4、程序单步调试,一步一步打开外设,试试检测电流变化,找到电流影响

5、进入低功耗模式也是可以下线调试的,但是要注意配置

STOP模式退出后,系统时钟会自动配置为MSI或HSI,需要手动重新配置时钟,以及使用时钟的外设。

为了进一步降低STOP模式下的功耗,可以将GPIO设置为ANALOG输入模式,退出stop模式后重新配置GPIO

为了能够在STOP模式下进行调试,在main函数中添加 DBGMCU->CR |= DBGMCU_CR_DBG_STOP

六、怎样选择太阳能电源

当设备安装现场没有市电电源,对数据的上报频率要求很高时,选择使用太阳能供电的方式。太阳能电源包括三部分,太阳能光电池板、太阳能充电控制器、蓄电池。根据现场用电设备(包含低功耗测控终端与现场采集设备)的功率来选择光电池板的大小与蓄电池的容量。下面为计算方法。

6.1. 太阳能板配制计算方法:

电池板配置功率(W)=设备功耗(W)×每天工作时间(小时)×1.2(安全系数)÷[5 小时(每天有效工作时间) ×0.6(充电效率)]

6.2. 蓄电池配置计算方法:

蓄电池配置容量(Ah)=设备功耗(W)×每天工作时间(小时)×阴雨天(天数)÷[设备供电电压(V) ×0.6(供电效率)]

相关问答

单片机 怎么判断温度稳定下来?

去找(购)一只温度传感器,帖在热水器的输出管道壁上,这时就可用它的信号来控制单片机对热水器(电磁阀)进行开关或大小的控制天气量了。再配上适当的显示示和...

单片机 的存储空间如何计算-ZOL问答

1.单片机的位数取决于其CPU寄存器一次能处理的数据宽度,比如51单片机是8位的,因为其ACC是8位,一次只能处理8位数据,STM32的R寄存器是32位的,一次能处理最大32位...

我的 单片机 是stc89c51,用keil建工程时选的也是此型号,但是烧...

STC系列单片机用STC-ISP软件下载程序,如果选择错误就会显示MCU型号不对。...新浪微博天气通淘宝特价版UC浏览器相关问题i-tech的型号为c51-a03024-aa....

单片机 和DSP的区别是什么?

单片机:以TI的MSP430系列的单片机为例,网上有很多基于此单片机的开发板。开发板有数码管显示、按键、串口、PS/2鼠标等接口。这些资源都是与单片机相连接。也...

单片机 冷启动如何解决,一直手动冷启动烦死了-ZOL问答

如果是STC的单片机,可以给串口写一个中断,如果检测到下载信号,MCU产生软复位,从系统ISP监控程序区开始执行程序,如果检测到合法ISP下载命令流,则开始下载程序...

基于 单片机 的太阳能热水器水位温度显示仪的课程设计

一般冬天在40-60度,热天最高温度可以达到100度,主要看天气的照射情况。一般的在30-50吧,贵的当然也有,100块左右的应该比较好了###温度75度为上限,电热水器的温...

单片机 中EA的作用-ZOL问答

单片机EA引脚表示存取外部程序代码之意,低电平动作,当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。EA引脚必须接低电平,因为其内...

单片机 复位电路 复位时间的计算方法-ZOL问答

现在假设你的单片机的输出电阻为RO,电源为VDD,复位电路的电阻和电容分别为R和C。时间常数为(RO+R)C公式如下,Vrst为电容上的电压有用(0)回复pcy56电阻的作...

单片机 烧录-ZOL问答

一般而言,单片机没有程序,那么无法测试出其控制电路是否达到期望效果,当然,电路的“问题”还是可以部分测出的。有用(0)回复展开查看全部5条讨论精品应用推...

STC12 单片机 烧写提示程序空间已满-ZOL问答

意思就是程序空间超了,比如你单片机ROM程序存储空间是8K,你HEX烧写文件超过8K,下载器会把HEX8K数据下载到单片机其余的数据丢掉了,这样程序下载到单片机肯定不...

猜你喜欢