这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【WBA55CG无线MCU开发大作战】3、过程贴:添加LED灯的控制与电池电压采

共1条 1/1 1 跳转至

【WBA55CG无线MCU开发大作战】3、过程贴:添加LED灯的控制与电池电压采集

高工
2025-01-12 21:04:03     打赏

        实现了蓝牙基本功能的调试后,我们回过头来分析一下其余其余功能的实现,其一就是PWM控制等的亮度,其二就是ADC采集电池电压,这两部分都是需要一定的硬件支持的。本次没有外购其他的配件,主要是手里正好有一个LED灯珠:

image.png

第一部分:PWM控制

        PWM控制灯珠一共设计两个部分,一个就是硬件的搭建,我们肯定不能把IO口最为LED灯珠的回路,智能通过mos管作为开        关,具体的控制电路如下:

image.png

        通过三极管控制mos,然后LED灯珠就连接在VBAT2上,实物搭建如下:

image.png

        接下来就是PWM的输出控制,软件部分,我们在STM32CubeMX中将PA1作为PWM控制信号:

image.png

        然后是配置PWM:

image.png

        PA1对应的是定时3的通道2,配置PWM的频率为1KHz,软件上通过以下两个函数进行开启和配置占空比:

HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,0);

第二部分:ADC采集

        adc采集的是电池的电压数据,电池的电压一般是比较高的,而ADC采集最高是3.3V,所以需要一个分压电路:

image.png

        这里使用了两个等大的电阻进行分压,采集后直接*2就能进行还原;

        ADC的采集使用的是PA2引脚:

image.png

        对应的是ADC4的通道7,注意本芯片只有这一个ADC采集模块,如果你使用的是例程,需要首先释放ADC采集的控制:

image.png

        然后进行ADC采集的配置:

image.png

        软件部分通过软件开启ADC转化:

if (HAL_ADC_Start(&hadc4) != HAL_OK)  
{  
    /* ADC conversion start error */  
    Error_Handler();  
}  
 /* Wait for ADC conversion completed */  
if (HAL_ADC_PollForConversion(&hadc4, 10) != HAL_OK)  
{  
    /* End Of Conversion flag not set on time */  
    Error_Handler();  
}  
uhADCxData = HAL_ADC_GetValue(&hadc4);
uhADCxData = uhADCxData*3300/4096*2;
uhADCxConvertedData[0] = uhADCxData;

        到这里我们就实现了LED灯珠的基本控制和电池电压的采集。




关键词: WBA55CG     电池     电压     采集    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]