1. pwm占空比控制220v白炽灯
看你问题应该是出在你电路里没有加过零检测的原因。占空比控制交流负载是需要过零检测的,控制原理是改变过零点之后的导通时间,在半个周期内导通时间越长输出功率越大,反之越小。楼主的问题是由于你单片机产生的PWM和交流的50HZ周期波不同步造成的。。。希望对你有帮助
2. 用51单片机PWM控制固态继电器调节白炽灯的亮度,怎么灯一闪一闪的继电器上写的具有随机和过零两种接通
这种情况您可以尝试:
1、是因为PWM频率过低,周期应当在50ms以下,人眼才能形成视觉残留,但是频繁的启动白炽灯,灯的寿命会急剧缩短;
2、你可以在灯前增加一个电感,电感在PWM占空时,将会释放所储存的电能,以持续对用电器供电;
3、不使用PWM,通过灯前串联多个并联的电阻(电容),改变流经的电流强弱。
这三种是我的一点建议,但是白炽灯启动时会有一个较大电流,而且也不适用于频繁启动,否则,使用寿命将会非常短暂,祝你好运!
3. 基于MCU控制的无极交流调光控制器设计
1 调光控制器设计
在日常生活中,我们常常需要对灯光的亮度进行调节。本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。所以需要在交流电的每个半波期间都要送出触发信号,触发信号的送出时间就决定了灯泡的亮度。
调光的实现方式就是在过零点后一段时间才触发双向可控硅开关导通,这段时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。
这就要求要提取出交流电压的过零点,并以此为基础,确定触发信号的送出时间,达到调光的目的。
1.1 硬件部分
本调光控制器的框图如下:
控制部分:为了便于灵活设计,选择可多次写入的可编程器件,这里选用的是ATMEL的AT89C51单片机。
驱动部分:由于要驱动的是交流,所以可以用继电器或光耦+可控硅(晶闸管SCR)来驱动。继电器由于是机械动作,响应速度慢,不能满足其需要。可控硅在电路中能够实现交流电的无触点控制,以小电流控制大电流,并且不象继电器那样控制时有火花产生,而且动作快、寿命长、可靠性高。所以这里选用的是可控硅。
负载部分:本电路只能控制白炽灯(纯阻负载)的亮度。
1.2 软件部分
要控制的对象是50Hz的正弦交流电,通过光耦取出其过零点的信号(同步信号),将这个信号送至单片机的外中断,单片机每接收到这个同步信号后启动一个延时程序,延时的具体时间由按键来改变。当延时结束时,单片机产生触发信号,通过它让可控硅导通,电流经过可控硅流过白炽灯,使灯发光。延时越长,亮的时间就越短,灯的亮度越暗(并不会有闪烁的感觉,因为重复的频率为100Hz,且人的视觉有暂留效应)。由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。
理论上讲,延时时间应该可以是0~10ms内的任意值。在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。
可控硅的触发脉冲宽度要根据具体的光耦结合示波器观察而定,在本设计中取20 μs。程序中使用T1来控制这个时间。
对两个调光按键的处理有两种方式:一种是每次按键,无论时间的长短,都只调整一个台阶(亮或暗);另一种是随按键时间的不同,调整方法不同:短按只调整一个台阶,长按可以连续调整。如前面所述,由于本设计中的台阶数为95(N=95),如果使用前一种方式,操作太麻烦,所以用后者较为合理。
2 各单元电路及说明
2.1 交流电压过零点信号提取
交流电压过零点信号提取电路如图2所示,图中的同步信号就是我们需要的交流电压过零点信号。各部分波形如图3所示。
图中整流后波形中的水平虚线表示光藕P52l输入二极管的门限电压。P521是TLP521的简称,下图是其引脚图。引脚图中器件名的后缀“-1”表示包含一组光藕。
2. 2 主控单元
主控单元以AT89C51单片机为核心,交流电压过零点信号提取电路中产生的同步信号SYN接到AT89C5l的INT0,此信号的下降沿将使AT89-C51产生中断,以此为延时时间的起点。
三个按键只用于控制一路灯:一个为开关,另外两个分别为提高亮度和降低亮度。
74HC573用于输出控制可控硅的导通的触发信号。
220V交流主电源导通区间、同步信号和触发信号的时序关系如图6所示。
图中的阴影部分表示可控硅的导通区间,它的大小决定了灯的亮度。改变延时时间可改变触发信号和同步信号的相位关系,也改变了可控硅的导通区间的大小,达到调光的目的。
2.3 驱动单元
图中,L1_D是单片机输出的触发信号,该信号通过光控可控硅MOC3022去驱动可控硅T435。受控的白炽灯接在Ll和零线(图中未画出)之间。
MOC3022是DIP-6封装的光控可控硅。其1、2脚分别为二极管的正、负极:4、6脚为输出回路的两端;3、5脚不用连接。如图8所示。
T435-400是可控硅,“4”表示主回路电流是4A;“35”表示触发端的最大电流是35mA,一般该端有最大电流的5%就可保证可靠地触发。T435-400外型图如图9所示。
3 程序流程图
4 结束语
本控制器使用了三个开关控制一路灯,主要是为了在教学过程中降低难度。也可改为一个开关控制一路灯,比如短按为开、关,第一次长按为降低亮度,连续的第二次长按为提高亮度等。电路不用改动,只需修改程序即可。
学生通过制作该调光控制器,可以掌握单片机、光藕和可控硅等方面的知识和使用技能,特别是后两者,学生较少接触。由于该调光控制器调光的效果比较好,对提高学生的学习兴趣有很大帮助,教学效果良好。
4. 用51 单片机可以实现普通白炽灯的软启动及亮度调节吗需要用些什么请高手赐教!
楼上的瞎说啥呢!?不懂的话,就别胡说!
很简单的东西!
五年前,我就做过。
单片机的一个外部中断测交流电的过零点,外部中断响应后,启动定时器,预置初始值,定时器中断后某个I/O口发脉冲串,此脉冲串去触发双向可控硅即可。
软件改变定时器的初始值,使脉冲串在过零点之后0-10ms内变化,即可实现普通白炽灯的软启动及亮度调节。
5. 你好,我想用单片机输出PWM信号控制IGBT的开关,进而控制白炽灯的亮度,进行调节。不知道是否可行如何做
可以的,脉冲调制,相当于调节了输出的平均电流。。可以控制亮度的。。。
看看这个程序吧,控制IGBT的导通时间来调节吧。。具体我也没用过呢。
1、学习目的:利用定时器产生PWM,了解原理和使用方法
2、硬件要求:LED灯 定时器
3、试验现象:LED灯由亮到灭,由灭到亮逐步变化,也就是调光现象
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit LED = P1^2; //定义LED灯,通过LED显示调光效果
unsigned char CYCLE; //定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1ms
unsigned char PWM_ON ;//定义高电平时间
/******************************************************************/
/* 延时函数 */
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
/******************************************************************/
/* 主函数 */
/******************************************************************/
main()
{
bit Flag;
TMOD |=0x01; //定时器设置 0.1ms in 12M crystal
TH0=(65536-100)/256;
TL0=(65536-100)%256; //定时0.1mS
IE= 0x82; //打开中断
TR0=1;
CYCLE = 10; // 时间可以调整 这个是10调整 8位PWM就是256步
while(!Flag)
{
delay(20000); //延时时间,从一个亮度到下一个亮度的间隔时间,速度快就能看到连续效果
PWM_ON++; //这个使用较长延时,以便能看清楚变化过程
if(PWM_ON == CYCLE)
{ //这个里可以添加其他程序 如到最亮时候控制设备
Flag=1;
}
}
while(Flag) //亮度递减 同上,是个相反的过程
{
delay(20000);
PWM_ON--;
if(PWM_ON == 0)
{
Flag=0;
}
}
}
/******************************************************************/
/* 定时器中断函数 */
/******************************************************************/
void tim(void) interrupt 1 using 1
{
static unsigned char count;
TH0=(65536-100)/256;
TL0=(65536-100)%256; //定时0.1mS
if (count==PWM_ON)
{
LED = 1; //灯灭
}
count++;
if(count == CYCLE)
{
count=0;
if(PWM_ON!=0) //如果左右时间是0 保持原来状态
LED = 0; //灯亮
}
}
6. 晶闸管的连接
这只是一个晶闸管,里面没有什么外围电路什么的,就是几个晶闸管连起来,在外面包了个装而已,如果你想设计一个硬件电路,用单片机控制晶闸管来控制白炽灯灯光的亮度的话,你应该是需要一个调压模块,所以我建议你最好买一个调压模块,有整个调压模块的,里面晶闸管和外围电路什么的都包含,我想那样应该简单一点儿,这个晶闸管的说明好像现在还没有啊。。。。。。。还是建议买一个调压模块,祝成功。。。。
7. 我想用51单片机控制家里的电灯电路
电路如图
8. 单片机控制双向可控硅无级调光的过零电路怎么弄啊
1. 不需要PWM调整占空比输出,只需要固定为50%占空比脉冲信号输出,也可以用定时器控制产生,频率500Hz~1KHz,
2. 过零检测信号可以用半波整流获得
3. 用ATmega16控制市电220V/50HZ的白炽灯过于奢侈,最多用ATmega8L即可。注意电源设计,一般不隔离,调试注意安全。可控硅驱动电流需要足够大,过大或者过小都会烧可控硅。
9. 关于单片机出来的PWM控制220V交流电中的白炽灯亮度
白炽灯直流交流无所谓,所以可以先把电源全波整流以后再用PWM控制场效应管