项目3〓传感器显示装置的设计与制作

知识目标

◆认识一位数码管、四位数码管、8×8点阵、LCD1602、OLED等显示模块。

◆了解一位数码管等显示模块的工作原理与电路连接。

◆掌握Arduino Uno开发板编程控制一位数码管等模块编程显示的方法和技巧。

技能目标

◆懂一位数码管等显示模块的使用。

◆会使用Arduino Uno开发板编程控制一位数码管等模块的显示。

◆能使用Arduino Uno开发板和显示模块开发项目。

素质目标

◆具备显示电路制作的安全意识和操作规范。

◆具有精益求精的工匠精神。

◆养成良好的作业行为习惯。

工作任务

◆任务31挡位显示装置的设计与制作

◆任务32数字显示装置的设计与制作

◆任务33点阵图文显示装置的设计与制作

◆任务34液晶屏显示装置的设计与制作

◆任务35OLED屏显示装置的设计与制作


任务31挡位显示装置的设计与制作

1. 工作任务


【任务目标】

使用Arduino Uno开发板编程实现一位数码管的数字循环显示。

【任务描述】

数码管是一种用于显示数字的电子元件,例如,电磁炉、全自动洗衣机、热水器、电子钟等的显示屏上都能见到数码管的身影。因此,掌握数码管的编程控制技术是非常必要和有用的。

本次任务采用Arduino Uno开发板作为控制器,编程实现对一位数码管数字循环显示的控制。

【任务分析】

一位数码管可以看成是由八段发光二极管组成的电子元件模块,所以在使用时与发光二极管类似,一般也要连接限流电阻,避免因电流过大而造成电子元件的损害。本次任务用的是共阴极的数码管,共阴极数码管在应用时应将公共极接到GND,当某一字段发光二极管的阳极为低电平时,相应字段就熄灭; 当某一字段的阳极为高电平时,相应字段就点亮。电路原理如图31所示。




图31挡位显示装置电路原理图



2. 任务资料


2.1认识数码管




图32数码管



数码管是一种可以显示数字和其他一些字符信息的常用电子元件(图32)。数码管也称LED数码管,是由多个发光二极管封装在一起组成,按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。

共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段点亮; 当某一字段发光二极管的阴极为高电平时,相应字段不亮。

共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极的数码管,共阴极数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段点亮; 当某一字段发光二极管的阳极为低电平时,相应字段不亮。



图33一位数码管(1)





2.2认识一位数码管

一位数码管是常见的用来显示数字的电子元件,如图33所示。通常由八段发光二极管封装在一起组成“8”字形状,外加一个小数点。数码管每一段都是一个独立的LED,通过控制相应段LED的亮灭使其组成相应数字形状来显示数字。

一位数码管的8个LED并联在一起,根据公共引脚的不同,分为共阳极数码管和共阴极数码管两种。其区别就是公共引脚是LED灯的正极还是负极。

3. 工作实施

3.1材料准备

本次任务所需电子元器件材料清单如表31所示。



表31任务31所需电子元器件材料清单


序号元器件名称规格数量


1开发板Arduino Uno1个
2数据线USB1条
3面包板MB2011个
4一位数码管共阴极1个
5色环电阻1kΩ1个
6跳线引脚若干


3.2安全事项


(1) 作业前请检查是否穿戴好防护装备(护目镜、防静电手套等)。

(2) 检查电源及设备材料是否齐备、安全可靠。

(3) 检查开发板、一位数码管、色环电阻有无损坏或异常。

(4) 作业时要注意摆放好设备材料,避免伤人或造成设备材料损伤。

3.3任务实施


第1步: 使用Fritzing软件设计和绘制电路设计图,如图34所示。根据电路设计图,完成Arduino Uno开发板及其他电子元件的硬件连接。




图34一位数码管电路设计



第2步: 创建Arduino程序“demo_3_1”。程序代码如下。

int a=7;   //定义数字接口7 连接a 段数码管

int b=6;   //定义数字接口6 连接b 段数码管

int c=5;   //定义数字接口5 连接c 段数码管

