5(100%开源)蓝牙心率防水运动手环_电池电量检测.docx
《5(100%开源)蓝牙心率防水运动手环_电池电量检测.docx》由会员分享,可在线阅读,更多相关《5(100%开源)蓝牙心率防水运动手环_电池电量检测.docx(8页珍藏版)》请在第一文库网上搜索。
1、蓝牙心率防水运动手环电池电量检测疯壳-智能穿戴开发系列配套资料:https:/www.fengke.club/GeekMart/su_fkZyGYgrp.jsp配套视频:https:/www.fengke.club/GeekMart/su_fTSgUL3y3.jsp电量检测1 ADC简介ADC (Analog-to-Digital Converter),模/数转换器或者模数转换器,是指将连续变化的模拟信号转换为离散的数字信号的器件。我们DA14580集成一个高速超低功耗的10位通用模数转换器。可以工作于单端模式也可以工作于差分模式。ADC模块有一个1.2V的电压校准器,作为满量程的参考电压。该
2、ADC模块是10位动态模数转换,转换时间为65ns;最大的采样率为3.3MHz;超低功耗(在lOOKHz的采样速率下典型供电电流为5uA);有单端与差分两个输入比例;有4个单端或者2个差分输入通道;电池检测功能;斩波器功能;偏移和零刻度调整;公共端模式输入电平调整。由于电池电压与其放电时长成负相关关系,我们就可以通过DA14580的ADC测量电池电压,直接判断我们所使用的电池剩余电量大小。2 硬件设计本次DA14580采用P01脚直接测量电源电压。Il*13bJ2NETkW-12C0N2图13 软件设计软件开始,第一步要进行的是系统初始化。SetWordl6(CLK_AMBA_REG, 0x0
3、0);/ 设置 16MHz 时钟SetWordl6(SET_FREEZE_REG,FRZ_WDOG);/ 关闭看门狗SetBitsl6(SYS_CTRL_REG,PAD_LATCH_EN,l);使能管脚SetBitsl6(SYS_CTRL_REG,DEBUGGER_ENABLE,l);打开 debuggerSetBitsl6(PMU_CTRL_REG, PERIPH_SLEEP,0);/ 打开外围电源由于我们要使用串口打印,就要配置我们要使用的串口。首先,要点调用GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_TX_PIN, OUTPUT, PID_UART2
4、_TX,false) GPIO_ConfigurePin(UART2_GPIO_PORT/ UART2_RX_PIN/ INPUT,PID_UART2_RX,false)配置我们使用的串口管脚,然后使用 SetBitsl6(CLK_PER_REG, UART2_ENABLE,1)来使能我们要使用的串口 2 ,最后调用uart2_init(UART2_BAUDRATEzUART2_DATALENGTH)初始化串口。完成以上的3个流程,就可以通过串口打印信息了。关于ADC采集电压,主要是调用下边的函数uint32_t adc_get_vbat_sample(bool sample_vbatlv)(
5、uint32_t adc_sample, adc_sample2;adc_init(GP_ADC_SE, GP_ADC_SIGN, GP_ADC_ATTN3X);adc_usDelay(20);if (sample_vbatlv)adc_enable_channel(ADC_CHANNEL_VBATlV);elseadc_enable_channel(ADC_CHANNEL_VBAT3V);adc_sample = adc_get_sample();adc_usDelay(l);adc_init(GP_ADC_SEz 0, GP_ADC_ATTN3X);if (sample_vbatlv)ad
6、c_enable_channel(ADC_CHANNEL_VBATlV);elseadc_enable_channel(ADC_CHANNEL_VBAT3V);adc_sample2 = adc_get_sample();/We have to divide the following result by 2 if/the 10 bit accuracy is enoughadc_sample = (adc_sample2 + adc_sample);adc_disable();return adc_sample;在这个函数中, 首先是采用 adc_init(uintl6_t mode, ui
7、ntl6_t sign, uintl6_tattn),对ADC进行初始化。第一个参数mode是ADC模式选择,0表示差分模式,GP_ADC_SE(0x800)表示单端模式,我们采用的是GP_ADC_SE,单端模式。第二个参数sign,。表示默认模式,这里用GP_ADC_SIGN(0x0400),选择通过相反的ADC符号获取两个采样值来取消内部的偏置电压。最后的参数attn设置输入最大电压值,0对应1.2v,这里选GP_ADC_ATN3X(0x0002)对应3.6vo完成ADC初始化后,就要使能相关的ADC通道。adc_enable_channel(uintl6_tinput_selection
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 100 开源 蓝牙 心率 防水 运动 电池电量 检测