一、必须组件
– 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不亮。
1098

被折叠的 条评论
为什么被折叠?



