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

最终

  • 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

  • NI Multisim和NI Ultiboard评估软件(专业版)

    Multisim可用于原理图输入、SPICE仿真、和电路设计,无需SPICE专业知识,即可通过仿真来减少设计流程前期的原型反复。Multisim可识别错误、验证设计,以及更快地原型。此外,Multisim原理图可无缝转换到NI Ultiboard中完成PCB设计。评估版软件不能打印图表以及导出最终Gerber文件。更多信息请访问ni.com/multisim/zhs/。

    标签: Ultiboard Multisim NI 评估软件

    上传时间: 2013-10-29

    上传用户:micheal158235

  • PCB设计工具pcb artist 1.5下载

    pcb artist完全集成、图表捕捉功能程序经过特别设计,不需要非常正规的培训,或者很深入的应用PCB工具的经验。 PCB Artist拥有完整的图表捕捉工具,非常容易使用,而且软件有实用教程,指导用户完成整个过程。下一步是确定PCB,包括创建示意图。同样,另一个向导帮助您定义PCB参数,如印刷电路板层,跟踪大小和数量。接下来,需要确定PCB的布局,其中包括Autoplacement和AutoRouting,确保PCB有最佳的发挥作用的机会。软件甚至可以生成一个零件清单,这完全取决于您的设计情况。 最后一步是检查PCB的实际工作情况。程序会自动检查您的最终设计方案,包括间距尺度、不完整网络和连接检查。然后开发商会让您提交给他们设计方案,用于制造,当然这只是个可选方案。 对新手来说,这是个极好的PCB设计软件,但是需要高级电路板设计软件的用户会觉得软件的功能还是比较有限。

    标签: artist PCB 1.5 pcb

    上传时间: 2013-11-17

    上传用户:haojiajt

  • PCB彩色抄板软件QuickPcb2005免安装版

    重要须知━请认真阅读:本《最终用户许可协议》(以下称《协议》)是您(个人或单一实体)与 BSTBIT.COM 之间有关上述 BSTBIT.COM软件产品的法律协议。本“软件产品”包括计算机软件,并可能包括相关媒体、印刷材料和“联机”或电子文档(“软件产品”)。pcb抄板软件搞定了,进行pcb打样时,就更快捷了。本“软件产品”还包括对BSTBIT.COM提供给您的原“软件产品”的任何更新和补充资料。任何与本“软件产品”一同提供给您的并与单独一份最终用户许可证相关的软件产品是根据那份许可协议中的条款而授予您。您一旦安装、复制、下载、访问或以其它方式使用“软件产品”,即表示您同意接受本《协议》各项条款的约束。如您不同意本《协议》中的条款,请不要安装或使用“软件产品”。

    标签: QuickPcb 2005 PCB 彩色

    上传时间: 2013-11-23

    上传用户:liuqy

  • JPEG2000数据压缩的FPGA实现

    高性能的数据压缩可以有效的减少数据对存储空间和通信带宽的要求,降低通信成本。为解决图像数据的高压缩性能问题,本文提出了基于JPEG2000标准的数据压缩系统的FPGA实现方案。相对于软件算法实现和其他硬件方法,采用FPGA硬件实现可降低系统复杂度提高性能。最终设计的IP核具有资源占用少,性能良好和便于扩展等优点,能够满足通信传输和照相设备等应用需求。

    标签: JPEG 2000 FPGA 数据压缩

    上传时间: 2013-11-22

    上传用户:13691535575

  • cad填充图案大全下载_cad填充图案怎么安装

    不少使用CAD的朋友在找CAD填充图案,附件是小编收集的近千种cad填充图案打包,供CAD学习和使用者参考,希望对大家能有所帮助。以下是cad填充图案使用说明。 CAD填充图案使用说明: 1、将填充名改成自己比较容易识别的名称,但要注意填充文件和填充名要完全一致(不用区分大小写)。 我收集的这些填充图案有些是中文名称,很容易就知道填充图案的类型。有些是英文名,本来我想将这些英文名都改成中文名的填充。 我可以提供大家方法。先用记事本打开其中一个填充文件,如下图所示: 图中打开的填充名为b043,文件名也必须为043,否则CAD是不认的。类似上图所示的填充,如果希望CAD的填充列表中直接显示中文,方便查找,你就需要先用记事本将PAT文件打开,复制“板岩”,选中b043,粘贴将其替换成“板岩”,关闭并保存文件。选中文件后单击文件名进入重命名转台,选中前面的B043,CTRl+V粘贴,将"B043.pat"修改成"板岩.pat"。 修改的最终效果类似下图所示的“六边形蜂窝转”填充。 2、不建议将所有收集的填充都一次性复制到CAD的填充目录(patterns)下。 如果将大量填充都复制到CAD的填充目录下,在填充时效率并不高,因为要在上千种填充中找出你要使用的填充,也不是一件简单的事情。因此我建议不要做加法,而是应该做减法,将自己可能用到的填充保留,把根本不会用到的填充删除。 对于这个压缩包也是如此,当需要使用其中某种填充时,你再将填充拷过去。 3、如何在这么多填充图案中找到自己需要的填充图案。 由于有些填充图案用的是英文名,可以分别通过文件名和包含文字来搜索你要找的填充名来判断在这些填充中是否有你需要的填充。如果找到的是一个英文名称的填充文件,你可以参照第一点中的方法进行修改,方便使用。

    标签: cad 图案

    上传时间: 2013-11-02

    上传用户:lhw888

  • 中望CAD 2012标准中文版下载

    中望CAD2012是中望公司推出的最新CAD平台产品,能够兼容主流的CAD文件格式,并且简单易学、操作方便,广泛运用于机械、电子、建筑等行业的设计部门。中望CAD在技术上已处于国际先进水品,软件的功能、速度、稳定性在同类产品种领先,获得了广大用户的支持和信任。 中望CAD2012特色功能 参数化设计功能 类似于三维绘图软件中的设计方式,绘制的图形可以通过几何位置和尺寸来进行约束,从而达到最终的图形效果,并且可以添加尺寸相关参数,以获得更为准确的结果。 表格功能 提供基本的表格功能,可以直接创建表格并能更改表格的大小以适应填写需求,表格中除了可以填写文字,也可以填入字段。中望CAD中的表格可以导出为Excel,也可以从Excel将表格导入到CAD中。 图纸比较 图纸比较功能能够对两张相似的图纸进行对比,不同的部分用彩色标识出以便用户识别。该功能特别适用在图纸的审核和修改上,只需一步即可辨别图纸。 帮助系统 中望CAD提供完整的帮助系统,动画教程也嵌入帮助中,为用户提供详尽的功能解释。同时提供在线帮助,对于帮助的修改部分,可以通过网络及时查阅到,在线帮助系统支持简体中文,繁体中文,英文以及日文四个语言版本。 中望CAD2012新功能 900个细节改善 中望CAD对900多个细节进行了改善,使得软件在功能完整、运行稳定性、交互方式、二次开发接口等方面有了进一步的提高,软件更贴近客户的使用方式,实际处理图形的能力更强。 ECW图片插入 在图片插入功能中,增加对ECW格式图片的支持,可以将该类文件以光栅图像插入,同其它图片格式一样,插入后的图像可以进行简单编辑。 中望CAD附加工具 中望CAD安装包中新增一些实用功能,这些功能在一些设计领域会经常用到。 引线标注XY坐标 利用引线的方式,标注出点的XY坐标值。采用这种方式可以在复杂标注的状况下减少标注数量,是设计师较为常用的表达方式。

    标签: 2012 CAD 标准

    上传时间: 2014-01-18

    上传用户:yupw24

  • 成为Xilinx FPGA设计专家(基础篇)

      之前也一直在做关于Xilinx FPGA各个方面的文章,但是总体而言就显得有些杂,总希望能有人能整理一下便于查阅;另外针对目前电子发烧友网举办的“玩转FPGA:iPad2,赛灵思开发板等你拿”,小编在电话回访过程中留意到有很多参赛选手对Xilinx 公司的FPGA及其设计流程不是很熟悉,所以想了想,最终还是决定自己动手整合一下。一方面给自己梳理梳理相关知识架构,另一方面的话,跟大家分享分享,希望对大家有所帮助,当然更加希望Xilinx? FPGA工程师/爱好者能跟我们一起来探讨学习!《成为Xilinx FPGA设计专家》这本电子书,计划分为3大部分:基础篇、提升篇、高级篇。   当然这里讲的就是《成为Xilinx FPGA设计专家》(基础篇)。本电子书主要论述了等相关内容。本电子书旨在解决工程师日常设计中所需的基础知识,希望这本电子书可以对各位Xilinx? FPGA工程师/爱好者有所帮助。

    标签: Xilinx FPGA

    上传时间: 2013-10-22

    上传用户:huql11633

  • 基于高速FPGA的PCB设计技巧

         基于高速FPGA 的PCB 设计技巧     如果高速PCB 设计能够像连接原理图节点那样简单,以及像在计算机显示器上所看到的那样优美的话,那将是一件多么美好的事情。然而,除非设计师初入PCB 设计,或者是极度的幸运,实际的PCB 设计通常不像他们所从事的电路设计那样轻松。在设计最终能够正常工作、有人对性能作出肯定之前,PCB设计师都面临着许多新的挑战。这正是目前高速PCB设计的现状–设计规则和设计指南不断发展,如果幸运的话,它们会形成一个成功的解决方案。

    标签: FPGA PCB 设计技巧

    上传时间: 2013-11-08

    上传用户:ly1994

  • 线路板工艺实用资料

      在印制电路板制造过程中,涉及到诸多方面的工艺工作,从工艺审查到生产到最终检验,都必须考虑到工艺质量和生产质量的监测和控制。为此,将曾通过生产实践所获得的点滴经验提供给同行,仅供参考。  

    标签: 线路板 工艺

    上传时间: 2013-12-08

    上传用户:wmwai1314