Proteus仿真小实验:
STM32 Proteus仿真LED音乐喷泉PWM电机速度流水灯-0007
功能:
硬件组成:STM32F103R6单片机 +8个LED灯+直流电机+L298N电机驱动+电位器模拟音量大小
1.使用电位器模拟音量大小。
2.单片机内部ADC采集电位器电压,电压越大说明音量越大。
3.音量大小决定了电机的速度以及LED亮灯速度。越大电机速度越快亮灯越多。
4.使用PWM调节电机速度。
有功能视频哦:
可以哔哩哔哩B站,搜索UP主“单片机仿真汇”。在其空间中搜索关键词“LED音乐喷泉”即可找到对应详细功能视频和介绍。
电路图:
部分源代码:
ADC_InitTypeDef ADC_InitStructure;//ADC结构体变量//注意在一个语句快内变量的声明要放在可执行语句的前面,否则出错,因此要放在ADC1_GPIO_Config();前面
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1和ADC2工作在独立模式
ADC_InitStructure.ADC_ScanConvMode = DISABLE; //使能扫描
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//ADC转换工作在连续模式
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//由软件控制转换,不使用外部触发
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//转换数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 1;//转换通道为1
ADC_Init(ADC1, &ADC_InitStructure); //初始化ADC
if(ch == ADC_Channel_0)
{
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_28Cycles5);
}
if(ch == ADC_Channel_1)
{
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_28Cycles5);
}
ADC_Cmd(ADC1, ENABLE);//使能ADC1
ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);