简单话题:LED呼吸灯和串口LED指示灯

  最近在串口发送引脚上接LED指示发送或者接收状态,但是需求是希望连续发送或者接收字符过程中LED闪烁,而不是保持在一个常量或者常灭的状态。首先,把实际电路图和串口时序贴出来:

串口时序图

SCH

  可以看出串口发送接收空闲态为高电平,只要进行数据发送就一定会产生低电平,利用低电平点亮LED,再利用高电平熄灭。
  但是在实际操作中发现大于2500bps,连续发送数据的时候灯是不会闪烁的,会保持一个常量的状态,只是亮度会随数据内容不同而变化,这就牵涉到 LED 点亮的一个时间问题了。LED点亮熄灭到再次点亮是需要一定时间间隔的,一般常见的在 4.x ms,这里以4ms举例,也就是说如果点亮led,熄灭,下次点亮,只有这个熄灭的时间超过4ms,才可以看出闪烁,否则看起来就像是常亮的。既然有这个要求,就和波特率有一定关系了,我们按照极端情况来考虑,发送字符为0xFF的情况,那么只有起始位是一个低电平,按照4ms发送一个字符(10bit)来计算,此时波特率为2500bps。这就表明大于2500波特率的时候,无论连续发送什么数据,灯都是不会闪烁的。
  好了,确定灯目前处于一个常亮状态了,那么现在的问题是为什么灯亮度会不略有变化,做一个测试,发送连续十六进制,会发现这个十六进制数中的为0的bit越多,灯就越亮。说道这里,那就是 PWM 呼吸灯一个原理啦。实际上都是较快频率控制LED亮灭,值得注意的是不少人认为是亮灭太快,导致肉眼观察不出,这个说法有点牵强,我以前也是跟着这个想法走,实际上 LED 根本没有不停亮灭,根据我前面说的LED点亮的间隔可以得知,所以灯一直是亮的,亮度发声变化是由于LED两端的电压差发生了变化。以PWM举例,高频率的周期变化的0和1电平,也就是占空比对应到模拟信号上也就成了转换电压,拿5V举例,占空比百分之50,那么实际输出平均电压就是2.5V,但是为什么要平均呢?这就是数字信号和模拟信号的区别了,我们控制的是数字信号,而实际起作用的要转换成模拟信号了。
  综上,低频是亮灭效果,因为可以满足led点亮间隔要求,高频就是不同亮度的常亮效果了,原因如上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac OS X 10.10.3对SSD开启Trim功能

From: http://bbs.pcbeta.com/viewthread-1515756-1-1.html 环境&#xff1a; SSD: Mac OS X 10.10.3 混合硬盘(普通机械硬盘8GB SSD): Win7 Mac OS X10.10.3 直接修改Clover配置文件config.plist&#xff0c;找到对应地方进行修改&#xff1a; <key>KernelAndKextPat…

关于Binder的点点滴滴(二)

http://www.linuxidc.com/Linux/2011-07/39271p2.htm4、Binder协议 Binder协议基本格式是&#xff08;命令数据&#xff09;&#xff0c;使用ioctl(fd, cmd, arg)函数实现交互。其中cmd传递命令&#xff0c;arg传递参数&#xff0c;不同的命令需要传递的参数不同。4、1 Binder所…

Unable to execute dex: Multiple dex files define 解决方法

程序编译正常&#xff0c;在用Eclipse调试执行时&#xff0c;报错 Unable to execute dex: Multiple dex files define&#xff0c;总结了一下出现问题的场景&#xff0c;并根据以下使用场景进行分类。 如果是jar包添加或者引用问题&#xff0c;那么可以尝试&#xff1a; 方法…

(四面体)CCPC网络赛 HDU5839 Special Tetrahedron

1 CCPC网络赛 HDU5839 Special Tetrahedron2 题意&#xff1a;n个点&#xff0c;选四个出来组成四面体&#xff0c;要符合四面体至少四条边相等&#xff0c;若四条边相等则剩下两条边不相邻&#xff0c;求个数3 思路&#xff1a;枚举四面体上一条线&#xff0c;再找到该线两个端…

mac下使用sshpass实现ssh记住密码

From: http://tinyhema.iteye.com/blog/2093795 由于有一些场景不能使用ssh私钥来实现免登&#xff0c;因此需要想其它办法解决一下这个问题。 安装sshpass 试图使用homebrew安装 Shell代码 $ brew install sshpass Error: No available formula for sshpass We wont …

ESXI忘记密码怎么办?

忘记ESX root用户的密码怎么办? 以单用户模式进入COS&#xff0c;然后修改root密码&#xff0c;既可搞定。第1步&#xff1a;打开/重启ESX主机图1第2步&#xff1a;到GRUB菜单处 (图2) &#xff0c;用键盘上下键&#xff0c;将光标放在“VMware ESX 4.0”上&#xff0c;按“a”…

TCPDUMP/LIBPCAP 1-由零开始

