5、调光控制电路设计

采用单片机I/O口灌电流的方法控制晶闸管实现开关和调光控制。用内部带有过零检测电路的光电耦合器MOC3041作为晶闸管的驱动器,同时能实现强、弱电的隔离。

传统的调光方法都采用移相触发晶闸管,控制晶闸管的导通角来控制输出功率,不仅同步检测电路复杂,而且在晶闸管导通瞬间会产生高次谐波干扰,造成电网电压波形畸变,影响其他用电设备和通讯系统的正常工作,本系统中采用过零触发晶闸管导通与关断的时间比值来调节灯具的功率,由于过零触发不改变电压的波形而只改变电压全波通过的次数,不会对电网造成污染,因此,本系统采用过零触发方式。

MOC3041内部含有过零检测电路,当输入引脚1输入15mA的电流,输出端6引脚、4引脚之间的电压稍过零时,内部双向晶闸管导通,触发外部晶闸管导通,当MOC3041输入引脚输入电流为0时,内部双向晶闸管关断,从而外部晶闸管也关断,其调光控制电路如图3所示。

6、无线模块软件设计

无线模块通过UART串口与系统相连,所以必须对UART进行初始化,LPC2104的UART串口符合RS232标准,也支持550工业标准。

LPC2104有两个通用的异步串行接口(UART),启动时UART默认状态是无法使用的,必须通过编程GPIO寄存器来使能它们。

本系统使用UART1与nRF401进行连接,UART1带有调制解调器接口,16字节接收和发送FIFO。内置波特率发生器以及包含标准的调制解调器接口信号。

在使用UART1时,先要设置TXD1、RXD1引脚连接方式,然后设置串口的波特率及工作模式,即可进行数据的发送和接收,本系统使用11.0592MHz晶体振荡器,不适用PLL,VPB为4分频,设置UART1波特率为9600bit/s,则除数值N=18,即12H,UART1的初始化程序如下:

在操作系统环境下,系统启动时会自动初始化串行口,所以应用程序调用串行口资源将变得更容易,值得注意的是,应用程序往往是多任意系统,为了实时监测串行口消息,在操作环境中一般单开一个串行口扫描任务,保证信息不丢失,在一个已有的工程文件的主函数中添加串行口的寄存器初始化代码,并添加串口扫描任务,由于对无线模块的控制还有系统的GPIO,所以扫描程序中还要包括对I/O的操作,当系统收到串口信息时,将会主动向主任务发送一个串行口信息,主任务接收到该信息将会调用响应函数,响应该消息。