相关知识科普:
moc3041是7500Vac光电耦合器类型:三端双向可控驱动器。是早期仙童半导体公司出品的一款光电耦合器,其内部包括一只砷化镓红外发光二极管和单片硅探测器,构成双向可控硅过零触发驱动程序,用于逻辑控制电路系统,如固态继电器,工业控制,电机,电磁铁和消费类电子产品等。应用电路过零点之后电压上升,当电压升到15V时可控硅触发,触发后300欧的电阻被短路而没有电流,电流只从阳极阴极间流过。所以300欧的电阻不会承受220V的电压。计算电阻功率时就不必按220V电压计算。
这个我经常用,电机调速控制,严格说这不是PWM,是可控硅移相触发。\x0d\x0a电路很简单,一个可控硅触发电路,一个过零检测电路,配合一段中断服务程序就能完成。\x0d\x0a\x0d\x0a不知道你应用的一些详情,简单说一下思路。\x0d\x0a可控硅触发一般使用MOC3021,相关手册上有典型电路,CPU端接一个GPIO就可以。\x0d\x0a闭环控制时过零检测不需要很精确,一般用一个双向光耦就足够,光耦输入接交流电输入,输出接CPU中断,用史密特整形一下输出信号最好。\x0d\x0a中断程序的结构分成两部分,过零中断与延时中断。\x0d\x0a过零中断做两件事,输出复位,开始延时。如果定时器有外部管脚复位启动功能,可以不要这段。\x0d\x0a延时中断做一件事,触发输出。如果定时器有触发输出功能,可以没有这段中断程序。\x0d\x0a具体的延时时间,由主程序控制,一般是根据PID的计算结果进行设置。注意,延时时间越长,输出电压越小。我只会汇编,不会C。很简单的。
过零检测,自然是有下降沿、上升沿了。必须使用P3.2(或P3.3) 外部中断INT0脚。设置INT0下降沿中断,中断响应后启动定时器T0(或T1)计时,定时器溢出中断时,对应脚输出高电平(根据你的电路决定是高电平还是低电平),触发可控硅导通。
定时器的初始值可以用软件随时改变。初始值越小,灯越亮,越大,灯越暗。但初始值不能大于10ms。否则进入另一个半波了,输出不正常了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)