winnie 发表于 2009-5-6 09:36:13

用PIC16F84单片机实现的自然风发生器

普通电风扇的送风强度是不变的,不如阵阵吹拂的自然风那样舒适宜人。这里,我们用PIC16F84单片机制作一个自然风发生器,当其和电风扇串接时,即可使电风扇送出时强时弱的仿自然风。
    一、硬件电路及原理
    要使电风扇送出仿自然风,就需要改变电风扇送风的强弱,即需要改变风扇电机的电压和电流,从而改变其转速。如图1所示,风扇插座与晶闸管TREAC相串联,改变晶闸管控制角α,即控制晶闸管导通的时间,就能使风扇电机的电压、电流发生变化。图2展示了α角和电机负载电压的关系。
    Α角的变化又可通过电容C1的充放电时间的改变来实现。PIC16F84单片机按一定规律选择电阻Rx,即可改变电容C1的充放电时间,从而改变2N2646的导通时间。改变了TREAC的导通角,达到改变电风扇送风强弱的目的。控制角α和强弱风的关系如图3所示。
    市电频率f=50Hz,则可得下式 α/360°=t/0.02……………(1)
  根据图1所示RxC1充电回路,可推知
  α=t·360°/0.02 ={RxC1ln1}·360°/0.02 ……………(2) 
  其中,η=VP/VBB,Vp为C1充电后的电压值,VBB为充电电源电压,一般取η=0.63。若电容C为0.047μF,根据(2)式的值,求得对应于不同的α设定值的Rx值表:
R0=1kΩ,R1=33kΩ,R2=62kΩ,R3=89kΩ,R4=120kΩ,R5=150kΩ,R6=180kΩ,R7=220kΩ。
    Rx接于PIC16F84单片机的RB0~RB7口;RA0口为启动信号输入口,当A键按下时,自然风发生器开始工作;RA1口为停止信号输入口,当B键按下时,自然风发生器停止运行;RA3口为交流电相位检测口。用于确定交流电的起始相位。
    程序清单:
        LSIT P=PIC16F84
       #INCLUDE P16F84INC
       FC    EQU0CH
      FD    EQU0DH
      ORG   0
MAIN:CLRW
      TRISRB
      MOVWFRB;置RB口为输出口,
                 ;且置其初值为0
      MOVLW0FH
      TRIS   RA  ;置A口为输入口
KEYA:BTFSCRA,0   ;A键是否按下
      GOTO   KEYA    ;A键未按下转
                         KEYA,等待
START:MOVLW80H ;A键按下,
                   ;80H→F8
         MOVWFF8
         BTFSSRA,1 ;B键按下否
      GOTO   MAIN ;B键按下
PHASE:BTFSCRA3
         GOTO   PHASE   ;等待交流电
                          零相位
       MOVF8,W
         MOVWFRB        ;F8→RB口
         CALL   DELAY;延时10秒
       CLRC          ;清C
       RRF   F8        ;F8右移
       BTFSS3,0
      GOTO   PHASE
         GOTO   START
DELAY:MOVLW150
       MOVWFF9
       MOVLW7  ;给RTCC预
                      设倍数1∶256
         OPTION
LOOP:MOVLW255
      SUBWFRTCC
      BTFSS    32
      DECFSZF9
      GOTO   LOOP
      RETLW   0
      END      ;程序结束






页: [1]
查看完整版本: 用PIC16F84单片机实现的自然风发生器