程序的实现思路:单片机与手机app之间通过蓝牙实现通讯,通过点击屏幕上的对应色块然后app会把对应的RGB值发送到单片机。然后单片机会对数据进行解析然后把数字量转换为模拟量,然后通过PWM控制IO口输出不同的电压以此来达到控制RGB灯
RGB彩灯原理
之所以叫RGB,是因为这个LED是由红(Red)、绿(Green)和蓝(Blue)三色组成,可以通过调整三个LED中每个灯的亮度就能产生不同的颜色。
RGB灯有4个引脚,R、G、B三个引脚连接到LED灯的一端,还有一个引脚是共用的正极(vcc)或者共用的阴极(gnd)。假设这里选用的是共阴RGB。R、G、B其实就是三个LED的正极,把它们的负极拉到一个公共引脚上了,它们公共引脚是负极,所以称之为共阴RGB。
RGB灯如何使用呢?如何实现变色呢?
RGB只是简单的把三个颜色的LED灯封装在一个LED中。只要当做三个灯使用就可以了。我们都知道红色、绿色、蓝色是三原色,单片机通过PWM口对三种颜色明暗的调节,analogWrite(value)语句,就能让LED调出任何你想要的颜色。使用PWM可以产生0~255之间的全部颜色,共16777216种颜色(256×256×256),市面上那些说自己有1000万种颜色的灯就是这个原理。
主控芯片引脚作用
驱动板原理图
由原理图可以得知
R的引脚采用LED0/PB5,也就是定时器3的PWM输出;
G的引脚采用PB3,也就是定时器2的PWM输出;
B的引脚采用PA3,定时器5的PWM输出;
RF接蓝牙天线,OSCO与OSC接蓝牙模块的输入输出引脚
任务实现流程
外设:
蓝牙模块,定时器,RGB彩灯
程序:
所必须包含头文件
对应蓝牙模块IO口引脚初始化;
蓝牙通讯协议的实现;
数据的处理
对应定时器输出PWM引脚的初始化;
时刻根据处理好的数据输出占空比频率不一样的pwm波
彩灯根据输入的PWM波,发出亮度不一样或者闪烁频率不一样的光
逐步调试思路
1.实现可以通过烧录程序来控制LED灯的亮灭和颜色变化
2.实现可以通过蓝牙APP控制LED灯的亮灭
3.实现可以通过蓝牙APP控制LED灯的颜色
4.整合优化代码和功能
现在打算自己重新建一个工程模板,然后导入必要的库文件然后参考源代码编写对应的功能。