触摸开关电路也叫触摸式调光、开关控制电路,主要用于生活中白炽灯光的控制。它与一个主要由双向可控硅组成的外围电路一起对光源进行调光、开关的触摸式控制,并具有记忆功能。摆脱了传统的机械拨动开关、电位器调光的形式,是一种新颖的升级换代产品。电路由输入缓冲器、锁相环、控制逻辑、亮度记忆、相角指针、数字比较器和输出驱动器组成。其框图见图1
上传时间: 2013-11-11
上传用户:tiantwo
SMARTISYS IPPCI系列电源控制器是会议演示、指挥控制等系统中必不可少的设备。通过对应用系统中所有设备的电源进行集中管理、定时、延时开关,以及对电动设备的程序化控制,能最大限度保护用电设备,极大的提高系统可靠性和使用方便性。 IPPCI系列产品有程序控制和手动控制两种模式;在应急情况下,可以通过手动方式对相关设备的电源直接进行开关控制及操作;在程序控制模式下,通TM过SmartControlBuilder编程进行任意独立或组合控制。输入采用4-pin专用网络接线端子,用于直接给电源控制系统供电和发送控制信号;另外,还包括9-pin接线端子,用于连接8个本地输入控制8路继电器的开、关。
上传时间: 2013-10-25
上传用户:wlcaption
摘要:介绍了以AT89C51单片机为控制中枢,利用EXB841专用驱动及保护器件对功率模块绝缘栅双极晶体管(IGBT)进行驱动与保护的变频器设计方法。介绍了EXB841在应用中的一些原则性事项,阐述了AT89C51单片机产生正弦脉宽调制(SPWM)脉冲的算法及编程方法,描述了异步电动机在变压变频(VVVF)调速时的近似机械特性及变频调速方式下的主要对策以及带有反馈信号的输出控制方式的实现,最后给出了变频调速控制下的实际数据。关键词:IGBT;驱动;逆变;变压变频
上传时间: 2013-11-07
上传用户:kristycreasy
本文主要介绍了一种基于智能控制技术的新型温控系统的硬件设计。设计了传感器铂电阻为本温度控制系统提供温度信号,经A/D 转换成数字信号送入微控制器中,通过微控制器及其接口电路,实现对温度信号的显示、判断、决策及控制。最后系统输出的适当控制量可调脉冲控制可控硅电路。通过可控硅调功对被控对象电阻炉的加热,实现系统对被控对象电阻炉的温度控制,以达到系统所要求的精度。关键字: 传感器;可控硅;温度控制;A/D1 引言在钢铁、机械、石油化工、电力、工业炉窑等工业生产中,温度是极为普遍又极为重要的热工参数之一。温度控制一般指对某一特定空间的温度进行控制调节,使其达到并满足工艺过程的要求。在本文中,主要研究对特定空间(电阻炉)的温度进行高精度控制。采用九点控制器算法进行温度控制,达到了很好的控制效果。2 控制系统的硬件实现控制系统硬件电路的组成由同步过零检测电路、温度信号检测及可控硅触发电路、时钟芯片等组成,结构框图如图1 所示,以单片机机为核心,数据采集由铂电阻经补偿放大后送至A/D 转换,调功部分由过零触发电路及可控硅完成。
上传时间: 2014-12-28
上传用户:q986086481
2THLxx可调恒流三极管系列产品 可调恒流三极管2THLxx(CRT)作为第二代半导体恒流器件,是一种能为LED 或其他器件在电源电 压变化时提供恒定电流的三端半导体器件,它和第一代产品CRD 的应用是兼容的。它利用一个可调整端, 通过外部元件在一定范围内连续调节其输出电流,实现简单可靠的恒流源或最大峰值电流限制电路,即 使出现电源电压供应不稳定或是负载电阻变化很大的情况,都能确保供电电流恒定。该器件具有外围电 路非常简单、输出电流可调、使用及其方便等特点,尤其适用于可调光LED 照明、动态LCD 背光、汽 车电子、通信电路、手持设备、仪器仪表和微型机器等场合。如果不用可调整端(空),和第一代产品 CRD 的使用完全相同。 ■ 电气特性
上传时间: 2014-01-09
上传用户:彭玖华
针对地面作战、反恐处突等行动面临的侦察难题,提出了研制一种微小型抛投式侦察球的解决方法。着重介绍侦察球无线控制系统的设计与实现。该系统主要由ATmega16微控制器、nRF905无线收发电路和直流电机调速控制电路等组成,设计完成了系统硬件电路以及各个部分的软件。实验表明,所提出的控制方案可行,能无线遥控侦察球完成预期的动作;且无线通讯距离最远能达到400m;同时,该系统还具有良好的稳定性、快速性和准确性。
上传时间: 2013-11-17
上传用户:d815185728
介绍了ZigBee技术,提出了一种基于ARM9芯片与ZigBeeCC2480芯片控制的、应用于家居中的智能无线照明系统。该系统具有上电自组网的功能,用户可以控制协调器通过路由器向该路由器节点上的任意一个终端设备发送信号,终端设备接收到命令并产生PWM信号,实现了对每一盏LED的多级调光及情景模式控制功能。阐述了实现该系统的几个关键问题并给出了实验结果。
上传时间: 2013-11-09
上传用户:lina2343
注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言. 2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\ 所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。
上传时间: 2013-10-08
上传用户:dingdingcandy
注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言. 2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\ 所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。
上传时间: 2013-10-23
上传用户:mqien
采用模糊RBF神经网络对柴油机油门执行器位置进行控制,介绍了电液调速执行器的动态特性,设计了电液调速控制回路,本文将一种基于模糊RBF神经网络的PID控制器应用于柴油机调速控制当中,详细说明了模糊RBF神经网络控制器的设计过程,它结合了传统PID以及神经网络和模糊控制的优点,可以在线调整得到一组最优的PID控制参数。仿真结果表明该系统比传统模糊控制的响应速度快、超调小,且适应性强,具有推广价值。
上传时间: 2015-11-11
上传用户:hfmm633