STM32检查光敏电阻的变化控制灯的亮暗(ADC采集,PWM输出)

内容主要是——1、对光敏电阻经行ADC的采集;2、采集的数据用作PWM控制小灯的明暗变化。
第一部分:
1.1对光敏电阻的使用基本了解:
光敏电阻内部就是一个PN结,光的强弱会引起其导通的变化,从而会引起电流的变化;电路设计方面,主要是利用电流的变化,然后在串联一个电阻,就可以转换成电压的变化,然后在利用ADC来采集电压的变化进行处理。同时光线与电压值成反比。
1.2ADC采集:
1,电路上选择某个ADC和使用相应的通道选择。
2、ADC的使用步骤:
第一步:开启相关ADC的时钟,设置分频因子。
第二步:ADC的工作模式设置(主要是:转换模式、触发方式、数据对齐等)

第三步:ADC规则序列通道设置(设置规则序列中的通道数、和通道的采样周期。)

第四步:开启AD转换器。
///以上是基本初始化设置。
第五步:读取ADC的值。
具体过程是:1,转换序列设置,(选择相应的规则序列,并添加要开启的通道。);2,通过ADCx_CR来启动规则转换通道。;3,通过ADCx_SR状态标志位,循环等待转换完成。;4,直接还回ADCx_DR数据寄存器即可。
/////////////////注意:
1、stm32f4的adc最高36M,一般分频因子设置为4,APB2时钟为84M,所以adc的时钟为21M。
//////////////////////////////////
第一部分:pwm控制输出
1.1pwm初始化
//初始化设置
/*
1,时钟使能:io使能和定时器使能
2,配置gpio位推挽复用输出,上拉,100M
3,引脚功能复用

4,填充arr和psc
TIMX->ARR=arr;
TIMX->PSC=psc;
5,TIMX_CCMR控制
pwm模式选择
预装值使能
6,使能
6.1 TIMX->CCER
设置有效电平方式
使能输出
6.2TIMX->CR1
自动重装载预装载使能
计数器使能
*/
//////////////////////////////////////////////////////////////////////
main中,就是主要将采集的光敏值,传给TIMx_CCR1就可以了;
并且可以在主函数做出路灯的效果,当光照强度大于一定值时,灯灭;当光线越暗则灯越亮。

你可能感兴趣的:(单片机,单片机,stm32)