查看: 411|回复: 0

【开源教程5】开源蓝牙心率防水运动手环-电池电量检测

[复制链接]
  • TA的每日心情
    开心
    2022-4-17 15:37
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2022-8-12 11:22:20 | 显示全部楼层 |阅读模式
    分享到:
    蓝牙心率防水运动手环
    ——疯壳·智能穿戴开发系列
    电池电量检测





    1  ADC 简介

      ADC(Analog-to-Digital Converter),模/数转换器或者模数转换器,是指将连续变化的模拟信号转换为离散的数字信号的器件。
      我们 DA14580 集成一个高速超低功耗的 10 位通用模数转换器。可以工作于单端模式也可以工作于差分模式。ADC 模块有一个 1.2V 的电压校准器,作为满量程的参考电压。
      该 ADC 模块是 10 位动态模数转换,转换时间为 65ns;最大的采样率为3.3MHz;超低功耗(在 100KHz 的采样速率下典型供电电流为 5uA);有单端与差分两个输入比例;有 4 个单端或者 2 个差分输入通道;电池检测功能;斩波器功能;偏移和零刻度调整;公共端模式输入电平调整。
      由于电池电压与其放电时长成负相关关系,我们就可以通过 DA14580 的 ADC测量电池电压,直接判断我们所使用的电池剩余电量大小。

    2  硬件设计

      本次 DA14580 采用 P01 脚直接测量电源电压。

    1.png
    图 1

    3  软件设计

      软件开始,第一步要进行的是系统初始化。

    2.png

      由于我们要使用串口打印,就要配置我们要使用的串口。首先,要点调用GPIO_ConfigurePin(UART2_GPIO_PORT,   UART2_TX_PIN,   OUTPUT,  PID_UART2_TX,false) GPIO_ConfigurePin(UART2_GPIO_PORT, UART2_RX_PIN, INPUT, PID_UART2_RX, false)配置我们使用的串口管脚,然后使用 SetBits16(CLK_PER_REG, UART2_ENABLE,1) 来使能我们要使用的串口 2 , 最后调用uart2_init(UART2_BAUDRATE,UART2_DATALENGTH)初始化串口。完成以上的 3 个流程,就可以通过串口打印信息了。
      关于 ADC 采集电压,主要是调用下边的函数

    3.png
    4.png


      在这个函数中, 首先是采用 adc_init(uint16_t mode, uint16_t sign, uint16_tattn),对 ADC 进行初始化。第一个参数 mode 是 ADC 模式选择,0 表示差分模式,GP_ADC_SE(0x800)表示单端模式,我们采用的是 GP_ADC_SE,单端模式。第二个参数 sign,0 表示默认模式,这里用P_ADC_SIGN(0x0400),选择通过相反的ADC 符号获取两个采样值来取消内部的偏置电压。最后的参数 attn 设置输入最大电压值,0 对应 1.2v,这里选 GP_ADC_ATTN3X(0x0002)对应 3.6v。
      完成 ADC 初始化后,就要使能相关的 ADC 通道。adc_enable_channel(uint16_t input_selection),本次使用的是通道 ADC_CHANNEL_VBAT3V。
      完成 ADC 的初始化和通道使能后,就可以调用 adc_get_sample(void)获取数字电压。

    5.png
      最后就是通过下面函数将数字电压转换为剩余电量百分比。

    6.png

      这是函数采用的分段的形式,这是由于我们的电池电压与电池剩余电量的关系是一条曲线,通过分段计算,可以提高精度。当然,大家也可以根据自己的实际情况改动上述函数。


    4   实验现象

      首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。

      (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。

      (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。

      (3)点击打开串口。

    7.png
    图 2
    配置完串口之后,打开我们提供的代码。

    (1)点击仿真按键。

    8.png
    图 3
    (2)点击运行代码。

    9.png        
    图 4


    完成之后,就能看到串口调试助手接收框信息如下。

    10.png
    图 5


    配套资料:https://www.fengke.club/GeekMart/su_fkZyGYgrp.jsp
    配套视频:https://www.fengke.club/GeekMart/su_fTSgUL3y3.jsp
    文件下载请点击: 3_(100%开源)蓝牙心率防水运动手环_电池电量检测.pdf (772.76 KB, 下载次数: 0)
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-20 11:20 , Processed in 0.126209 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.