过零检测双向可控硅输出光电藕合器,通态电流100ma,触发电流15ma,峰值电压600V,浪涌电流1A Vtm3v,Itm100ma ,隔离电压7.5KV,工作温度-40~85℃ 双6脚用于驱动双向晶闸管,不但具有隔离功能.而且还可用于输出通道作为开关器件使用.用于高电压及较大电流的场合.MOC306 系列可用于115/240V交流电源下的带有可控硅驱动的逻辑接口电路,如固态继电器.工业控制电路.电机.螺线管等.说明见新编实用集成电路选型手册. 第624页
请问一下,单片机能直接控制双向可控硅的门控制端吗??
可以这样控制可控硅而控制交流电吗??
那个门控制端的控制电平的范围应该多大??
比如说BT131-600,那个控制端口怎么与单片机连接而达到控制啊??

如果仅仅是为了控制交流负载,建议使用固态继电器使用方便,电路简单,单片机可直接驱动。
不可以,需要加光隔如MOC3020.电路相对复杂。


用ATmega16的ADC0引脚采集电位器的0-5V电压信号,再用采集的信号去控制内部定时器1的PWM脉宽调制占空比。
我以下几点问题我想问一下:
1、PWM脉宽调制波要设置多少频率为合适(控制市电220V/50HZ的白炽灯)
2、据我所知好像还要进行可控硅过零检测,请问过零检测的具体电路怎么弄
3、还有没有其它需要注意和重视的地方,搞过这方面的朋友帮忙说一下啊

问题补充:

我以前看到过有一个小IC可以完成这个功能,好象是摩托罗拉公司生产的,具体型号不记的了(好像是什么MOS6031),不知可不可以,本身就带过零检测和光电隔离

1. 不需要PWM调整占空比输出,只需要固定为50%占空比脉冲信号输出,也可以用定时器控制产生,频率500Hz~1KHz,
2. 过零检测信号可以用半波整流获得
3. 用ATmega16控制市电220V/50HZ的白炽灯过于奢侈,最多用ATmega8L即可。注意电源设计,一般不隔离,调试注意安全。可控硅驱动电流需要足够大,过大或者过小都会烧可控硅。

原理很简单,用可控硅的调光台灯电路到处都有,把上边电位器那一部分换成单片机的一个输出端,使用单片机输出PWM信号,即可得到不同的控制电压,以控制可控硅的导通情况。
复杂一点的需要做闭环系统,也就是通过ADC输入后,形成一个闭环的电压监测,依据此值来控制输出,使输出电压与预设的电压一致。

得用光耦,要不 就是用三极管放大一下。

我用过一种叫光电可控硅(MOC3061),可以用IO直接控制,然后用次级的可控硅控制大电流可控硅,是一种可以可靠的电路,
通过单片机io口信号控制可控硅导通角
用来实现对交流电压的调压控制
如何来实现那?
单片机是个什么样的信号,怎么样控制可控硅的导通角那?
请高手给个提示!

原理很简单,用可控硅的调光台灯电路到处都有,把上边电位器那一部分换成单片机的一个输出端,使用单片机输出PWM信号,即可得到不同的控制电压,以控制可控硅的导通情况。
复杂一点的需要做闭环系统,也就是通过ADC输入后,形成一个闭环的电压监测,依据此值来控制输出,使输出电压与预设的电压一致。

自动调光台灯电路工作原理:

电路工作原理:

电路如图152所示。交流电压经桥堆整流后,一路经R1由稳压管VD钳位后得9V的脉动直流电压供控制电路使用;另一路加到电灯H和可控硅VS两端。改变VS的导通角即可改变电灯H的亮度;H中通过的是脉动直流电流。控制电路使用脉动直流电源可保证输出的触发脉冲与可控硅VS的阳极电压同步。
点击在新窗口中浏览此图片
图152

