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

分词软件

  • 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-23

    上传用户:mqien

  • Haokoo.net免费域名系统 (C#+VS.net版)软件介绍: 在此系统中你可学习一般的WEB服务器控件的使用

    Haokoo.net免费域名系统 (C#+VS.net版)软件介绍: 在此系统中你可学习一般的WEB服务器控件的使用,如Repater,DataList的分页,DataGrid的分页、编辑、排序等功能的使用!!邮件的发送等,对于初学者是一个极好的学习教材

    标签: net Haokoo WEB VS

    上传时间: 2014-01-05

    上传用户:顶得柱

  • 本书共分6篇

    本书共分6篇,第1篇统计学基础知识与SAS软件应用技巧,介绍了统计学的基本概念和学习方法、试验设计入门、统计描述、SAS软件应用入门、编写SAS实用程序的技巧、单变量统计分析和利用SAS/GRAPH模块绘制常用统计图的方法。第2篇试验设计与定量资料的统计分析,介绍了与t检验、非参数检验和各种方差分析有关的试验设计和数据处理方法。第3篇试验设计与定性资料的统计分析,介绍了处理二维及高维列联表资料的各种统计分析 方法,包括卡方检验、Fisher的精确检验、典型相关分析、logistic回归模型和对数线性模型等内容。第4篇试验设计与回归分析,介绍了回归分析的种类和选用方法、简单直线回归、多项式回归、简单曲线回归、多元线性回归、协方差分析、直接试验设计及其资料的回归分析等有关内容。第5篇生存分析,介绍了生存资料的特点、生存时间函数和生存分析 方法的分类等基本概念;生存资料的非参数分析方法、COX模型分析方法和参数模型的回归分析方法。第6篇多元统计分析,介绍了主成分分析、因子分析、对应分析、聚类分析、判别分析、典型相关分析。

    标签:

    上传时间: 2013-12-19

    上传用户:zyt

  • :软件开发过程中的坎坎坷坷

    :软件开发过程中的坎坎坷坷,仿佛只是人脸的凹凸不平,用热水毛巾一把就可抹平。让我们高举程序主义、软件工程思想的伟大旗帜,紧密团结在以Microsoft为核心的软件公司周围,沿着比尔• 盖茨的生财之道,不分白天黑夜地编程,把建设有中国特色的软件产业的伟大事业全面推向21世纪。

    标签: 软件开发 过程

    上传时间: 2014-01-03

    上传用户:851197153

  • 本书深入浅出地介绍了统一建模语言(UML)和Rational Rose软件

    本书深入浅出地介绍了统一建模语言(UML)和Rational Rose软件,通过航空公司与购物推车例子介绍如何用UML和Rose进行项目需求分析、结构规划和生成框架代码,以及如何从现有系统逆向转出工程代码,生成Rose模型,并分章介绍了C++、Java、Visual Basic与CORBA/IDL和XML代码的代码生成与逆向转出工程代码。通过本书学习,项目开发人员可以用这个全新工具紧扣用户需求,方便地开发出符合用户需求的系统或根据用户需求对现有系统进行改造。

    标签: Rational Rose UML 建模

    上传时间: 2015-04-20

    上传用户:123456wh

  • 《加密与解密》第二版电子版 随书光盘(一)演示部分 2003年 本书在第一版的基础上,更新了第一版中的过时内容。 本书共分三个部分。 第一部分介绍与加密和解密技术相关的基础知识。 第二部分

    《加密与解密》第二版电子版 随书光盘(一)演示部分 2003年 本书在第一版的基础上,更新了第一版中的过时内容。 本书共分三个部分。 第一部分介绍与加密和解密技术相关的基础知识。 第二部分全面讲述各种最新的软件加密与解密技术及方法,如静态分析技术,动态分析技术,序列号,警告窗口,时间限制,加密算法MD5、SHA、RSA、ElGanal等。 第三部分主要介绍PE文件的知识,如增加文件功能、加壳与脱壳、补丁技术等。从光盘上拷贝文件到硬盘时,要注意改变文件属性,取消“只读”属性。

    标签: 2003 加密 解密

    上传时间: 2014-11-22

    上传用户:fredguo

  • Hishop 是一款强劲的B2C的网上购物软件,利用它我们能建立起强劲的、自由的、安全的购物平台.系统由C#及SqlServer开发, 是B/S(浏览器/服务器)结构的asp.net程序. His

    Hishop 是一款强劲的B2C的网上购物软件,利用它我们能建立起强劲的、自由的、安全的购物平台.系统由C#及SqlServer开发, 是B/S(浏览器/服务器)结构的asp.net程序. Hishop有四个版本,分别适用于大型及中小型的网上商场.它们分别是 Hishop 商城高级版、Hishop 商城标准版、Hishp 专营高级版、Hishop 专营标准版. 其中的专营高级版和专营标准版又按商品及分类数量分了多种版本. 价格从几百元到几千元不等,满足各类用户的需要!

    标签: SqlServer Hishop B2C His

    上传时间: 2014-01-21

    上传用户:jennyzai

  • 本书通过85个实例全面讲述了应用MFC进行Visual C++编程的思想。每个实例均以编写一个应用程序要走的步骤编写。全书共分四部分进行介绍

    本书通过85个实例全面讲述了应用MFC进行Visual C++编程的思想。每个实例均以编写一个应用程序要走的步骤编写。全书共分四部分进行介绍,第一部分是基础知识,第二部分讲述用户界面的实例,第三部分讲述MFC内部处理方面的实例,第四部分讲述打包实例。全书基本上面向实例进行阐述,讲解透彻、易于掌握。本书既可作为初学者和大专院校师生的自学参考书,也可作为计算机软件开发人员的技术参考书。

    标签: Visual MFC 编写

    上传时间: 2015-04-30

    上传用户:fredguo

  • 现代汉语分词源程序。里面没有字库

    现代汉语分词源程序。里面没有字库,使用的 是拼音加加自带的词库

    标签: 汉语 字库 源程序

    上传时间: 2013-12-16

    上传用户:李梦晗

  • 该套软件用于提取王码98(或者其他版本)的五笔数据

    该套软件用于提取王码98(或者其他版本)的五笔数据,精简后应用于嵌入式系统,如单片机。在DOS下,用TC模拟调试通过。很容易移植到单片机上。含五笔数据提取过程,输入时两分法查找的子程序。全部为C代码

    标签: 软件 版本 五笔 数据

    上传时间: 2015-06-01

    上传用户:kikye