注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。
前言:学习使用数码管。
1.数码管介绍
数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point),其基本单元是发光二极管。
也就是说数码管是有多个二极管封装成的一种器件,有共阴极数码管和共阳级数码管两种,其原理图如下:
2.数码管驱动原理
数码管有共阴极数码管和共阳级数码管两种,其中区别在于:
共阴极数码管:封装的二极管的阴极接在一起,接在GND,只要在在对应的二极管的阳极接上高电平即可导通,数码管相应位置亮起。
共阳级数码管:封装的二极管的阳极接在一起,接到VCC,只要在在对应的二极管的阴极接上低电平即可导通,数码管相应位置亮起。
3.实验内容及实物连接图
实验内容:采用共阳数码管显示数字0到9。
实物连接图:
4.驱动代码
int num=0;
void seg(int num_show);
void setup() {
// put your setup code here, to run once:
for(int i=4;i<12;i++)pinMode(i,OUTPUT);
Serial.begin(9600);
}
void loop()
{
seg(num);
num=num+1;
delay(1000);
Serial.println(num);
if(num==6)
{
num=0;
digitalWrite(6, HIGH);delay(800);
digitalWrite(6, LOW);delay(100);
digitalWrite(6, HIGH);delay(800);
digitalWrite(6, LOW);delay(100);
digitalWrite(6, HIGH);delay(800);
}
}
void seg(int num_show)
{
switch(num_show)
{
case 0 : num_show_0(); break;
case 1 : num_show_1(); break;
case 2 : num_show_2(); break;
case 3 : num_show_3(); break;
case 4 : num_show_4(); break;
case 5 : num_show_5(); break;
}
}
void num_show_0()
{
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
void num_show_1()
{
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
}
void num_show_2()
{
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
void num_show_3()
{
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
void num_show_4()
{
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
void num_show_5()
{
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
5.仿真视频
数码管测试视频
上一篇:Arduino UNO R3自学笔记14 之 Arduino使用HC-SR04模块如何测量距离?
下一篇:Arduino UNO R3自学笔记16 之 Arduino的定时器介绍及应用