历史上的今天
今天是:2025年01月12日(星期日)
2020年01月12日 | PIC单片机对电风扇送出仿自然风的设计
2020-01-12 来源:elecfans
一、硬件电路及原理
要使电风扇送出仿自然风,就需要改变电风扇送风的强弱,即需要改变风扇电机的电压和电流,从而改变其转速。如图1所示,风扇插座与晶闸管TREAC相串联,改变晶闸管控制角α,即控制晶闸管导通的时间,就能使风扇电机的电压、电流发生变化。图2展示了α角和电机负载电压的关系。
Α角的变化又可通过电容C1的充放电时间的改变来实现。PIC16F84单片机按一定规律选择电阻Rx,即可改变电容C1的充放电时间,从而改变2N2646的导通时间。改变了TREAC的导通角,达到改变电风扇送风强弱的目的。控制角α和强弱风的关系如图3所示
市电频率f=50Hz,则可得下式 α/360°=t/0.02……………(1)
根据图1所示RxC1充电回路,可推知
α=t·360°/0.02 ={RxC1ln1[1/(1-n)]}·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 32
DECFSZF9
GOTO LOOP
RETLW 0
END ;程序结束


史海拾趣
|
随着视频监控技术的高速发展,用户对于视频监控产品的要求也在不断提高,功能要求更加完善、稳定,性能要求更加清晰、准确。如何能够迅速准确的找到目标……?所有这些问题都需要高清视频监控产品来解决。高清化,从我做起——彩色,液晶,大屏拼接 ...… 查看全部问答> |
|
零起点学习STM32F107开发第3讲( 视频:STM32时钟的配置) 附件里有教程用的PPT。$(\'swf_w5k\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/s ...… 查看全部问答> |
|
请教如何用tornado编写类似windows下的dll文件 请教如何用tornado编写类似windows下的dll文件,然后在vxworks下被主程序调用。 具体如下:我想用tornado写一个算法,然后封装成类似windows下的dll,然后供vxworks平台下的主程序调用,请教如何实现,请大家提供一点思路,谢谢!… 查看全部问答> |
|
VB中,sItem = Split(s, \",\") CString s; CString sItem[13]; byte pItem; byte p1, p2; s += \",\"; p1 = 0; pItem = 0; for (p2 = 0; p2 < s.GetLength(); p2++) { if (s.GetAt(p2) == \',\') &nb ...… 查看全部问答> |
|
求助,各位大虾进来看一看,用TI自带的例程读写DDR2不正常了 因为没加限制,擦除烧写地址超出了flash的最大容量导致板子不能工作(烧写是成功的,但是断电上电之后板子就不能工作了),后来直接用仿真器连接,程序不能下载到DDR2里面了,用TI自带的例程读写了下DDR2,发现写入时的数据和地址都乱掉了,求问各 ...… 查看全部问答> |




