whyx:proj:labview0:led

LED

1 LED

利用Dx数字信号输入输出接口,我们可以实现TTL电平(晶体管-晶体管-逻辑电平,+5V等价于逻辑“1”,0V等价于逻辑“0”) / COMS电平信号输出
下面的例子中,LED两端连接D1、GND(接地),D1输出高电平时LED点亮。

Dx输入输出数据类型均为二进制,参见MPS-010602使用说明书第13、14页unsigned char * DI、* DO项说明: DI 为一个一维数组,其每个元素为 8 位 unsigned char 型数据,8 个数据位分别代表同一时刻采样得到的 8 路数字端口电平状态。
如:DI[i] = 17,即 DI = 0b00010001,表示 D1 和 D5 为高电平,其余 6个端口为低电平。

另外,说明书第12页写明了端口置输入还是输出模式的转换规则(int DIOModal)

注意:

连线时注意LED正负极。

1.单色LED一般引脚较长、灯泡圆滑、灯丝较窄的一端为正极,引脚较短、灯泡有平缺口、灯丝较宽的一端为负极。(如下面图片中的正负极有错误,请注意分辨);

2.三色LED四个引脚最长的或灯丝最宽的为共阳极(共阴极 视型号不同)。

?200*200 注意:实验中一般需要再串联一个电阻,以避免烧坏二极管。

此处仅显示D1对应开关,另外七个端口对应开关默认为关闭,故二进制数组为“?000000”,“?”为D1状态
需要点击“持续运行”或在程序外加循环框图。

说明:

  • 设置参数SetPara.vi和发送数据SendData.vi两个子VI可以使用已经封装的板卡自带驱动驱动子VI,通过“即时帮助”可了解参数输入方法,也可参照说明书自行构造子VI
  • 因为Dx接口既可以作为输入口也可以作为输出口,需要在参数设定.vi 中加以设置;发送数据.vi 中,传送的是表示电平高低的二进制布尔数组(此例为1维数组)对应的十进制数字
  • 本程序试用了顺序结构,是为了保证参数设置的优先执行,避免错误,设置参数DIO模式节点上点击右键,点击“创建”—“常量”即可创建选择菜单
  • 使用了布尔量和数值量转换函数、数组生成函数,请参照即时帮助文档加以了解
  • 图中前面板中为布尔开关数组,设置方法如下:

?200*200

2 带物理开关LED

Dx接口还可以在输入(信号到计算机)模式工作,所以我们可以在电路中加入开关设置,通过开关通断影响输入电平高低,以读取开关量。

我们依然置D1-D4输出(指输出信号到元件),D5-D8输入(指输入信号到计算机),实际使用的是D1、D5接口(见连线图)。
根据板卡说明书第14页unsigned char * DO函数的介绍,我们可以了解到,配置Dx为输入模式的同时,应对Dx置为高电平

这样,初始D5置为高电平,开关连通后,配合GND接口,D5变为低电平。也就是说,只要检测D5状态即可了解开关闭合情况(开关开:D5高电平;闭:D5低电平
进而与前例类似地控制D1的输出。

 【注意】:此处LED的正极应该连D1,负极连GND

顺序框图中,依次为:初始参数设定、设置输入模式D5为高电平、检查D5电平并控制D1信号发射
其中用到了数组索引函数、判断框图

使用了数字显示和布尔数组显示两种方式了解各端口状态

3 三基色LED

三原色原理:

红色 + 绿色 = 黄色

绿色 + 蓝色 = 青色

红色 + 蓝色 = 紫色

红色 + 绿色 + 蓝色 = 白色

三色LED元件有四个引脚,第二个接置高电平的D5接口(共阳极(共阴极:设置D5低电平 视型号不同)),事实上另外三个引脚(D1 D2 D3)与阳极组合即是三种颜色的独立LED灯

除D5接口外另三个引脚输出高电平时与阳极电位相当,无电流通过,该颜色LED不亮;设置为低电平时,配合高电位的阳极,有电流通过,该颜色LED点亮。若多种颜色点亮,则出现三原色原理所述彩色。

后面将学习PWM原理,利用之可以实现三色LED的颜色渐变,有兴趣的同学可以尝试一下

  • 注意,各数字引脚都需要设置为输出模式
  • 使用了循环框图选择框图,从而实现七种颜色(D1 D2 D3各对应高低两个状态——即框图种T、F两种状态,2^8-1=7 种情况)的跳变
  • 使用了取余函数(Functions——Mathematics——Numeric——Quotient&Remainder)
  • 使用了时间控制(框图中钟的标志),每个颜色停留1000ms
  • 接口电平查看部分是可以略去的(不影响程序运行),设置的目的是了解串口状态以更好地看清原理。其中使用了“数组索引”,引用了第1024位(图中1023),是因为程序要延时1000ms,采集电压过程中可能有旧的数据累计,引用最新的(靠后位置的)电压数据保证了电平状态显示的及时性。
  • whyx/proj/labview0/led.txt
  • 最后更改: 2017/05/27 14:50
  • (外部编辑)