Arduino搭建盲猜数字小游戏

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); 
  }   
}
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值