本文为版权内容,文章内容(包括但不限于文字、图片、声音、录像、图表、软件、程序)未经版权人书面许可,任何人不得引用、复制、转载、摘编或以其他任何方式非法使用。
Copyright material!
All material on this page is copyright of ZhangFeng(zjjszhangf@gmail.com) unless otherwise acknowledged. Duplication or sale of all or any part of it is not permitted.
作者:张锋 (zjjszhangf@gmail.com)
本制作的特点
1、 使用大尺寸的优质易购VFD显示屏,显示效果优良。屏幕包含10位带小数点与下指针的标准8字笔段结构字符,通用性强,可以取代大部分LED数字显示屏模块;
2、 使用全新设计的驱动电路,电路生成交流电压驱动灯丝,同时生成负高压驱动阳极与栅极,符合VFD屏驱动规范,显示效果优良无闪烁;
3、 全板采用微型贴片零件制作,整机小巧,板上驱动电路部分最高的零件高度仅为1.8mm,具备超薄型优势;全部零件都藏于显示屏下方,整体模块外观简洁;
4、 模块主设计使用无单片机驱动方案,用户无需配备专用的特殊程序写入器等设备,仅需自己备Arduino或自己习惯使用的单片机即可驱动,通用性极强,即可以作为实验用模块,也可以作为应用类模块使用。
5、 全机制作容易,仅需按照电路图焊完全部零件,使用一只普通万用表测量相关电压即可,无需使用昂贵的工具,也无复杂的调试过程,非常适合初级电子爱好者自制;
6、 公开源码的驱动程序,使用纯C语言进行编写,不仅可以在Arduino平台上使用,也适合移植到众多的单片机平台上运行,51、STM等单片机同样可以驱动;
7、 整个模块自主完成所有的显示扫描工作,用户程序仅需将所需显示的数据送入模块即可,无需关心显示细节,显示过程中不消耗单片机资源,简单易用;
8、 整体所有接口引线全部通过插针引出,可根据实际需要进行连接,方便后期扩展应用。模块与单片机的接口引线仅3根,节约单片机I/O口资源;
FUTABA 10-MT-20GY十位8字荧光屏简介
本制作采用的VFD屏幕的型号为:10-MT-20GY,此屏由日本双叶电子出品,台湾地区制造。整屏结构使用侧面引出气管式结构,属早年生产的VFD显示屏。屏幕做工优良,透光观察可发现屏幕整体呈现半透明效果,经测试点亮后发现屏幕发光均匀,显示亮度高,达到优级显示效果。
本制作之所以选择使用此屏作为显示屏,主要是考虑到这种VFD屏在国内网站上很容易购买到,库存数量多,价格也不高,而且整屏属全新屏,也确保了屏幕的质量。同时卖家也免费提供了官方的原始PDF参考资料,方便用户开发。下图为FUTABA 10-MT-20GY屏幕规格图。
从屏幕的笔段结构上看,屏内部无任何特殊标记,仅包含8字标准与小数点及下指示箭头,全屏为单一绿光显示,亮度高,方便通用领域使用。从屏幕的内部结构来看,此屏属动态扫描屏,屏内结构比较简单,整屏分成10个扫描字段,将10个相同结构的8字间隔开,驱动电路比较容易实现。全屏包括2只引脚灯丝脚在内总共有效引出脚数量为21只引脚,灯丝与其他引脚间存在2根无引出脚的空位作为间隔,全屏总共占据了38个2.54mm标准间距脚位,所有引出脚全部位于屏幕下方一端,属单端引脚屏。
屏幕引脚部分的排列明显进行过优化,将栅极引脚与阳极引脚成组顺序排列成左右两组,这一引脚排列大大降低了PCB布线的难度。屏引脚按照屏幕规格的不同分成长直脚与短弯脚两类,一般购买到的是长直脚引脚屏,可以根据需要进行直立安装或自行弯折引脚后贴板安装。
屏管脚连接如下表所示:
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
连接 |
NP |
F1 |
NP |
NP |
10G |
9G |
8G |
7G |
6G |
5G |
4G |
3G |
2G |
1G |
NP |
NP |
NP |
NP |
序号 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
连接 |
NP |
NP |
NP |
NP |
NP |
a |
b |
f |
g |
c |
e |
d |
h |
i |
NP |
NP |
F2 |
NP |
表 : FUTABA 10-MT-20GY 管脚连接表
备注:表中NP代表无引出的空脚;G为栅极引脚;a~i为阳极引脚;F为灯丝引脚;
屏幕驱动要点
由于FUTABA 10-MT-20GY显示屏的笔段部分与栅格部分结构都非常简单,这里就不做更多的说明。重点关注一下整屏的电气驱动参数。
此屏基本的驱动规格参数为:灯丝为交流驱动,驱动电压范围为3.69Vac~4.51Vac,推荐驱动电压为4.1Vac,灯丝典型电流68mA;阳极与栅极高压电压相同,推荐电压值为+26.0V,最大值为+31.0V;典型阳极电流5.5mA,典型栅极电流11mA;阳极与栅极截止电压也相同,推荐值为-4.9V;扫描占空系数Du为1/12;脉冲宽度Tp为100μS。
从以上基本参数来看,此屏的驱动难度不高,作为典型的5V供电模块,可以生成5V以下的交流驱动电压,而此屏的灯丝电压也正好笔5V稍低一些,所需电流也不高,所以很容易生成。高压部分也处在常见的高压范围内,也比较容易生成,所以驱动此屏的电路设计难度不会很高。重点在于选择合适的设计方案,以实现高效率、小尺寸、低成本的驱动方案。
VFD屏驱动方案选择
为简化模块的设计与调试,计划采用互可替换的两套方案进行驱动电路的设计,其中主设计方案是在板上不使用单片机元件,由专用电路独立完成显示模块的所有功能(也就是说模块板上可以不存在单片机);副设计方案为使用板上单片机完成辅助电压生成工作,以替换一些不易采购的芯片,但是板上单片机不参与任何数据交换工作,仅作为替代芯片使用,以确保两种电路的完全兼容。
根据前几篇文章已谈过的知识,对于动态扫描屏,可在正压与负压驱动方案中进行选择。通常情况下正压驱动电路的专用驱动芯片的价格都比较高,也不易购买,同时大部分正高压芯片都需要使用单片机主动完成扫描显示工作,造成单片机负担加重。所以在本制作中未使用正压驱动芯片。
VFD负压驱动的专用芯片有很多,如典型的μPD 1631x系列,自带SPI口与外部进行通讯,驱动简单,片内电路自行完成VFD的扫描驱动,外部单片机只需要进行简单的数据传输即可,无需关心扫描显示细节,同时这些专用驱动芯片内部的资源也很丰富,一般都包含多个开关量输入、矩阵键盘扫描、LED驱动输出等一些附加资源,可降低成本、方便用户开发使用。综合以上因素,本模块电路最终决定使用负压配合UPD1631x专用驱动芯片进行驱动。
UPD1631x系列常见的有以下三种主流的芯片,主要区别表现在封装尺寸及驱动引脚数量以及内部资源的多少上,而在接口与命令结构上基本相同。下表列出了NEC μPD1631x系列的三种常见型号的驱动特性与资源比较表。
商标 |
型号 |
输出 电压 |
驱动 类型 |
端口 数量 |
键盘 矩阵 |
LED |
开关量 |
引脚 数量 |
NEC |
μPD16311 |
-35V |
负压型 |
8G ×20S~ 16G ×12S |
12 × 4 |
5 |
4 |
52 |
μPD16312 |
-35V |
负压型 |
4G ×16S~ 11G ×11S |
6 × 4 |
4 |
4 |
44 |
|
μPD16315 |
-35V |
负压型 |
4G ×24S~ 12G ×16S |
16 × 2 |
4 |
/ |
44 |
表:NEC μPD1631x系列驱动芯片
在比较表中,主要关心的还是端口数量上,由于FUTABA 10-MT-20GY的引脚数量不多,以上三种芯片都可以完成驱动工作,在综合了市场采购信息后,最后确定使用NEC μPD 16312电路作为模块的主驱动芯片,如果无法购买到μPD系列芯片,也可以使用PTC公司的对应兼容芯片取代。
由于大部分功能与接口电路都集成在这一片驱动电路内,所以在硬件电路的设计工作主要就是要考虑如何高效地实现屏幕的灯丝的驱动与负压的生成,这两部分电路是本设计的关键。下面将分别对这两个电压的生成电路进行详细解说。
灯丝驱动电路设计
灯丝部分的推荐电压是AC4.1V,由于这个模块是5V供电的,这样的交流灯丝电压高于一半的主供电电压但又低于主供电电压,所以可以考虑使用全桥驱动方案来生成这个供电电压。由于主设计方案中没有单片机资源可以使用,所以必须使用专用的灯丝驱动芯片来完成这一工作。通常的VFD专用灯丝驱动电路可选性不多,而使用一些电机驱动用的全桥电路效率不高,所以这里还是选择最通用的NS生产的VFD 灯丝驱动专用电路LM9022来生成灯丝电压。
LM9022芯片的基本情况与特性在先前的一篇文章里已经做过简单的介绍,这里简单地再提一下:简单地说LM9022内包含两个推挽输出运放,组合成一个全桥电路,可以将输入的直流电转换成交流电后用于VFD灯丝的驱动。通常最简应用电路中需要外部提供一个一定频率的驱动信号,而通常这一信号通常可由单片机提供。在本应用里由于主设计中板上没有单片机资源,所以必须将电路搭成自激震荡电路,独立完成震荡输出。震荡频率通常选择20kHz以上,以防止灯丝产生可听见的震荡音。自激震荡电路的原理比较简单,将输出端的信号连接回输入端口,并连接一个简单的RC电路以控制震荡频率。具体电路如下图所示,以图中的参数可以生成频率大约为25kHz左右的交流方波,实际频率值可以通过调整R1与C2的值进行调整。更多技术细节请自行参考LM9022官方应用手册。
由于NS LM9022停产多年的原因,目前市场上暂无替代品,所以考虑到LM9022采购困难,在灯丝驱动电路的设计中增加了一个由独立单片机构成的替代电路。
在替代电路中,使用了廉价的STM8S单片机做为全桥驱动的信号生成芯片,在外部由4个MOSFET构成了一个标准的全桥电路,这个电路的四个桥壁分别由单片机内的TIM1的CH1和CH2两个通道进行驱动,分别道通H桥的两个对角管子,完成直流到交流的转换工作。
由于单片机在这里只是设计来作为LM9022的替代,所以并未将其他功能性引脚连至其他电路,所以,经过初始化编程后的单片机就成了一片通用的替换芯片,在应用中用户无需对板上的单片机进行编程,自然也就不必购买对应的编程器。
负压驱动电路设计
在早先的一些文章中已经介绍过了多种生成负压的方法,例如使用单片机输出的PWM信号驱动一个Buck-Boost电路生成负压并使用单片机内的A/D转换器控制电压的稳定输出。在没有单片机的情况下也可以使用专用的Boost正压升压芯片配合电容与二极管做电压反转输出电路以生成所需的负压。以上两种电路都有各自的缺点,使用单片机驱动的优点是成本较低,但是大部分单片机可输出的、有实际应用价值PWM输出频率都很难达到500KHz以上,频率上不去就造成电感量降不下来,外观上就表现为电感尺寸变大,电流输出能力也不强。同时生成的负电压的反馈需要单片机内的A/D来完成软件检测工作,造成单片机负担。而Boost正压升压芯片后接电压反转电路的方案解决了电路高频化的问题,成本也很低廉,但缺点是电压反馈连接的是正输出端,在输出电流有明显变动的情况下,会出现负输出电压输出不稳定,造成明显的电压波动,仅适合在一些对输出电压波动要求不高的电路中使用。
本制作则在以前的基础上做了一个本质的改进,那就是使用了专用的带负压反馈的Boost驱动芯片,高效地完成了稳定的负高压的生成工作。本制作所需要的负压最高只需要生成-30V左右的电压,且电流需求不大,只需要几十mA,所以在驱动芯片的选型上,选择使用了早先为驱动LCD专门设计的负压升压电路作为本制作的专用芯片。
由于负压生成芯片可选择的范围很少,这里实际选择的是比较常见的由Linear公司生产的LT1617负压升压芯片。LT1617 属于微功率的负压转换芯片,采用SOT-23-5脚封装,最高工作电流为350mA ,输入电压范围为1.2V~15V,最高输出电压为-34V,整个电路结构非常简单,传统的正压Boost结构生成的高压方波电路通过由C3与D1、D2的充电泵电路转换为负压并通过电阻反馈电路输入到芯片的负反馈引脚内进行测量调整。此类电路仅需要1只10~20uH的微型电感即可,所有零件都可以使用微型的贴片零件,所以整个电路占据PCB面积极小,转换效率也很高,通过实际电路测试后发现整体电路工作稳定、输出电压平稳、转换效率高,电路中无零件发热,确实可以应用在一些小尺寸VFD驱动电路的负压生成上。
负压电路的副方案也是使用单片机来生成,单片机的内部定时器在程序控制下输出占空比可调的PWM信号,用来驱动Boost电路中的主开关部分,以完成生压工作,而输出电压反馈电路则与LD8140制作中的一致,使用电阻分压网将负压转成单片机的片内A/D转换器可处理的正电压,输入到单片机中处理,单片机中的相应程序根据输出电压的高低情况,动态调整输出的PWM信号的实际占空比,以实现稳定的负电压输出。考虑到单片机输出的PWM频率不可能很高,所以在同等电气规格下,需要选择使用容量较高的电感,造成电感体积增大,所以在PCB布线时,增加了一个5*5尺寸的电感焊盘,以适应更大体积的电感。
电压输入保护电路
作为一个通用的模块,为了保护模块不因过压或过流而损坏,制作电路中增加了一组可选的简易电压输入保护电路。由于本制作的VFD屏尺寸较大,所以PCB上有足够的空间可以布下这部分电路的相关零件。
过压保护部分主要是由稳压二极管与带阻PNP三极管以及一个PMOSFET组成的,其中稳压二极管用于过压检测,带阻三极管则将检测量转成开关量以控制PMOSFET的开启与关断,从而控制整个内部电路的供电状态。正常电压情况下,开关三极管是截止的,而PMOSFET管则处于开启状态,整个内部电路获得电压供应。当外部输入电压超过稳压管电压时,稳压管导通,使得PNP三极管也导通,此时PMOSFET的门极被拉到高电平,造成MOSFET截止,断开内部电路的电源供应,起到保护作用。
过压保护部分的电路是一个可选的电路,可通过短焊板上的跳线跳过保护,读者可根据实际需要确定是否焊接这部分电路的元件。在电源电路中同时串接了一个SS14低压降肖特基二极管防止电源反接,可在没有安装过压保护电路的时候焊接此二极管。同时电路中依旧使用传统的1206的自恢复保险丝作为过流保护器件。
电路图及零件表
整体电路设计总体来看还算简洁,电路中的大部分模块都是前面已经介绍过的各个功能电路,其中的灯丝与负高压之间还需要存在一个“截止偏压”,这部分电路还是使用原先旧有的电路实现方法,即通过在栅极和阳极电压供电电路中增加一个5V的稳压二极管串联限流电阻后中间搭接到两个3K电阻分压的灯丝中心电位来实现。
通过自制电路试验板后的实际测试结果表明,整个模块电路工作稳定,板上零件在正常工作状态下长时间连续工作也无任何发热现象。而且整机屏幕显示亮度高,各字段显示亮度均匀,整屏显示无任何闪烁。
元件表:
数量 |
元件值 |
元件名称 |
元件标号 |
1 |
BAV99 |
BAV99SOT23 |
D2 |
1 |
|
D-FILL-SOD-323W |
D4 |
1 |
|
JUMPER-2SMD-NO |
JP2 |
1 |
|
M05PTH |
JP1 |
1 |
|
MA03-2 |
SV1 |
1 |
|
SJ2W |
SJ1 |
3 |
0u1 |
CAP0805 |
C2, C3, C5 |
1 |
0u22 |
CAP0805 |
C9 |
3 |
1k |
RESISTOR_EUR0805 |
R6, R7, R10 |
2 |
1uF |
CAP0805 |
C12, C13 |
1 |
2k2 |
RESISTOR_EUR0805 |
R23 |
2 |
3k |
RESISTOR_EUR0805 |
R18, R24 |
4 |
4u7 |
CAP0805 |
C7, C8, C10, C17 |
1 |
5V1 |
D-ZENERSOD80C |
DZ1 |
6 |
10k |
RESISTOR_EUR0805 |
R15, R16, R20, R21, R25, R26 |
1 |
10nF |
CAP0805 |
C16 |
4 |
10uF |
CAP0805 |
C1, C4, C14, C15 |
1 |
24k9 |
RESISTOR_EUR0805 |
R22 |
1 |
51k/33k |
RESISTOR_EUR0805 |
R1 |
2 |
100K |
RESISTOR_EUR0805 |
R2, R28 |
1 |
100R |
RESISTOR_EUR0805 |
R14 |
4 |
100k |
RESISTOR_EUR0805 |
R3, R11, R12, R19 |
2 |
100uF |
CPOL-EUB/3528-21R |
C18, C19 |
5 |
150R |
RESISTOR_EUR0805 |
R4, R5, R8, R9, R27 |
1 |
220p |
CAP0805 |
C11 |
1 |
619k |
RESISTOR_EUR0805 |
R17 |
1 |
680nF |
CAP0805 |
C6 |
1 |
D-ZENERSOD80C |
D-ZENERSOD80C |
DZ2 |
1 |
DTB113ZK-1K-10K |
DTB113ZK-1K-10K |
T1 |
1 |
DTC114EKA-10K-10K |
DTC114EKA-10K-10K |
T2 |
1 |
FUTABA-10-MT-20GK |
FUTABA-10-MT-20GK |
VFD-10-MT-20GY |
1 |
IN4148 |
D-FILL-SOD-323W |
D3 |
1 |
INDUCTANCE_US3*3 |
INDUCTANCE_US3*3 |
L2 |
1 |
INDUCTANCE_US5*5-KIT |
INDUCTANCE_US5*5-KIT |
L1 |
1 |
LM9022 |
LM9022 |
IC3 |
1 |
LT1617 |
LT1617 |
IC4 |
1 |
M01PTH |
M01PTH |
JP4 |
1 |
PT6312LQ |
PT6312LQ |
IC2 |
5 |
PTR1TP20R |
PTR1TP20R |
-HV, GND, RST, SWIM, VCC |
3 |
SI2301DS-P |
SI2301DS-P |
Q1, Q2, Q5 |
3 |
SI2302DS-N |
SI2302DS-N |
Q3, Q4, Q6 |
1 |
SS14 |
DIODE-SCHOTTKY_ |
D1 |
1 |
STM8S103FXF3 |
STM8S103FXF3 |
IC1 |
1 |
VARISTORCN1206 |
VARISTORCN1206 |
R13 |
安装调试
由于本制作设计中将除插针以外的所有零件全部设计在VFD屏幕下方,所以应该先焊相关零件,调试无误后再进行屏幕焊接。焊接元件之前,依旧建议先使用耐高温的聚酰亚胺胶带将VFD屏幕焊接插孔、排针孔等过孔部分双面都保护起来,避免焊接中出现意外堵孔。
元件焊接时,一般建议先焊接灯丝电压生成电路,焊接完成后,先在灯丝两输出端连接一小功率电阻或者小电珠模拟VFD灯丝,观察电路工作是否正常,有示波器的用户则可以直接测量输出波型后进行判断。完成灯丝电路后再焊接负高压生成电路,板上对应位置处都设置有输出电压的测试点,负高压电路的输出直接使用万用表即可判断是否工作。以上两电压电路测试前要注意先焊接上EN引脚对应的相关元件,以使两电压电路工作使能。完成了两电压生成电路后,才建议继续焊接μPD16312主芯片,它是QFP-44脚封装,一定要注意起点方向与所有引脚与焊盘的对齐,焊接此芯片时的烙铁头一般推荐使用2mm的C型头或者K型的刀头烙铁进行焊接,焊接完成后,清洗助焊剂后用放大镜进行仔细检查后再通电进行测试。
完成电路焊接,应先确保电路测试无误后,才可焊接VFD屏,测试过程中可以使用前几篇制作中提及的先将VFD屏的引脚插入安装孔后再平推施力的方式确保接触连接后进行测试。最后焊接屏幕引脚时,由于VFD屏是长直脚规格的,在焊接前需要进行折弯操作。为了确保引脚折弯的一致性,可以使用下面简单的方法。将屏幕引脚放在桌面上的边缘部分,屏幕玻璃屏部分显示面向下放在桌面外,使用钢直尺在引脚距离玻璃屏体2mm位置处水平向下压紧引脚,最后果断地用另一只手向上推玻璃屏直到引脚成90度时即可,这样一次性折弯操作获得的引脚排列整齐美观,也不容易折断。
在PCB正面焊接上VFD屏幕后,为避免屏幕与正面下方的零件接触及填充其中的空隙,应在屏幕下方增加一层缓冲层。可在屏幕下方PCB的空隙处贴几片小的泡棉双面胶将屏幕与PCB板粘在一起,起到保护作用。
在标准5V供电的情况下,视实际显示笔段的数量多少,本模块的正常工作电流范围大约为120mA~160mA,完全可以直接由Arduino主板直为其供电。如果实际测试发现电流过高,则应仔细检查线路及所使用的零件质量。
由于本模块引出脚分成两组,分别放于屏幕中心下方与屏幕右侧,但是连接是完全相同的,可数据实际线路走线方便的情况进行选择。模块只使用了μPD16312电路中的显示部分,对于其中的开关按键功能、LED等部分没有引出,因为这部分功能在Arduino中都可以轻松自行实现,为了简化模块,就直接省略掉了。
本制作无需调试,只要两组主要的驱动电压生成正常,μPD16312芯片焊接正确,连接上电路与Arduino模块后,使用简单测试程序即可确保正确显示对应的数字。默认的驱动程序为最简测试程序,用于在屏幕上直接显示0~9。仅提供最简程序的目的一来是确保程序的简单化,使初学者易懂、易理解,二来给读者的自行开发留下了空间,有兴趣的读者可以在最简程序的基础上开发出更多的应用。
μPD16312数据接口及软件层应用
μPD16312的数据接口层比较简单,由于我们这个模块主要作为显示用途,重点是在接收外部输入数据的部分,所以这里仅对数据输入的命令格式及发送顺序做一个简单的说明,更多的细节请自行参考16312的说明书。
芯片数据输入接口为简单的3线型接口,分别是片选、时钟、数据输入三根线,结构简单。片选线STB低电平时有效,此时可以通过时钟信号CLK与数据输入信号DIN接收数据,每个数据位在时钟上升沿逐一送入芯片内部进行处理。数据依照功能不同命令字节与纯数据字节两类,总共有4种不同的命令,分别是:1、“显示模式设置命令”,功能是确定目前的扫描模式的笔段与字段数量的,以高位固定"00",末尾三位确定扫描模式,例如00xxx111代表使用11个字段,11个笔段扫描方式;2、“数据设置命令”,功能是确定当前6312的数据读写模式,以及读写内容,可以将外部数据输入到内部存储器中用于数据显示,也可以用来控制LED端口的输出以及读入开关量与键盘矩阵数据;特别值得一提的是其中的b2位,代表着内存地址自增模式是否有效,当为有效状态时,一次最多可以连续输入2个字节数据,可提高数据传输效率;3、“地址设置命令”,功能是设置当前所需写入数据的内存块起始地址,命令高位固定"11",末尾四位则代表起点地址值;4、“显示控制命令”,功能是确定扫描显示周期与开启/关闭显示,其中通过调整显示周期数值,可避免出现扫描拖尾,也可调整显示亮度。此命令高位固定“10”,b3位为1时代表显示开启,末尾三位则代表扫描周期占空数值;
芯片上电后应先等待至少200ms后方可进入初始化设置阶段,基本的初始化过程包含连续的四个命令与数据组合,分别是“命令2:确定写入RAM数据”->“命令3:清除内存数据”->“命令1:设置显示格式”->“命令4:开启显示以及设置扫描占空数值”;完成以上四个命令后即可进入正常的显示阶段。在每次写入显示数据时,都应该遵循标准的四个命令与数据组合,其中“命令2:确定是读/写数据及地址增长方式”->“命令3:进行实际的数据读写工作”->“命令1:设置显示格式”->“命令4:开启显示以及设置扫描占空数值”,这样一个标准的循环即可完成数据的一次读/写工作。
对于本模块,设置的显示格式为10个字段+12个笔段模式,由于12个笔段需要至少占用2个字节空间,所以数据写入模式中选择地址自增模式,这样可以在一个命令后尾随2个字节的数据,一次性写完一个数字所需的显示数据,扫描占空周期默认设置为14/16,以确保显示亮度。
基本的数据驱动代码非常简单,完成了显示功能所需的基本底层代码,代码采用全C编写,简单易懂,可以很容易地转换到其他处理器平台使用。用户代码在调用底层代码前应先确定用于驱动的I/O口,并自行完成I/O口的初始化工作。在代码的最上方使用宏定义功能设置了三线I/O引脚分别设置为高/低电平对应的定义,可根据实际的电气连接情况进行修改。
如果工作环境较恶劣,为了防止干扰信号影响模块的正常工作,可考虑在信号线上串联电阻,也可同在信号线上设置上拉电阻,可以起到较好的抗干扰作用。
使用滤色片
为了改善VFD显示屏单调的绿色显示效果,专门为此模块定制了同尺寸的蓝色滤色片。安装滤色片的方法有很多,通常建议使用薄型的全透明双面胶带剪成小片贴于屏幕表面四角进行固定。经过滤色片的过滤,VFD显示的颜色由原先的亮绿色变了天空蓝,亮度衰减小,视觉上感觉更加舒适。与通常制作中使用的透明有色亚克力相比,滤色片优点更多:首先,滤色片厚度只有零点几毫米,不仅可以提供颜色过滤效果,同时对屏幕的显示亮度无明显的衰减,而有色透明亚克力通常规格都有2mm或以上的厚度,透光性较低,会显著降低屏幕亮度,实际效果无法与专用滤色片相比。
对于有条件的用户也可尝试使用其他颜色的滤色片,通常除了蓝色滤色片外,还有几种比较实用的滤色片颜色,分别是酒红色滤色片滤成白色、黄绿色滤色片过滤成草绿色、暗粉色滤色片过滤成紫色、淡兰色过滤成蓝绿色,供爱好者参考。
实际对本制作有兴趣的读者,还可以考虑如何为此模块设计配套的外壳,不仅可以起到保护作用,也可使整个模块的外观更漂亮。
制作总结
本制作给读者提供了一个极通用的VFD显示屏模块,功能上足以取代通常的8字LED或LCD数码管显示模块,显示效果更是秒杀这些传统显示器件,实在是Arduino爱好者不可多得的一件“宝物”。利用这一模块,Arduino爱好者们可以跳过驱动VFD所需的各种烦琐的灯丝、高压、扫描等细节,直接将精力放在应用程序开发上,更好地玩转Arduino系统。
希望能有更多的Arduino爱好者能够充分发挥自己的聪明才智,利用好这一模块开发出属于他们自己的精彩应用。今后如果有时间与精力,将继续开发出更多的VFD应用模块,同时为这些模块设计配套的保护外壳等相关配件。本文相关软件、硬件资料及后期开发进度,请关注本人的电子DIY博客——http://vfdclock.jimdo.com。
全文完 2013年03月10日
本文已在《无线电》杂志2013年第5期发表。
Write a comment