简介 TCPDUMP是强大的网络包分析器&#xff0c;可以在线或离线抓包&#xff0c;设置过滤条件等操作。 LIBPCAP是十分简洁易用的C/C网络流量抓包库&#xff1b;实际上TCPDUMP就是基于LIBPCAP实现的一个应用程序。为什么要学会工具和库的使用 工欲善其事必先利其器&#xff0c…

JavaSE第九天20160815

抽象与接口 抽象:abstracta) 修饰类&#xff1a;抽象类&#xff0c;抽象类不能实例化(不能new)&#xff0c;只能使用抽象类的子类。抽象类也有构造方法(子类会在自己构造方法的第一行调用父类的构造方法)。 b) 修饰方法&#xff1a;抽象方法。抽象方法只有方法…

mac下nginx搭配php-fpm解析php文件

From: http://ju.outofmemory.cn/entry/74778 1. 为单个项目添加nginx的php-fpm配置. 在server中添加php-fpm的配置. server{listen 80;server_name demo.local;index index.html index.htm index.php;root /path/to;location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastc…

TCPDUMP/LIBPCAP 2-搭建环境

1. 实验平台   Linux 发行版本众多&#xff0c;考虑到大部分开发者的习惯&#xff0c;因此决定采用桌面版系统&#xff0c;具体为 CentOS-6.5-x86_64。系统内核版本为&#xff1a;2.6.32。尽管内核版本较低&#xff0c;但考虑到兼容性和稳定性&#xff0c;选择了此版本系统作…

使用jquery的blockui插件显示弹出层

使用jquery的blockui插件显示弹出层 Posted on 2011-04-14 16:34 孤独者 阅读(9975) 评论(0) 编辑 收藏 在做网站的开发过程中&#xff0c;可能需要使用弹出层&#xff0c;使用jquery的blockui插件可以很轻松的实现这个效果。blockui可以在你发送ajax请求的时候&#xff0c;显…

JS页面跳转大全

所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转&#xff0c;如我们打开的是A页面&#xff0c;通过javsrcipt脚本就会跳转到B页面。目前很多垃圾站经常用js跳转将正常页面跳转到广告页面&#xff0c;当然也有一些网站为了追求吸引人的视觉效果&#xff0c;把一些栏…

CentOS SSH公钥登录问题

From: http://segmentfault.com/q/1010000000445726 内网&#xff0c;想做ssh root公钥登录&#xff0c;配置好之后还是提示输入密码&#xff0c;现象&#xff1a; 在服务器端使用其他端口开放sshd&#xff1a; $/usr/sbin/sshd -p 1234此时客户端可以无密码登录&#xff0c;但…

TCPDUMP/LIBPCAP 3-PCAP's MAN手册(1)

概要 #include <pcap/pcap.h> 说明 PCAP提供为抓包系统提供高级接口。网络上的所有数据包&#xff0c;即使是发往其他主机的数据包&#xff0c;都可以通过这种机制访问。它还支持将捕获的数据包保存到“savefile”&#xff0c;和从“savefile”中读取数据包。 打开捕…

提升用户体验,你不得不知道的事儿——三种提醒框的微技巧

大家都知道无论是android开发还是其他的开发&#xff0c;用户的体验都是很重要的事儿&#xff0c;下面就android开发中的三种提醒方式&#xff0c;Toast,SnackBar,Dialog做一些细节上的处理&#xff0c;或许能让你的产品更有用户亲和力。 1&#xff09;Toast Toast是一个轻量级…

分享:wkhtmltoimage开源工具的基本应用

wkhtmltoimage开源工具的基本应用 http://my.oschina.net/lidonghao/blog/90083

SVN:冲突解决 合并别人的修改

在项目中&#xff0c;基本不可避免多个人同时参与一个项目&#xff0c;因此就可能会出现多个人同时修改一个文件的情况&#xff0c;就不可避免的会出现冲突。svn已经很聪明了&#xff0c;如果你和别人对于同一个文件的修改之间不存在重叠&#xff08;比如你在文件最开始增加了一…

Error: Could not find or load main class

在 java 编程中如果遇到此错误&#xff0c;那么检查下 classpath。 必须确保把 .class 文件的路径添加到 classpath 中&#xff0c; 如果是在当前路径&#xff0c;那么就添加字符 . 到 classpath 中。注意不同系统环境下使用的路径分隔符是不同的&#xff0c;在 windows 下是分…

极客导航

评&#xff1a;集合产品技术与方案集合的方案 http://www.gogeeks.cn/job/2/Java%E5%B7%A5%E7%A8%8B%E5%B8%88转载于:https://www.cnblogs.com/jhj117/p/5779226.html

freemarker 分页逻辑

<#-- 分页组件需要传入的参数 pageUrl ,用来生成的html地址&#xff0c;在pageUrl中必须有{page}在生成html地址的时候会自动把页码给赋值上去。页码起始值为1pageNum 最大显示页 默认9beforPage 前显示页 默认3afterPage 后显示页 默认3countPage 总页数 必须传入curren…