int d=10;   //定义数字接口10 连接d 段数码管

int e=11;   //定义数字接口11 连接e 段数码管

int f=8;   //定义数字接口8 连接f 段数码管

int g=9;   //定义数字接口9 连接g 段数码管

int dp=4;   //定义数字接口4 连接dp 段数码管

void digital_0(void) //显示数字5

{

unsigned char j;

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,LOW);

digitalWrite(dp,LOW);

}

void digital_1(void) //显示数字1

{

unsigned char j;

digitalWrite(c,HIGH);   //给数字接口5 引脚高电平,点亮c 段

digitalWrite(b,HIGH);   //点亮b 段

for(j=7;j<=11;j++)//熄灭其余段

digitalWrite(j,LOW);

digitalWrite(dp,LOW);   //熄灭小数点dp段

}

void digital_2(void) //显示数字2

{

unsigned char j;

digitalWrite(b,HIGH);

digitalWrite(a,HIGH);

for(j=9;j<=11;j++)

digitalWrite(j,HIGH);

digitalWrite(dp,LOW);

digitalWrite(c,LOW);

digitalWrite(f,LOW);

}

void digital_3(void) //显示数字3

{

digitalWrite(g,HIGH);

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(dp,LOW);

digitalWrite(f,LOW);

digitalWrite(e,LOW);

}

void digital_4(void) //显示数字4

