本帖最后由 jjy3840 于 2024-12-18 17:43 编辑
EKT043E屏幕可输入(0--255)色盘颜色,选择主机或从机控制模式,左右摇杆可模拟(0---255)RGB色盘。使用ADC采样和DMA转运滤波对RGB灯进行高灵敏度的控制,能够快速响应左右摇杆的操作,氛围灯的使用ADC后更具有平滑度,能够丝滑的进行操作,同时数据实时传输到显示屏上面。 太裤啦!
整体设计(主机EKT043E,从机STM32F103RC)
1.使用左右摇杆连接STM32采集ADC的值。 2.使用DMA转运ADC的值到临时数组。 3.对ADC的值进行采样滤波(XY分别四次,取平均值)。 4.把12位的ADC(0---4096)值等比缩小16倍(相当于RGB 0---255)。 5.数据位数裁剪为8位,方便后续运输(同时是RGB值,赋给定时器TIM3比较寄存器)。 6.初始化定时器TIM3的自动重装载值为255,初始化通道3,4,5用于PWM输出。 7. TIM_SetCompareX(RGB)把裁剪的RGB值赋给比较寄存器,输出PWM占空比可调整的波形,RGB的值为(0--255)范围都可以覆盖。 8.使用IIC协议连接OLED屏幕显示ADC的值和RGB的值,方便观察 9.EKT043E的uart2和STM32的uart1进行互相通信,这里使用到了stm32定时器TIM6,可定义在多少毫秒ms产生(从机)的串口中断,运输RGB色彩信息和控制信息,数据显示在EKT043E屏幕中。 10.可在EKT043E屏幕中选择(控制)(取消)按键,来确定(主机EKT043E)还是从机(stm32)获得RGB彩色灯的控制权。 11.在EKT043E屏幕中输入RGB颜色或使用摇杆,就可以丝滑的控制LED灯的不同色彩。
|