虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

ba-T

  • Arduino学习笔记4_Arduino软件模拟PWM

    注: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。就不会闪了。

    标签: Arduino PWM 软件模拟

    上传时间: 2013-10-08

    上传用户:dingdingcandy

  • 多功能单片机开发工具

    超级单片机开发工具,包含:模拟/数字转换表计算,LED 编码器,色环电阻阻值计算,Hex/Bin转换,串口调试器,端口监视器等实用功能 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。   1. 模拟/数字转换表计算 本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的位置分为两种,可以参看图示选择正确的电路连接形式;可自定义分压电阻阻值;目前支持8位 /10位转换精度;可选择生成汇编/C源代码格式的数据等。   2. LED 编码器 本功能主要用于自动根据图形信息、段位置信息生成可保存在单片机程序存储器中供查表使用的数据。可自行定义字符的图形及各段的位置信息;可以选择LED类型,目前有 7段、14段、16段三种类型;自带图形定义,也可自定义并能保存自定义方案;自定义位置信息并可保存;可以生成 8位、4位编码,4位编码主要针对一些有 4个COM端的LED/LCD驱动器;同样可以保存为C/ASM格式数据。   3. 色环电阻阻值计算 本功能主要为记不住色环值的人(像我)用的,比较简单,单击相应环的相应颜色,阻值将实时给出。   4. Hex/Bin转换 Intel Hex格式文件和Bin格式文件相互转换,本功能使用机会较少。 Hex/Bin文件转换为文本方式(变量定义方式),将Hex文件或Bin文件转换为C/ASM源代码格式的数据。 CRC计算,提供3种计算方法。   5. 串口调试器 可以通过串口接收/发送数据,作为普通的串口调试器,可以手动发送所填内容,也可以发送整个文件;   内存映射功能,对于监控单片机内存非常方便,还可以定义内存变量,自动从接收到的数据中提取变量值,支持字节型、整型、长整型、浮点型、双精度型、位掩码(可用于位变量)、数组型(其他不规则变量)等,同时支持10进制、16进制、2进制显示;可以自由选择需要实时监测的变量;变量方案可以存盘等等;可以设为固定长度或定义首/尾标志,设置内存中实际起始地址,显示时和计算变量时用;由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本);   变量组合,适用于文本方式的变量监测,例如: Var1=1111#var2=2222#var3=333.333   通讯时可以选择二进制、文本方式显示;可设置自动滚屏;设置最大显示行数; 可以选择多命令交互方式通讯,且可以作为主发方、从发方;主发时可以循环发送所选命令;从发时可以定义自动应答命令,即接收到表中所列的命令后,自动用相应内容应答,是不是很实用?   可以设为手动发送或定时发送。   可自定义通讯超时时间。   可以保存历史数据,包括发送和接收数据!   计划加入调制解调器控制。   6. 端口监视器 监视所选串口/并口的一切通讯活动而不占用其资源,可以设置过滤条件,可同时监视多个端口,可以保存数据,可以直接记录到文件中。

    标签: 多功能 单片机 开发工具

    上传时间: 2013-10-13

    上传用户:大灰狼123456

  • 多功能单片机开发工具

    超级单片机开发工具,包含:模拟/数字转换表计算,LED 编码器,色环电阻阻值计算,Hex/Bin转换,串口调试器,端口监视器等实用功能 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。   1. 模拟/数字转换表计算 本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的位置分为两种,可以参看图示选择正确的电路连接形式;可自定义分压电阻阻值;目前支持8位 /10位转换精度;可选择生成汇编/C源代码格式的数据等。   2. LED 编码器 本功能主要用于自动根据图形信息、段位置信息生成可保存在单片机程序存储器中供查表使用的数据。可自行定义字符的图形及各段的位置信息;可以选择LED类型,目前有 7段、14段、16段三种类型;自带图形定义,也可自定义并能保存自定义方案;自定义位置信息并可保存;可以生成 8位、4位编码,4位编码主要针对一些有 4个COM端的LED/LCD驱动器;同样可以保存为C/ASM格式数据。   3. 色环电阻阻值计算 本功能主要为记不住色环值的人(像我)用的,比较简单,单击相应环的相应颜色,阻值将实时给出。   4. Hex/Bin转换 Intel Hex格式文件和Bin格式文件相互转换,本功能使用机会较少。 Hex/Bin文件转换为文本方式(变量定义方式),将Hex文件或Bin文件转换为C/ASM源代码格式的数据。 CRC计算,提供3种计算方法。   5. 串口调试器 可以通过串口接收/发送数据,作为普通的串口调试器,可以手动发送所填内容,也可以发送整个文件;   内存映射功能,对于监控单片机内存非常方便,还可以定义内存变量,自动从接收到的数据中提取变量值,支持字节型、整型、长整型、浮点型、双精度型、位掩码(可用于位变量)、数组型(其他不规则变量)等,同时支持10进制、16进制、2进制显示;可以自由选择需要实时监测的变量;变量方案可以存盘等等;可以设为固定长度或定义首/尾标志,设置内存中实际起始地址,显示时和计算变量时用;由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本);   变量组合,适用于文本方式的变量监测,例如: Var1=1111#var2=2222#var3=333.333   通讯时可以选择二进制、文本方式显示;可设置自动滚屏;设置最大显示行数; 可以选择多命令交互方式通讯,且可以作为主发方、从发方;主发时可以循环发送所选命令;从发时可以定义自动应答命令,即接收到表中所列的命令后,自动用相应内容应答,是不是很实用?   可以设为手动发送或定时发送。   可自定义通讯超时时间。   可以保存历史数据,包括发送和接收数据!   计划加入调制解调器控制。   6. 端口监视器 监视所选串口/并口的一切通讯活动而不占用其资源,可以设置过滤条件,可同时监视多个端口,可以保存数据,可以直接记录到文件中。

    标签: 多功能 单片机 开发工具

    上传时间: 2013-10-29

    上传用户:lacsx

  • 基于SCF及CPLD的程控滤波电路设计

      SCF原理的基础是开关电容与电阻的等效:在电容两端开关控 制下,电容被充放电,电荷的转移过程产生脉冲电流,可以计算其平均值。当开关频率足够快时,该电流等效于流过电阻的电流,可看作是电阻被开关电容取代。可 以证明,电阻R可表示为开关电容Ck与开关切换周期T的比值:

    标签: CPLD SCF 程控滤波 电路设计

    上传时间: 2013-10-22

    上传用户:manga135

  • 简述PCB线宽和电流关系

      PCB线宽和电流关系公式   先计算Track的截面积,大部分PCB的铜箔厚度为35um(即 1oz)它乘上线宽就是截面积,注意换算成平方毫米。 有一个电流密度经验值,为15~25安培/平方毫米。把它称上截面积就得到通流容量。   I=KT(0.44)A(0.75), 括号里面是指数,   K为修正系数,一般覆铜线在内层时取0.024,在外层时取0.048   T为最大温升,单位为摄氏度(铜的熔点是1060℃)   A为覆铜截面积,单位为square mil.   I为容许的最大电流,单位为安培。   一般 10mil=0.010inch=0.254mm 1A , 250mil=6.35mm 8.3A ?倍数关系,与公式不符 ?  

    标签: PCB 电流

    上传时间: 2013-11-12

    上传用户:ljd123456

  • 中望cad 2010简体中文版下载

    中望CAD2010体验版正式发布。作为中望公司的最新年度力作,在继承以往版本优势的基础上,中望CAD2010融入了以“安全漏洞抓取、内存池优化、位图和矢量图混合处理”等多项可以极大提高软件稳定性和效率的中望正在申请全球专利的独创技术,新增了众多实用的新功能,在整体性能上实现了巨大的飞跃,主要体现在以下几方面: 大图纸处理能力的提升 文字所见即所得、消隐打印等新功能 二次开发接口更加成熟 一、大图纸处理能力的提升 中望CAD2010版采用了更先进的内存管理以及压缩技术,采用了一些新的优化算法,使得中望CAD常用命令执行效率和资源占用情况得到进一步的提高,特别是在低内存配置下大图纸的处理能力,大大减少了图纸内存资源占用量,提升了大图纸处理速度。主要体现在: 大图纸内存占用量显著下降,平均下降约30%,地形图类图纸则平均下降50%; 实体缩放和平移,zoom\pan\redraw更加顺畅; 保存速度更快、数据更安全,保存速度平均有40%的提升。 二、新增功能 1、文字所见即所得 文字编辑器有多处改进,文字编辑时显示的样式为最后在图面上的样式,达到了所见即所得的效果。文字编辑器新加入段落设置,可进行制表位、缩进、段落对齐方式、段落间距和段落行距等项目的调整。另外,在文字编辑器内可直接改变文字倾斜、高度、宽度等特征。 2、消隐打印 中望CAD2010版本支持二维和三维对象的消隐打印,在打印对象时消除隐藏线,不考虑其在屏幕上的显示方式。此次消隐打印功能主要体现在以下两个方面: (一)、平台相关命令和功能的调整 视口的“属性”:增加“着色打印”选项(“线框”和“消隐”两种着色打印项) 选择视口后,右键菜单支持“着色打印”项( “线框”和“隐藏”两种模式) 命令mview增加了“着色打印”功能项,可以方便用户设置视口的“着色打印属性”(线框和消隐两种模式) 打印”对话框调整:在布局空间,激活“打印”对话框,以前的“消隐打印”选项显示为“隐藏图纸空间对象”。 页面设置管理器启动的“打印设置”对话框调整:图纸空间中,通过页面设置管理器激活的“打印设置”对话框,以前的“消隐打印”选项显示为“隐藏图纸空间对象” (二)、消隐打印使用方法的调整 模型空间: 可通过“打印”或“页面设置管理器”打开的“打印设置”对话框中的“消隐打印”选项来控制模型空间的对象是否消隐打印,同时包含消隐打印预览,若勾选“消隐打印”按钮,模型空间的对象将被消隐打印出来。 布局空间: 若要在布局空间消隐打印对象,分为两种情况:     1) 布局空间视口外的对象是否消隐,直接取决于“打印设置”对话框中“隐藏图纸空间对象”按钮是否被勾选;     2)布局空间视口中的对象是否消隐,取决于视口本身的属性,即“着色打印”特性选项,必须确保该选项为“消隐”才可消隐打印或预览 3、图层状态管理器 可以创建多个命名图层状态,以保存图层的状态列表,用户可以通过选择图层状态来表现图纸的不同显示效果。这种图层状态可以输出供其它图纸使用,也可以输入其它保存的图层状态设置。 4、文字定点缩放 能够依据文字位置的特征点,如中心,左下等,作为基准点,对多行文字或单行文字进行缩放,同时不改变基准点位置。 5、Splinedit新功能 全面支持样条曲线的编辑,主要体现在SPLINEDIT命令行提示中,如下: 拟合数据(F)/闭合样条(C)/移动(M) 顶点(V)/精度(R)/反向(E)/撤消(U)/<退出(X)>: 拟合数据: 增加(A)/闭合(C)/删除数据(D)/移动(M)/清理(P)/切线(T)/<退出(X)>: 增加、删除数据:通过增加、删除样条曲线的拟合点来控制样条曲线的拟合程度。 移动:通过移动指定的拟合点控制样条曲线的拟合数据 闭合/打开:控制样条曲线是否闭合。 清理:清除样条曲线的拟合数据,从而使命令提示信息变为不包含拟合数据的情形。 切线:修改样条曲线的起点和端点切向。 闭合样条:将打开的样条曲线闭合。若选择的样条曲线为闭合的,该选项为“打开”,将闭合的样条曲线打开。 移动:可用来移动样条曲线的控制点到新的位置。 精度:可通过添加控制点、提高阶数或权值的方式更为精密的控制样条曲线的定义。 反向:调整样条曲线的方向为反向。 6、捕捉和栅格功能增强 7、支持文件搜索路径 关于激活注册:打开CAD界面,找到左上面的“帮助”,激活产品-复制申请码-再打开你解压到CAD包找到keygen.exe(也就是注册机,有的在是“Key”文件里,如果没有可以到网上下载),输入申请码--点击确定,就中间那个键--得到数据 应该是五组-复制再回到上面激活码页面,粘贴激活码确定就ok !复制(粘贴)的时候用 ctrl +c(v),用鼠标右键没用! 如果打开安装CAD就得注册才能运行的,那方法也跟上边的差不多! 其实你在网上一般是找不到激活码的,因为各个申请码不一样,所以别人的激活码到你那基本上没用,只能用相应的方法得到激活码,这方法也就要你自己去试了,我原来也不会装CAD,但现在一般3分钟就装好了,只要知道怎么说了就快了,一般软件都是一样的装法,不会装可以到网上找资料!有时求人不如求已,自己算比在网上等着别人给你算快多了

    标签: 2010 cad 简体中文

    上传时间: 2013-10-21

    上传用户:tedo811

  • Protel DXP 2004 SP2下载地址

    软件介绍与下载事项: .Zah287 { display:none; } _)(^$RFSW#$%T

    标签: Protel 2004 DXP SP2

    上传时间: 2013-10-28

    上传用户:fnggknj

  • 电脑主板生产工艺及流程

    随着科学技术的不断发展,人们的生活水平的不断提高,通信技术的不断扩延,计算机已经涉及到各个不同的行业,成为人们生活、工作、学习、娱乐不可缺少的工具。而计算机主板作为计算机中非常重要的核心部件,其品质的好坏直接影响计算机整体品质的高低。因此在生产主板的过程中每一步都是要严格把关的,不能有丝毫的懈怠,这样才能使其品质得到保证。 基于此,本文主要介绍电脑主板的SMT生产工艺流程和F/T(Function Test)功能测试步骤(F/T测试步骤以惠普H310机种为例)。让大家了解一下完整的计算机主板是如何制成的,都要经过哪些工序以及如何检测产品质量的。 本文首先简单介绍了PCB板的发展历史,分类,功能及发展趋势,SMT及SMT产品制造系统,然后重点介绍了SMT生产工艺流程和F/T测试步骤。

    标签: 电脑主板 生产工艺 流程

    上传时间: 2013-11-02

    上传用户:c12228

  • 用单层PCB设计超低成本混合调谐器

    今天,电视机与视讯转换盒应用中的大多数调谐器采用的都是传统单变换MOPLL概念。这种调谐器既能处理模拟电视讯号也能处理数字电视讯号,或是同时处理这两种电视讯号(即所谓的混合调谐器)。在设计这种调谐器时需考虑的关键因素包括低成本、低功耗、小尺寸以及对外部组件的选择。本文将介绍如何用英飞凌的MOPLL调谐芯片TUA6039-2或其影像版TUA6037实现超低成本调谐器参考设计。这种单芯片ULC调谐器整合了射频和中频电路,可工作在5V或3.3V,功耗可降低34%。设计采用一块单层PCB,进一步降低了系统成本,同时能处理DVB-T/PAL/SECAM、ISDB-T/NTSC和ATSC/NTSC等混合讯号,可支持几乎全球所有地区标准。图1为采用TUA6039-2/TUA6037设计单变换调谐器架构图。该调谐器实际上不仅是一个射频调谐器,也是一个half NIM,因为它包括了中频模块。射频输入讯号透过一个简单的高通滤波器加上中频与民间频段(CB)陷波器的组合电路进行分离。该设计没有采用PIN二极管进行频段切换,而是采用一个非常简单的三工电路进行频段切换。天线阻抗透过高感抗耦合电路变换至已调谐的输入电路。然后透过英飞凌的高增益半偏置MOSFET BF5030W对预选讯号进行放大。BG5120K双MOSFET可以用于两个VHF频段。在接下来的调谐后带通滤波器电路中,则进行信道选择和邻道与影像频率等多余讯号的抑制。前级追踪陷波器和带通滤波器的容性影像频率补偿电路就是专门用来抑制影像频率。

    标签: PCB 调谐器

    上传时间: 2013-11-21

    上传用户:时代将军

  • 基于FPGA 的千兆以太网的设计

    摘要:本文简要介绍了Xilinx最新的EDK9.1i和ISE9.1i等工具的设计使用流程,最终在采用65nm工艺级别的Xilinx Virtex-5 开发板ML505 上同时设计实现了支持TCP/IP 协议的10M/100M/1000M 的三态以太网和千兆光以太网的SOPC 系统,并对涉及的关键技术进行了说明。关键词:FPGA;EDK;SOPC;嵌入式开发;EMAC;MicroBlaze 本研究采用业界最新的Xilinx 65ns工艺级别的Virtex-5LXT FPGA 高级开发平台,满足了对于建造具有更高性能、更高密度、更低功耗和更低成本的可编程片上系统的需求。Virtex-5以太网媒体接入控制器(EMAC)模块提供了专用的以太网功能,它和10/100/1000Base-T外部物理层芯片或RocketIOGTP收发器、SelectIO技术相结合,能够分别实现10M/100M/1000M的三态以太网和千兆光以太网的SOPC 系统。

    标签: FPGA 千兆以太网

    上传时间: 2013-10-28

    上传用户:DE2542