{

digitalWrite(c,HIGH);

digitalWrite(b,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

digitalWrite(dp,LOW);

digitalWrite(a,LOW);

digitalWrite(e,LOW);

digitalWrite(d,LOW);

}

void digital_5(void) //显示数字5

{

unsigned char j;

digitalWrite(a,HIGH);

digitalWrite(b, LOW);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e, LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

digitalWrite(dp,LOW);

}

void digital_6(void) //显示数字6

{

unsigned char j;

for(j=7;j<=11;j++)

digitalWrite(j,HIGH);

digitalWrite(c,HIGH);

digitalWrite(dp,LOW);

digitalWrite(b,LOW);

}

void digital_7(void) //显示数字7

{

unsigned char j;

for(j=5;j<=7;j++)

digitalWrite(j,HIGH);

digitalWrite(dp,LOW);

for(j=8;j<=11;j++)

digitalWrite(j,LOW);

}

void digital_8(void) //显示数字8

{

unsigned char j;

for(j=5;j<=11;j++)

digitalWrite(j,HIGH);

digitalWrite(dp,LOW);

}

void digital_9(void) //显示数字9

{

unsigned char j;

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e, LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

digitalWrite(dp,LOW);

}

void setup()

{

int i;   //定义变量

for(i=4;i<=11;i++)

pinMode(i,OUTPUT);   //设置4~11 引脚为输出模式

}

void loop()

{

while(1)

{

digital_0();   //显示数字0

delay(1000);   //延时1s

digital_1();   //显示数字1

delay(1000);   //延时1s

digital_2();   //显示数字2

delay(1000); //延时1s

digital_3();   //显示数字3

delay(1000); //延时1s

digital_4();   //显示数字4

delay(1000); //延时1s

digital_5();   //显示数字5

delay(1000); //延时1s

digital_6();   //显示数字6

delay(1000); //延时1s

digital_7();   //显示数字7

delay(1000); //延时1s

digital_8();   //显示数字8

delay(1000); //延时1s

digital_9();   //显示数字9

delay(1000); //延时1s

}

}


第3步: 编译并上传程序至开发板。查看运行效果,如图35所示。




图35任务31运行效果



4. 技术知识


4.1一位数码管







图36一位数码管(2)



一位数码管(图36)实际上是由七个发光二极管组成的“8”字形构成的,再加上旁边的小数点总共就是8段发光二极管。一般地,这8段分别由字母a、b、c、d、e、f、g、dp来表示。当这些发光二极管段加上电压后,就会发亮,形成我们眼睛看到的字样。一位数码管有一般亮和超亮等型号模块,也有0.5寸、1寸等不同尺寸的模块。小尺寸的显示笔画常用一个发光二极管组成,而大尺寸的显示笔画由两个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。



4.2共阴极与共阳极数码管


发光二极管的阳极连接到一起并接到电源正极的称为共阳,发光二极管的阴极连接到一起并接到电源负极的称为共阴。图37所示是共阴极和共阳极一位数码管电路原理图。




图37共阴极与共阳极数码管


5. 拓展任务

使用Arduino Uno开发板、一位数码管以及电位计设计与制作一个数字显示装置。当旋转电位计时,一位数码管显示对应的数字,如图38所示。




图38任务31拓展训练





6. 工作评价


6.1考核评价







考 核 内 容考 核 评 分

项目内容配分得分批注



工作

准备

(30%)
能够正确理解工作任务31的内容、范围及工作指令10
能够查阅和理解技术手册,确认一位数码管、色环电阻技术标准及要求5
使用个人防护用品或衣着适当,能正确使用防护用品5
准备工作场地及器材,能够识别工作场地的安全隐患 5
确认设备及工具、量具,检查其是否安全及能否正常工作 5

实施

程序

(50%)
正确辨识工作任务所需的Arduino Uno开发板、一位数码管、色环电阻10
正确检查Arduino Uno开发板、一位数码管、色环电阻有无损坏或异常10
正确选择USB数据线10
正确选用工具进行规范操作,完成装置安装、调试和维护10
安全无事故并在规定时间内完成任务 10

完工

清理

(20%)
收集和储存可以再利用的原材料、余料5
按照维护工作程序,清洁垃圾、清洁和整理工作区域5
对开发板、一位数码管、色环电阻、工具及设备进行清洁5
按照工作程序,填写完成作业单5

考核

评语



考核人员: 日期:年月日考核

成绩


6.2导师评价






评价项目评 价 内 容评 价 成 绩备注


工作准备任务领会、资讯查询、器材准备□A □B □C □D □E
知识储备系统认知、原理分析、技术参数□A □B □C □D □E
计划决策任务分析、任务流程、实施方案□A □B □C □D □E
任务实施专业能力、沟通能力、实施结果□A □B □C □D □E
职业道德纪律素养、安全卫生、器材维护□A □B □C □D □E

其他评价
教师签字: 日期: 年月日

注: 在选项“□”里打“√”,其中 A: 90~100分; B: 80~89分; C: 70~79分; D: 60~69分; E: 不合格。


任务32数字显示装置的设计与制作

1. 工作任务


【任务目标】

使用Arduino Uno开发板编程控制四位数码管的显示。

【任务描述】

四位数码管是一种半导体发光器件,其基本单元是发光二极管。从外观上看,像是由4个一位数码管拼接在一起组成。事实上四位数码管的内部电路已经被优化整合,其模块引脚与一位数码管引脚有所不同。

本次任务使用Arduino Uno开发板编程实现共阴极四位数码管的显示,并以此制作一个数字显示屏。

【任务分析】

使用开发板驱动四位数码管。驱动数码管限流电阻必不可少。限流电阻有两种接法,一种是在d1~d4阳极接,总共接4个。这种接法的好处是需求电阻比较少,但是会产生每一位上显示不同数字亮度会不一样(1最亮,8最暗)的情况。另外一种接法就是8个引脚都接上,这种接法亮度显示均匀,但是使用的电阻较多。

2. 任务资料


2.1认识四位数码管

四位数码管把4个一位数码管封装在一起,如图39所示。四位数码管的内部是将单个一位数码管的段选线a、b、c、d、e、f、g、dp对应连接在一起,公共极则相互独立。使用时分别通过控制不同的位选线(即单个一位数码管的公共极)来控制单个数码管的显示。以人眼难以分辨的速度进行刷新显示,即可达到四位数码管同时显示的效果。

2.2认识四位数码管引脚

四位数码管引脚分布如图310所示,其中1、2、3、4表示对应位数码管的公共极。a、b、c、d、e、f、g、dp引脚用于控制一位数码管的八段LED显示。




图39四位数码管




图310四位数码管引脚