咱们在榜首部分中经过实际使用事例介绍了电容式感应型UI使用中所选用的不同LED照明技能。下面咱们将了解一下完成脉冲宽度调制(PWM,面向LED操控使用的关键技能)的各种不同办法。
PWM有两大特点:
频率:用PWM信号快速开关LED,因为开关频率会发生LED闪耀,因而PWM频率应大于100 Hz,确保人眼不会感觉到闪耀。
占空比:PWM经过改动占空比、坚持负载电流稳定以操控LED的亮度。LED的均匀电流取决于占空比。均匀电流会随占空比的进步而升高,然后进步亮度。占空比在0%和100%之间的步长数量应满意使用中需求调理的不同亮度级数量要求。举例来说,假如使用在彻底封闭(0%)到彻底敞开(100%)之间需求20个亮度级,那么就应支撑5%的步长(除彻底封闭之外包括20个步长)。
用微操控器完成PWM有两种办法。咱们可用简略的定时器/计数器在固件中完成整个PWM逻辑,也能够挑选集成硬件PWM功用的高档操控器来完成。
根据固件的PWM完成计划
简略的固件完成计划需求定时器和中止服务子程序(ISR)。定时器在与占空比每个步长巨细的相同时刻内发明中止。举例来说,假如PWM周期为10ms(100Hz)而步长巨细为1ms(10%的占空比),那么定时器就要每1ms对CPU宣布中止,即:定时器周期 = 脉冲宽度/步长巨细。
图1给出了ISR中的逻辑。PULSE_WIDTH和ON_TIME代表PWM步长数量的脉冲宽度和敞开时刻。举例来说,PULSE_WIDTH = 5即满意5个亮度级的要求,而ON_TIME = 2则满意40%的占空比要求。ISR变量isrVar操控输出何时切换开/关。该逻辑可方便地进行扩展,然后支撑多个LED引脚,而每个LED都有不同的占空比。
图1:固件PWM ISR逻辑
根据硬件的PWM完成计划
高档操控器有驱动PWM的专用硬件块。举例来说,赛普拉斯的PSoC4有一个TCPWM硬件块,能完成根据硬件的PWM驱动。一般说来,咱们用带有比较功用的定时器来完成它,逻辑类似于上面评论的固件逻辑。定时器将选用比较寄存器和周期寄存器。周期寄存器载入的值等于脉冲宽度,而比较寄存器载入的值等于敞开时刻。只需比较值大于tick值,定时器输出就会走高,反之就会走低。此外,tick值到达最大(16位定时器为65535)时,会主动回滚为零。当输出布线到端口引脚,然后能用硬件块直接驱动LED。
表1总结了根据固件和根据硬件的PWM完成计划之间的不同。
表1:根据固件和根据硬件的PWM完成计划
咱们在本部分剖析了完成PWM的不同办法。在第三部分中,咱们将讨论规划具有%&&&&&%式感应和LED照明的体系时所遇到的常见应战,以及应对办法。