数码管实验改成数字骰子实验
根据’’迷你强’的arduino数码管实验’,再连接一个按纽,做成数字骰子实验.
徽型按纽 一端接5V,另一端接A0模拟端口.
为了使主程序便于观看,把显示数字的功能做成了子程序.
void digital_0(void)
{
/*==============显示数字0==========*/
int n0[8]={0,0,0,0,0,0,1,1};
//定义数组通过0,1定义各数码管的明灭.
int z=0;
for (int x=2;x<=9;x++)
//采用循环方式方式点亮指定的数码管Led(数级中0为点亮),单位时间只点亮1个led
{
digitalWrite(x,n0[z]);
z++;
//点亮led语句,X为引脚数 n0[z]为数组z为0--8的变量,来依次读取数组中的值z++
if (z>=9) //防止变量z累加超过了8
z=0;
}
}
void digital_1(void)
{
/*=============display 1=========*/
int n1[8]={1,0,0,1,1,1,1,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n1[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_2(void)
{
/*============display 2==========*/
int n2[8]={0,0,1,0,0,1,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n2[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_3()
{
/*============dispaly 3=======*/
int n3[8]={0,0,0,0,1,1,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n3[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_4()
{
/*=========display 4======*/
int n4[8]={1,0,0,1,1,0,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n4[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_5()
{
/*=========display 5======*/
int n5[8]={0,1,0,0,1,0,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n5[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_6()
{
/*=========display 6======*/
int n6[8]={0,1,0,0,0,0,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n6[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_7()
{
/*=========display 7======*/
int n7[8]={0,0,0,1,1,1,1,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n7[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_8()
{
/*=========display 8======*/
int n8[8]={0,0,0,0,0,0,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n8[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_9()
{
/*=========display 9======*/
int n9[8]={0,0,0,0,1,0,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,n9[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_a()
{
/*=========display a======*/
int na[8]={1,1,0,0,0,1,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,na[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_b()
{
/*=========display b======*/
int nb[8]={1,1,0,0,0,0,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,nb[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_c()
{
/*=========display c======*/
int nc[8]={0,1,1,0,0,0,1,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,nc[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_d()
{
/*=========display d======*/
int nd[8]={1,0,0,0,0,1,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,nd[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_e()
{
/*=========display e======*/
int ne[8]={0,0,1,0,0,0,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,ne[z]);
z++;
if (z>=9)
z=0;
}
}
void digital_f()
{
/*=========display F======*/
int nF[8]={0,1,1,1,0,0,0,1};
int z=0;
for (int x=2;x<=9;x++)
{
digitalWrite(x,nF[z]);
z++;
if (z>=9)
z=0;
}
}
初始参数设置
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
//激活13号引脚,我们需要用它供电
for (int n=2;n<=9;n++)
{
pinMode(n,OUTPUT);
}
}
循环内容
void loop()
{
digitalWrite(13,HIGH);
int temp;
temp=analogRead(A0);
digital_0();
while (analogRead(A0)>1000); //如果读到模拟口A0的值为1000说明有按键按下
{ Serial.println(temp); delay(100);}
digital_1();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_2();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_3();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_4();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_5();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_6();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_7();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_8();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_9();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_a();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_b();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_c();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_d();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
digital_e();
while (analogRead(A0)>1000);
{ Serial.println(temp); delay(100);}
}
|