1.本文整理自视频 太极创客 零基础入门学用Arduino 第一部分 合辑.
需要的硬件:一个Arduino Uno开发板、一个200-500欧姆电阻、一个共阴极数码管、一个按键、数条杜邦线、跳线
2.显示数字其实就是显示各个数码管,注意需要在点亮led后进行要给清理显示内容的操作,下面介绍了显示1.2.3的四路。先在setup()里面设置IO为输出模式,然后在loop()里面设置显示。
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}
void loop()
{
//显示数字1
digitalWrite(4,HIGH)
digitalWrite(7,HIGH)
delay(500)
//清理显示内容
digitalWrite(3,LOW)
digitalWrite(4,LOW)
digitalWrite(5,LOW)
digitalWrite(6,LOW)
digitalWrite(7,LOW)
digitalWrite(8,LOW)
digitalWrite(9,LOW)
delay(500)
//显示数字2
digitalWrite(3,HIGH)
digitalWrite(4,HIGH)
digitalWrite(5,HIGH)
digitalWrite(8,HIGH)
digitalWrite(9,HIGH)
delay(500)
//清理显示内容
digitalWrite(3,LOW)
digitalWrite(4,LOW)
digitalWrite(5,LOW)
digitalWrite(6,LOW)
digitalWrite(7,LOW)
digitalWrite(8,LOW)
digitalWrite(9,LOW)
delay(500)
//显示数字3
//…………
//清理显示内容
digitalWrite(3,LOW)
digitalWrite(4,LOW)
digitalWrite(5,LOW)
digitalWrite(6,LOW)
digitalWrite(7,LOW)
digitalWrite(8,LOW)
digitalWrite(9,LOW)
delay(500)
}
//用while语句来替换掉一些重复的代码
void setup()
{
int pinNumber=3;
while(pinNumber<=9)
{
pinMode(pinNumber,OUTPUT);
pinNumber=pinNumber+1;
}
}
//替换掉如下代码
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}
3.if和if……else和switch case的区别
4.自定义函数。清除显示函数
void setup()
{
int pinNumber=3;
while(pinNumber<=9)
{
pinMode(pinNumber,OUTPUT);
pinNumber=pinNumber+1;
}
randomSeed(analogRead(A0));//产生真的随机数
}
void loop()
{
int myNumber;
if(!digitalRead(2))//如果2脚为低电平,即按下
{
myNumber=getRandomNumber(0,10);//产生随机数字0-9
}
displayNumber(myNumber);//显示数字
delay(500);
displayClear();//清除显示
delay(500);
}
//下面都是自定义的三个函数
int getRandomNumber(int minNumber,int maxNumber)//定义一个返回值是整型的函数
{
int randomNumber;//定义整型变量randomNumber
randomNumber=random(minNumber,maxNumber);//运用Arduino自带的函数random取随机值
Serial.print("randomNumber = ");//串口打印字符串"randomNumber ="
Serial.println(randomNumber);//串口打印randomNumber的值,并换行
Serial.println("");//串口打印空白,并换行
return randomNumber;//将变量randomNumber的值返回函数
}
void displayClear()//定义清除显示的函数
{
//清理显示内容
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
}
void displayNumber(int ledNumber)//定义通过判断显示0-9
{
switch (ledNumber)
{
case 1://显示数字1
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
break;
case 2://显示数字2
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(8,HIGH);
break;
case 3://显示数字3
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
break;
///
case 4://显示数字4
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
break;
case 5://显示数字5
digitalWrite(3,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
break;
case 6://显示数字6
digitalWrite(3,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
break;
case 7://显示数字7
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
break;
case 8://显示数字8
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
break;
case 9://显示数字9
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
break;
case 0://显示数字0
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
break;
default:
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
}
}