【Arduino 按钮随机LED实验】

一、必须组件

– Arduino Uno控制器
– 5个LED
– 5个220 欧姆电阻
– 1个10k欧姆电阻
– 连接线
– 面包版
– 1个按钮

二、硬件连接

1.连线图
请添加图片描述
2.实际连接图请添加图片描述
注意
请添加图片描述

三、程序

用Arduino IDE导入该程序

const int redLed = 2;
const int yellowLed = 3;
const int whiteLed = 4;
const int blueLed = 5;
const int greenLed = 6;
const int askButton = 12;

int askButtonState = 0;
int awnser = 0;

void setup() {
  pinMode(redLed, OUTPUT);
  pinMode(yellowLed, OUTPUT);
  pinMode(whiteLed, OUTPUT);
  pinMode(blueLed, OUTPUT);
  pinMode(greenLed, OUTPUT);
  pinMode(askButton, INPUT);
}

void loop() {
  askButtonState = digitalRead(askButton);
  if (askButtonState == HIGH) {
    digitalWrite(redLed, LOW);
    digitalWrite(yellowLed, LOW);
    digitalWrite(whiteLed, LOW);
    digitalWrite(blueLed, LOW);
    digitalWrite(greenLed, LOW);
    delay(100);
    awnser = random(5);
    
    switch (awnser) {
      case 0: // no
        digitalWrite(greenLed, LOW);
        digitalWrite(yellowLed, LOW);
        digitalWrite(whiteLed, LOW);
        digitalWrite(blueLed, LOW);
        digitalWrite(redLed, HIGH);
        delay(1000);
        break;
      
      case 1: // rather not
        digitalWrite(redLed, LOW);
        digitalWrite(whiteLed, LOW);
        digitalWrite(blueLed, LOW);
        digitalWrite(greenLed, LOW);
        digitalWrite(yellowLed, HIGH);
        delay(1000);
        break;
      
      case 2: // maybe
        digitalWrite(redLed, LOW);
        digitalWrite(yellowLed, LOW);
        digitalWrite(blueLed, LOW);
        digitalWrite(greenLed, LOW);
        digitalWrite(whiteLed, HIGH);
        delay(1000);
        break;
      
      case 3: // rather yes
        digitalWrite(redLed, LOW);
        digitalWrite(whiteLed, LOW);
        digitalWrite(yellowLed, LOW);
        digitalWrite(greenLed, LOW);
        digitalWrite(blueLed, HIGH);
        delay(1000);
        break;
      
      case 4: // yes
        digitalWrite(redLed, LOW);
        digitalWrite(whiteLed, LOW);
        digitalWrite(blueLed, LOW);
        digitalWrite(yellowLed, LOW);
        digitalWrite(greenLed, HIGH);
        delay(1000);
        break;
    }
  }
}
 

四、最终演示效果

五、实验中的差错

我未将面包板中间不通电的两部分相连,导致LED部分不能造成一个回路,最终LED不亮。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值