图152中光敏电阻RG用作探头。VT1(9012)、R2、R3等组成误差放大器,VT1实质上起到一个可变电阻的作用。VT2(BT33)、C1等组成张弛振荡器,作为VS的触发电路。当探头处的照度发生变化时,如改变探头和灯泡的距离使探头处照度降低,则RG 的阻值增大,VT1的基极电位降低,其集电极电流增加,从而使C2的充电时间缩短,使触发脉冲相位前移、VS导通角增大,灯的亮度增加;反之,当探头处照度增加时,会使灯的亮度减弱。可见若探头处的照度基本保持不变,就可实现自动调光的目的。同上分析,在探头位置不变的情况下,当电源电压发生波动时,也能使灯的亮度保持不变,起到稳光作用。C1、L组成噪音滤波电路,可抑制对其他电子设备的射频干扰。

元件选择与安装调试:

整流桥堆用1A/400V的;VS用1A/400V的单向可控硅;VT2用分压比η<0.7的单结晶体管,如BT33B,其基极间电阻Rbb应尽量大一些,以控制电路的总电流。光敏电阻RG电好选用亮阻在5~10KΩ之间的,如MG4354、MG4534等。

整个装置除RG外可装在台灯的底座内。RG用两根导线引出装在带透明窗内的塑料盒内作探头用。

调试工作应在自然光线较暗的情况下进行。调试时将探头放在离灯泡40~50cm处,调节R4,亮度应明显发生变化。在探头附近放一个照度计,可凭自己的直观确定。如果R4调到最大时灯泡仍然没有变暗,则说明RG的亮阻太大,应调换或增大R4的阻值。经上述调试后,在一定范围内改变探头与灯泡的距离,灯泡的亮度应发生变化,而探头处的照度基本保持不变。
我想用MSComm,或者用其他免费控件控制串口,要实现的功能如下:
只要利用串口输出的电压控制一个继电器的开和关就行了。因为我从来没做过这方面的,请给出完整的程序和继电器的型号,可行立即加分,不够可再加。
Reader_1 »
使用串口的RTS和DTR信号可以进行简单的控制。
下面的工程的窗体包含4个按钮,一个MSComm控件


[code]Private Const COMPORT = 1
Private Sub Command1_Click()
MSComm1.RTSEnable = True
End Sub

Private Sub Command2_Click()
MSComm1.RTSEnable = False
End Sub


Private Sub Command3_Click()
MSComm1.DTREnable = True
End Sub

Private Sub Command4_Click()
MSComm1.DTREnable = False
End Sub

Private Sub Form_Load()
'
Command1.Caption = "打开继电器 1"
Command2.Caption = "关闭继电器 1"
Command3.Caption = "打开继电器 2"
Command4.Caption = "关闭继电器 2"

On Error GoTo PortErr
MSComm1.CommPort = COMPORT
MSComm1.PortOpen = True
Exit Sub

PortErr:
MsgBox "无法打开通讯口" & COMPORT, vbCritical
End
End Sub

Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub[/code]

Reader_2 »
串口输出特性:
1: 输出电压 -3- -25 伏
0: 输出电压 3-25 伏
实际在PC上面,不接负载的话
1: 输出电压 -3- -12 伏,基本在-12伏左右
0: 输出电压 3 - 12 伏 基本在12伏左右

你至少要进行简单的隔离,然后在连接继电器。
Reader_3 »
请问 kensu 要怎样隔离啊?能再说详细一点吗? Reader_4 »
串口的电流太小, 驱不动继电器,应该用外接电源。然后用串口发信息,控制外接电路。 Reader_5 »
你这种做法不太妥,只能勉强试试:
用一个发光二极管,串接一个适当电阻(或可调电位器),再接光电隔离集成块4N25的输入,
输出可至74ls244(42?记不太清了)或74ls373,最好还是要接一个功放驱动集成块去驱动继电器。 Reader_6 »
我认为瓦特说的对.
因为我做过的就是这样的.
继电器外接电源.
通过上位机想串口发指令控制它
在学校或企业,经常会使用电铃,但电铃声同消防铃声太相似.能否用电脑播放歌曲,并用串口控制开关扩音机? 某些此类的专业设备和软件非常贵,其实你可以DIY,而且并不复杂.

     原理:

      串口被软件打开后,串口DB9的4脚(DTR)会有一个10V的电压.当关闭串口后,电压即消失.

     软件开发.

       串口软件的开发可以利用API FUNCTION和Mscomm控件来开发.由于此项目非常简单,只涉及开关串口,所以使用api开发更为简单,以下是主要代码 :

