效果视频演示
串口控制oled灯的开关/亮度
硬件模块
单片机一块
USB转ttl接口一只
手动焊接LED灯两个(分别用于开关和亮度,引脚用排针引出更方便接线)
理论支持
1.串口通信(最常用且最基础的通讯,这里不展开)
2,PWM脉宽调制
脉冲宽度调制脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟威廉希尔官方网站
进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶 体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟威廉希尔官方网站
进行控制的一种非常有效的技术。
程序思路
开启串口接收中断,变量保存接受到的数据,数据定义标志位,主函数switch函数走不同的结果
主函数代码
小贴士
本项目使用的串口测试,如需用蓝牙测试,只需要把rx,tx脚连到对应的蓝牙引脚即可
测试可使用商店的串口软件即可
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
TIM3_PWM_Init(899,0);
TIM_SetCompare2(TIM3,1000);
LED_Init();
while(1)
{
switch(flag)
{
case 0:
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
printf("offn");
break ;
case 1:
GPIO_SetBits(GPIOA,GPIO_Pin_8);
printf("onn");
break ;
case 2:
TIM_SetCompare2(TIM3,1000);
printf("亮度1n");
break ;
case 4:
TIM_SetCompare2(TIM3,800);
printf("亮度2n");
break;
case 5:
TIM_SetCompare2(TIM3,300);
printf("亮度3n");
break;
}
}
}
效果视频演示
串口控制oled灯的开关/亮度
硬件模块
单片机一块
USB转ttl接口一只
手动焊接LED灯两个(分别用于开关和亮度,引脚用排针引出更方便接线)
理论支持
1.串口通信(最常用且最基础的通讯,这里不展开)
2,PWM脉宽调制
脉冲宽度调制脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟威廉希尔官方网站
进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶 体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟威廉希尔官方网站
进行控制的一种非常有效的技术。
程序思路
开启串口接收中断,变量保存接受到的数据,数据定义标志位,主函数switch函数走不同的结果
主函数代码
小贴士
本项目使用的串口测试,如需用蓝牙测试,只需要把rx,tx脚连到对应的蓝牙引脚即可
测试可使用商店的串口软件即可
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
TIM3_PWM_Init(899,0);
TIM_SetCompare2(TIM3,1000);
LED_Init();
while(1)
{
switch(flag)
{
case 0:
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
printf("offn");
break ;
case 1:
GPIO_SetBits(GPIOA,GPIO_Pin_8);
printf("onn");
break ;
case 2:
TIM_SetCompare2(TIM3,1000);
printf("亮度1n");
break ;
case 4:
TIM_SetCompare2(TIM3,800);
printf("亮度2n");
break;
case 5:
TIM_SetCompare2(TIM3,300);
printf("亮度3n");
break;
}
}
}
举报