目录
这是本系列的第二章,也是最后一章
1.安装对应软件
首先先安装对应软件Arduino
网址Arduino - 首页
2.学习软件的使用
安装结束,我们进入首页选择我们对应的开发板Arduino UNO

选择之后就会将UNO开发板作为默认(UNO开发板适合初学者简单易上手)
并将开发板连接到电脑(注意:后面一定带有后缀,我前面买的盗版无法识别就没有后缀)
如果没有出现开发板(com)请检查链接器是否连接好或者开发板是否接触不良。
3.知识准备
delay(1000)是延迟1000毫秒(1秒)
digitalWrite(2, LOW(HIGH))是将数字引脚写HIGH(高电平)或LOW(低电平),2是开发板的几接口
pinMode(2, OUTPUT)是通过pinMode()函数,你可以将Arduino的引脚配置为以下三种模式:
输出(OUTPUT)模式
输入(INPUT)模式
输入上拉(INPUT_PULLUP)模式
case........break函数为 break 的核心用途:
让每个 case 成为「独立分支」,执行完后不再往下走;
避免无意的「穿透效应」(如果需要刻意穿透,也可以不写 break,但要加注释说明)。
default 的作用:处理「所有未匹配的情况」
default 是 switch 的「默认分支」—— 当 switch 后的变量值,没有匹配到任何一个 case 的取值时,会执行 default 里的代码。
awnser = random(5);指在符合条件时随机出现一个数(在5里面)
askButtonState = digitalRead(askButton);是指将askButton的电平状态存到变量askButtonState中
4.准备道具
– Arduino Uno控制器
– 5个LED
– 5个220 欧姆电阻
– 1个10k欧姆电阻
– 连接线
– 面包版
– 1个按钮
然后我们连接面包板和UNO板子

注意一定是10K电阻,因为电阻帮隔绝电压,防止UNO板子烧坏(具体原理可以看上一篇)
5.代码
const int redLed = 2;//引脚2链接红色灯
const int yellowLed = 3;//引脚3链接黄色灯
const int whiteLed = 4;//引脚4链接白色灯
const int blueLed = 5;//引脚5链接蓝色灯
const int greenLed = 6;//引脚6链接绿色灯
const int askButton = 12;//引脚12
// initialize Variables
int askButtonState = 0;
int awnser = 0;
void setup() {
// put your setup code here, to run once:
pinMode(redLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(whiteLed, OUTPUT);
pinMode(blueLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(askButton, INPUT);}
void loop() {
// put your main code here, to run repeatedly:
askButtonState = digitalRead(askButton);
if (askButtonState == HIGH) {
digitalWrite(redLed, LOW); // clear Leds to show new awnser
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;
askButtonState = digitalRead(askButton);
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;
}
}
}
接下验证 ,左上角的勾是验证符号

验证成功后就上传(勾旁边的箭头就是上传)

6.欣赏成果
Arduino 按钮随机LED成果
7.心得
我认为这是个新的开始我也遇到了很多问题(见下面),但是当我成功做出来了后感到非常自豪,所以我认为在这个时代人类要不断走出自己的舒适圈,才能前进,我还会更新的,最后点一下赞,一起加油吧,,我是FOX,励志做一个博学的萌新
8.花絮
这是我最喜欢的部分,这一部分是我在做的时候遇到的问题
问题一:
我想把灯变两个两个亮,于是我将代码改成了
digitalWrite(redLed, LOW);
digitalWrite(whiteLed, LOW);
digitalWrite(blueLed, LOW);
digitalWrite(yellowLed, HIGH);
digitalWrite(greenLed, HIGH);
将LOW改成HIGH这样就是高电平,也是变亮
问题二:
awnser = random(5);指在符合条件时随机出现一个数(在5里面)
这个一开始我看不懂,于是在百度的帮助下
我发现random函数就是随机生成,详细可以看下面网站
问题三:
如果按按钮却没有亮,可能是因为没随机到,比较全随机

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



