微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > DIY创意家庭:实现LED台灯的智能化,提供软硬件解决方案的设计细节

DIY创意家庭:实现LED台灯的智能化,提供软硬件解决方案的设计细节

时间:05-29 来源:互联网 点击:

PSoC3内部PWM实现电路图如下:

图七、PSoC3内部PWM电路实现

4.4、按键防抖实现

由于按键本身的机械特性使得,按键使用过程中均存在不同周期的抖动,主要是按键按下和按键释放时,为此,在使用按键输入时,都必须对其进行防抖处理,传统的按键防抖包括软件延迟和硬件中断+定时器两种方式,或多或少都会占有一些系统资源。

这里,本设计充分利用PSoC3内部的数字逻辑器件,利用D触发器和与门,实现并行内部硬件电路防抖,取得了非常好的防抖效果,保证了用户设置的可靠输入。

具体的PSoC3内部按键硬件防抖电路如下,串联的3个D触发器均有同一个200Hz的时钟触发,每个按键的输入与三个D触发器的输出一起相与后输出,可以去除4*5ms=20ms的按键抖动,相应的按键输入信号和硬件防抖后的信号对比如图所示:

图八、PSoC3内部按键硬件防抖电路实现

图九、按键防抖效果(逻辑分析仪截图)

五、系统软硬件设计

5.1、硬件设计

CYPRESS独特的PSoC器件编程特性以及PSoC Creator 1.0软件所提供的丰富外设模拟数字资源,使得整个智能LED台灯的设计和编程变得十分灵活和简单。

整个智能LED台灯硬件设计电路图如下:

图十、整个智能LED台灯硬件设计电路图

特别是其关键的随意分配,极大提高了硬件电路的设计灵活性和效率。硬件管脚分配如下:

图十一、硬件管脚分配表

5.2、软件设计

1)PWM波形输出 :流程

环境光线采集修正PWM控制LED亮度流程图如下:详细的软件代码参见附录6.3 的modules.c——函数SmartAdjust().

2)超声波 中断测距 :

超声波测距离控制LED台灯开启/关断 流程图:

详细的软件代码参见附录6.3 的modules.c——函数DistanceMeasure().以及CY_ISR(isr_ECHO_Interrupt)

3)光强AD转换

详细的软件代码参见附录6.3 的modules.c——函数ADC_LightingSample ().

4|)按键中断流程

详细的软件代码参见附录6.3 的三个按键中断函数以及超声波测距中断函数

——CY_ISR(isr_INC_Interrupt)和CY_ISR(isr_DEC_Interrupt)

智能台灯使用距离/光强用户自定义+/-按键中断处理流程:

5)整体流程(main主循环和个按键中断处理流程图)

详细的软件代码参见附录6.3 的main.c和三个按键中断函数以及超声波测距中断函数——CY_ISR(isr_ADJ_Interrupt)

整个智能LED台灯设计工程软件编译结果(报告)如下:

segment .xdata is 514 bytes long

segment .bss is 35 bytes long

segment .pdata is 0 bytes long

segment .text is 14558 bytes long

segment .bit is 9 bytes long

segment .sfr is 0 bytes long

Flash used: 14557 of 65536 bytes (22.2 %).

SRAM used: 514 of 8192 bytes (6.3 %).

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top