打开串口:  


BOOL CTimerDlg::OpenComPort(){

hCom=CreateFile(_T("COM1"),GENERIC_READ/*|GENERIC_WRITE*/,0,NULL,OPEN_EXISTING,
   FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
   NULL);
if(hCom==INVALID_HANDLE_VALUE)
   return false;
else
   return true;

}

关闭串口:
void CTimerDlg::CloseComPort(){
  
CloseHandle(hCom);


}


硬件设计:

1。选用继电器控制;
2。用双向可控硅,控制导通角;
因为在交流电时,单向可控硅反向关断,负载仅一半压降!

可控硅(SCR)基本概念:  http://www.go-gddq.com/html/2006-08/406155.htm


/***************************** 延时t毫秒 **********************************/

void delay_1ms(uint t)

{

       uint i;

       while(t--)

       {

              /* 对于11.0592M时钟,约延时1ms */

              for (i=0;i<125;i++);

       }

}

/******************************* 延时10us *********************************/

void delay_10us(uchar y)               // 延时子程序10us

{

    uchar x;

    for(x=y;x>0;x--);

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/**************************   温度测量模块_Strat *****************************/


uchar tplsb,tpmsb;                           // 温度值低位、高位字节

sbit DQ = P2^0;                              // DS18B20数据引脚DQ


/*********** 产生复位脉冲初始化DS18B20 ***********/

void TxReset(void)

{

       uint i;

       DQ = 0;

       /* 拉低约900us */

       i = 100;

       while (i>0)    i--;  

       DQ = 1;                                    // 产生上升沿

       i = 4;

       while (i>0)    i--;

}

/****************** 等待应答脉冲 ****************/

void RxWait(void)

{

       uint i;

       while(DQ);

       while(~DQ);                             // 检测到应答脉冲

       i = 4;

       while (i>0) i--;

}

/******** 读取数据的一位,满足读时隙要求 ********/

bit RdBit(void)

{

       uint i;

       bit b;

       DQ = 0;

       i++;

       DQ = 1;

       i++;i++;    // 延时15us以上,读时隙下降沿后15us,DS18B20输出数据才有效

       b = DQ;

       i = 8;

       while(i>0) i--;

       return (b);

}

/***************** 读取数据的一个字节 *******************/

uchar RdByte(void)

{

       uchar i,j,b;

       b = 0;

       for (i=1;i<=8;i++)

       {

              j = RdBit();

              b = (j<<7)|(b>>1);             //测量的位的值(0或1)放在最高位,然后往右移动1位,

                                                        //把空出的最高位放接下去测的位的值(0或1)。

       }

       return(b);

}


/******** 写数据的一个字节,满足写1和写0的时隙要求 ********/

void WrByte(uchar b)

{

       uint i;

       uchar j;

       bit btmp;

       for(j=1;j<=8;j++)

       {

              btmp = b&0x01;

              b = b>>1;                          // 取下一位(由低位向高位)

              if (btmp)

              {

                     /* 写1 */

                     DQ = 0;

                     i++;i++;                      // 延时,使得15us以内拉高

                     DQ = 1;

                     i = 8;

                     while(i>0) i--;             // 整个写1时隙不低于60us

          }

              else

              {

                     /* 写0 */

                     DQ = 0;              

                     i = 8;

                     while(i>0) i--;             // 保持低在60us到120us之间

                     DQ = 1;

                     i++;

                     i++;

              }

       }

}

/*************** 启动温度转换 ***************/

void convert(void)

{

       TxReset();                                // 产生复位脉冲,初始化DS18B20

       RxWait();                                 // 等待DS18B20给出应答脉冲

       delay_1ms(1);                          // 延时

       WrByte(0xcc);                          // skip rom 命令

       WrByte(0x44);                         // convert T 命令

}

/*************** 读取温度值 *****************/

float temperature=0;                       // 转换之后的实际温度值

void RdTemp(void)

{

       TxReset();                                // 产生复位脉冲,初始化DS18B20

       RxWait();                                 // 等待DS18B20给出应答脉冲

       delay_1ms(1);                          // 延时

       WrByte(0xcc);                          // skip rom 命令

       WrByte(0xbe);                         // read scratchpad 命令

       tplsb = RdByte();                     // 温度值低位字节(其中低4位为二进制的“小数”部分)

       tpmsb = RdByte();                   // 高位值高位字节(其中高5位为符号位)

                                                        // 温度转换,把高低位做相应的运算转化为实际温度

       temperature=((tpmsb*256)+tplsb)*0.0625;

}


/* 读取的温度值最终存放在tplsb和tpmsb变量中。tplsb其中低4位为

二进制的“小数”部分;tpmsb其中高5位为符号位。真正通过数码管输出时,

需要进行到十进制有符号实数(包括小数部分)的转换。 */

/************************   温度测量模块_End *******************************/
Load比较简单:

$("#have_votes_to_vote").load("/con/vote/act/hasleft",{clientTime:Date()},
       function(data){if(data==""){$(this).text('0')}}
  );


http://xxx.xxx.com/con/vote/act/hasleft:

<?php
$content = json_encode ( array ("code" => "1", "message" => "成功!",'votehasleft'=>$result[0]['FViewCount']) );
echo $content;
?>


getJSON:
PHP

<?php require './script.php';?>
<label   id="have_votes_to_vote" class="have_votes_to_vote"></label>
<script language="javascript">

$.getJSON('http://xxx.xxx.com/con/vote/act/hasleft',function(data){alert(data.message);$("#have_votes_to_vote").text(data.message);});
</script>




$.ajax的写法:

    var noMiniPic = $.ajax({
        url: "/con/user/act/checkmini",
        data:"clientTime="+Date(),
    async: false
        }).responseText;
    if(parseInt(noMiniPic)==1)
    {
        alert('ÎÂÜ°Ìáʾ£ºÇëµã»÷ÉÏ´«£¬ÔÙÌá½»×¢²áÐÅÏ¢');  
        return false;
    }





参考:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html
         http://www.ibm.com/developerworks/cn/xml/x-ajaxjquery.html

一直用极点五笔,使用PhotoShop CS4文字输入时,切换到中文输入法‘极点五笔’时,Photoshop出现假死,无法响应,使用其他输入法(如:搜狗五笔、智能ABC等)时正常,在杜志民老师的指导下极点的问题得以解决。

升级 NVIDIA 显卡驱动

我的主机是SOYO N8+集成NVIDIA GeForce 8200显卡,Windows Server 2003系统,升级显卡驱动后(驱动版本:6.14.11.9056),Photoshop CS4切换至极点五笔输入法时使用正常,极点五笔与Photoshop CS4 的兼容性问题解决。

如果你还未解决,可以试试网上的其他方法(我使用这些方法未成功):

1、控制面板 - 区域和语言选项 - 语言 - 详细信息 - 高级 - 关闭所有高级文字服务(去掉勾)

2、PS中,编辑 - 首选项 - 文字 - 显示亚洲字体选项、字体预览大小(去掉勾)

我今天也遇到这个问题!!!
终于在Linux系统上安装成功了:

提前准备:Flash Media Server
Redhat Linux Enterprise

(没有上述软件的就要下载)

1,先装好Linux,再把Flash Media Server下载到Linux系统上。扔到你想扔的目录下。Eg:/usr/tmp/FMS.zip

2,解压。先cd 到tmp目录下:

# cd /usr/tmp
# upzip Fms.zip
# tar -xzf FlashMediaServer3.tar.gz
# cd FMS_3_0_1_r123
# ./installFMS -platformWarnOnly //为什么要带这个参数。不知道。带就是了。不带不成功
。。。

跟着提示做,就安装成功了(默认的FMS会启动),可以用Top查看一下进程,看看有没有跟FMS相关,没有就执行下面的命令。

# cd /opt/adobe/fms
# ./fmsmgr server fms start

好了。写个Flash程序连接测试一下吧。(如果连接不成功,请把防火强设置一下或关闭)

本人在Flash Media Server 3 Redhat Linux Enterprise 5已经成功。 阅读全文
   1. 用户体验一致性
      QQ校友集成了QQ账号登录、QQ空间、QQ相册等多种腾讯老牌服务。这种集成一方面方便了用户,另一方面却造成了用户体验的严重不统一。SNS网站的体验统一性是非常重要的。如果使用QQ校友的时候突然跳到QQ空间,是一件很怪的体验。用户想看看好友的动态就需要熟悉那么多种不同的界面,肯定会累死在途中。
   2. 数据初始化
      SNS网站最重要的是数据初始化的问题:试想当一个用户进入一个空空如也的社区是什么感觉。目前比较简单的伎俩就是用一些“僵尸用户”去忽悠,但这些手段已经在国内被用臭了,几乎每一个网站注册成功都会有一个穿的比芙蓉鸡鸡还暴露的女人加你好友。2009年了,腾讯用这招的成功率估计也比较低。我现在上校友看了之后发现内容实在是千差万别,不伦不类。
   3. 用户圈子文化壁垒
      用户圈子的统一性也是QQ校友面临的严峻问题。上面说到的“大专院校的学生”和“年轻白领”都是意识形态相近、生活习惯相近的人群,而剩下的这些人在社会上的地位相差则十分悬殊,他们很难有共同的话题。

电脑配置

WEB2.0 jackxiang 2009-11-12 18:31
http://zj.zol.com.cn/diy/list.php?userid=eonion
http://zj.zol.com.cn/diy/detail/1244998.html



件名称   配件型号   价格(元)
C P U   Intel i5 750(盒)   1580
散热器   盒装   
主   板   技嘉 P55-VD4   1660
显   卡   影驰 GTX275黑将版   1680
内   存   红色威龙 2G DDR3 1333   320
硬   盘   希捷 1TB 7200.12 16M(串口)   585
显示器     
声   卡   集成   
网   卡   集成   
光   驱   先锋刻录 DVD   190
音   箱   

用户自行选购
  
机   箱   酷冷至尊 毁灭者   260
电   源   航嘉多核HD   390
鼠   标   罗技 键鼠套装   135
  键   盘     套装   
合计   6800元

i5-750参数方面采用最新的LGA1156接口,主频为2.66GHz!
http://zhaoyi.javaeye.com/blog/235380
阅读全文
http://westroad.org.cn/editor_compare.html
我们在做性能优化的时候,第一步需要判定哪部分程序最需要做优化,一般来说程序运行最耗时的那部分,也就是程序热点(Hotspots)是我们的候选,而优化热点函数后性能提升效果也最明显。

为什么要提这个问题呢?因为最近做过一些项目,很多人一上来看到程序中这里适合用多线程,那里适合用SSE,但是有没有先考虑过这部分程序优化后性能提升的比例能有多少?一般我们在做优化之前都需要有一个基本的估计,需要优化的代码占程序总运行时间的多少,用不同的手段最多能达到怎么样的优化效果,达到这样的效果后是否满足我的既定目标?这样分析下来后才开始分配人力和时间资源。

有些人觉得,我自己心里很清楚程序哪里最耗时。但是感觉往往不是那么精确的,现在寻找热点的工具有很多, VTune,Parallel Amplifier等都可以做到。既然有工具,我们就借助工具定量地进行分析,做为我们开始的第一步。
最近在看北电代码的时候,发现,系统中大部分模块都采用的是一个进程/一个线程的设计方式,一个大的功能模块由多个进程构成。因为系统是运行在Linux平台上,一开始,我觉得这种设计是有问题,追溯根源,以为是北电之前使用的操作系统是vxworks,那帮北美的开发人员把vxworks中task的概念生搬硬套到linux中,在linux中提供了比进程性能更高的线程,他们并没有充分的利用起来。之后认真思考了一下,发现,他们这样设计是有道理的。分析如下,我们先来说说进程和线程的区别吧。
阅读全文
分页: 200/272 第一页 上页 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 下页 最后页 [ 显示模式: 摘要 | 列表 ]