用一个I/O口控制1个三色指示灯, 2个单色指示灯
http://www.baiheee.com/Documents/081207/081207184434.htm
http://www.baiheee.com/Documents/081207/081207184704.htm
当要显示绿灯(LED1)亮时,I/O口可置为低电平。此时红灯(LED2)反向偏置,无电流流过,不会亮。
当要显示红灯(LED2)亮时,I/O口可置为高电平。此时绿灯(LED1)反向偏置,无电流流过,不会亮。
若要指示灯不亮,可将I/O口置为高阻态,此时两个发光管均无电流流过,也不会亮。
若要显示橙灯亮时,此时LED1、LED2要一起亮,则可以让I/O口在某一固定频率下以50%的占空比进行高低电平不停转换,
利用视觉暂留,使人眼感觉到显示的是橙灯。

由于单片机中的I/O口通常可设置为三种状态,即输出高电平、输出低电平和输入状态(高阻态)。
利用这一点,可以很方便地用一个I/O口实现对2个指示灯的控制。其电路如右图所示。

当要使LED1亮时,I/O口可置为低电平。此时LED2无电流流过,不会亮。
当要使LED2亮时,I/O口可置为高电平。此时LED1无电流流过,不会亮。
若要LED1、LED2均不亮,可将I/O口置为高阻态,此时发光管被VD1旁路,也不会亮。
若要LED1、LED2一起亮,则可以让I/O口在某一固定频率下以50%的占空比进行高低电平不停转换,
利用视觉暂留,使人眼感觉两个灯都为亮的状态。
http://www.amobbs.com/thread-5561641-1-1.html

IO高阻时,LED3亮,LED1 LED2因为LED3电压钳位不亮。
IO输出高电平,LED2亮,LED1相当于短路,不亮,LED3因为LED2钳位也不会亮。
IO输出低电平,LED1亮,LED2相当于短路,不亮,LED3因为LED1钳位也不会亮。
需要额外考虑的只有LED3支路的压降,要大于LED1、LED2的大的,小于LED1+LED2,如果都是同样的LED,在LED3支路上加一个二极管。
流过LED3的电流比LED1、LED2要小约一半,但高亮LED,1mA以上电流减半亮度减弱不是很明显。也可以LED1、LED2用普亮的,LED3用高亮的。

用一个I/O口控制1个三色指示灯, 2个单色指示灯的更多相关文章
- android gpio口控制
android gpio口控制 GPIO口控制方式是在jni层控制的方式实现高低电平输出,类似linux的控制句柄方式,在linux系统下将每个设备看作一个文件,android系统是基于linux内 ...
- 利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转
(一)问题的提出: OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分, ...
- 一个普通的 Zepto 源码分析(三) - event 模块
一个普通的 Zepto 源码分析(三) - event 模块 普通的路人,普通地瞧.分析时使用的是目前最新 1.2.0 版本. Zepto 可以由许多模块组成,默认包含的模块有 zepto 核心模块, ...
- nodejs高并发大流量的设计实现,控制并发的三种方法
nodejs高并发大流量的设计实现,控制并发的三种方法eventproxy.async.mapLimit.async.queue控制并发Node.js是建立在Google V8 JavaScript引 ...
- 一口一口吃掉Volley(三)
欢迎访问我的个人博客转发请注明出处:http://www.wensibo.top/2017/02/17/一口一口吃掉Volley(三)/ 学习了一口一口吃掉Volley(二)之后,你应该已经学会了如何 ...
- Java集合-5. (List)已知有一个Worker 类如下: 完成下面的要求 1) 创建一个List,在List 中增加三个工人,基本信息如下: 姓名 年龄 工资 zhang3 18 3000 li4 25 3500 wang5 22 3200 2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300 3) 删除wang5 的信息 4) 利用for 循
第六题 5. (List)已知有一个Worker 类如下: public class Worker { private int age; private String name; private do ...
- 给定一个字符串里面只有"R" "G" "B" 三个字符,请排序,最终结果的顺序是R在前 G中 B在后。 要求:空间复杂度是O(1),且只能遍历一次字符串。
题目:给定一个字符串里面只有"R" "G" "B" 三个字符,请排序,最终结果的顺序是R在前 G中 B在后. 要求:空间复杂度是O(1),且 ...
- Linux下一个最简单的不依赖第三库的的C程序(1)
如下代码是一段汇编代码,虽然标题中使用了C语言这个词语,但下面确实是一段汇编代码,弄清楚了这个代码,后续的知识点才会展开. simple_asm.s: #PURPOSE: Simple program ...
- 我的第一个netcore2.2 api项目搭建(三)续
上一章快速陈述了自定义验证功能添加的过程,我的第一个netcore2.2 api项目搭建(三) 但是并没有真正的去实现,这一章将要实现验证功能的添加. 这一章实现目标三:jwt认证授权添加 在netc ...
随机推荐
- Arduino 使用舵机库时 其它引脚输出怪异 解决方案
使用Servo.h时,不管你在初始化时用的是9还是10脚,都不要把这两个脚作为舵机以外的用途! 例: servo.attach(9); digitalWrite(10,1);//错,不能把第10脚用作 ...
- php 处理透明背景的图片时的问题
PHP图象处理之透明背景的gif和png图片的一些问题 1,直接读取有透明背景的PNG格式文件,然后直接输出,背景变成了黑色,gif则没有这种情况. 解决方法:使用 imagesavealpha ...
- ArcGIS Engine栅格数据使用总结
jojojojo2002 原文 ArcGIS Engine栅格数据使用总结 简介:ArcGIS Engine栅格数据使用总结,一个栅格数据集由一个或者多个波段(RasterBand)的数据组成,一个波 ...
- PHP开发规范
十.开发规范下面我们讲解 Yii 编程中推荐的开发规范.为简单起见,我们假设 WebRoot 是 Yii 应用安装的目录.1.URL默认情况下,Yii 识别如下格式的 URL: http://host ...
- Selenium IDE- 不同的浏览器
Selenium IDE- 不同的浏览器 Selenium IDE脚本只能对火狐的工具Firefox插件运行测试.使用Selenium-IDE开发的测试可以对其他浏览器所保存为Selenium网络驱动 ...
- CAD操作
1.建立构造线 说签名和图签不在同一条直线上,如何判断两个对向到底是不是在一条线上呢?通过构造线( Construction Line)可以进行判断,CAD中打入: xl 命令,再键入h(horizo ...
- 分布式数据库hbase详解
新霸哥注意到了在人类随着计算机技术的发展,数据的存储量发生了很大的变化,可以用海量来形容,同时,存储的数据类型也是有多种多样的,网页,图片,视频,音频,电子邮件等等,所以在这中情况下以谷歌旗下的Big ...
- scala 连接 mysql
code: import java.sql.{ResultSet, DriverManager} import com.mysql.jdbc.Connection object hoursAvg { ...
- stardict dict
stardict在sourceforge项目里的词典都不见,估计是由于版权方面的问题导致的,不过以前那些还是可以继续用的,没有下载的可以备份一份.每个字典文件夹里都有一个.ifo文件,可以用记事本打开 ...
- vim 配置语法高亮 行号标示
配置VIM主要是开启VIM的语法高亮和行号标示,因为默认在用户目录(~)下没有vimrc,所以需要先去复制一个,然后再编辑 cp /etc/vim/vimrc ~/.vimrc vim .vimrc ...