文章目录
1.前言
这个实验教程献给所有大一想努力的新手
2.欣赏成果
arduino 数组流水灯成果
3.安装对应软件
首先先安装对应软件Arduino
网址arduino.cc/en/software
4.学习软件的使用
安装结束,我们进入首页选择我们对应的开发板Arduino UNO

选择之后就会将UNO开发板作为默认**(UNO开发板适合初学者简单易上手)**

并将开发板连接到电脑**(注意:后面一定带有后缀,我前面买的盗版无法识别就没有后缀)**
如果没有出现开发板(com)请检查链接器是否连接好或者开发板是否接触不良。
5.知识准备
Serial.begin(9600); 设置波特率与电脑的保持一致(9600)
delay(500);是将灯泡延迟500毫秒
pinMode(2, OUTPUT)是通过pinMode()函数,你可以将Arduino的引脚配置为以下三种模式:
输出(OUTPUT)模式
输入(INPUT)模式
输入上拉(INPUT_PULLUP)模式
const byte LEDs[]={7,8,9};这是数组,他是从一个有三个数的集合(多少个数可以自己定义)
如果不定义从几开始,则从零开始,0,1,2分别对应里面的7,8,9.
6.准备道具
1 × Arduino UNO 板
3 × 330欧姆电阻
3 × LED

7.代码
const byte LEDs[]={7,8,9};
const byte total = 3;
byte index = 0;
void setup() {
// put your setup code here, to run once:
for(byte i = 0; i < total; i++) {
pinMode(LEDs[i], OUTPUT); //i的值将从0到4,依序
设置7,8,9引脚为输出引脚。
}
}
void loop() {
// put your main code here, to run repeatedly:
for (byte i = 0; i < total; i++) {
digitalWrite(LEDs[i], LOW);
}
digitalWrite(LEDs[index],HIGH);
index ++;
if (index == total)
index = 0;
delay(500);
}
接下验证 ,左上角的勾是验证符号

查看是否验证成功,然后上传

上传成功就可以欣赏到开头的结果了
8.心得
我认为这是个新的开始我也遇到了很多问题(见下面),但是当我成功做出来了后感到非常自豪,所以我认为在这个时代人类要不断走出自己的舒适圈,才能前进,如果觉得有帮助就请点一下赞,我火速更新下一章,我是FOX,励志做一个博学的萌新。
9.花絮
在看到代码的时候,我就已经在想代码有什么可以修改的了,于是这些问题就诞生了
问题一
首先如果LEDs数组变成了4个引脚即(7,8,9,10)需要修改哪些代码
和连接图?
那我觉得就需要理解代码了
const byte LEDs[]={7,8,9};
const byte total = 3;
这个就是数组,里面三个数都分别对应三个引脚,也是对应下面的3,也就是3个数(还有一些可以看前面的知识引导)
那我们只需要在对应的数组里面加上一个数就可以达到增加一个引脚的条件
const byte LEDs[]={7,8,9,10};
const byte total = 4;

甚至可以在这个基础上加5个,6个甚至更多
问题二
这个电路是通过if循环来来回循环的
if (index == total)
index = 0;
delay(500);
}
那我能不能让它的顺序打乱??
于是我将index = 0;
修改成了index = 3;
于是在第一次灯后,位于7,8号灯便不亮了,于是我有了结论,这是返回值,也就是说,数组里的数是由(0,1,2,3)对应我们(7,8,9,10)号引脚
所以我将代码再次修改
const byte LEDs[]={7,9,8};
const byte total = 3;
然后位于9号的灯先亮了,接着再到8号!
问题三
然后我在想i++和++i有什么区别
于是我将代码做了比对
#include <stdio.h>
int main() {
// 测试i++
int i = 5;
int a = i++; // 先把i的原值5赋值给a,再执行i=i+1
printf("a = %d, i = %d\n", a, i); // 输出:a=5, i=6
// 测试++i
int j = 5;
int b = ++j; // 先执行j=j+1,再把新值6赋值给b
printf("b = %d, j = %d\n", b, j); // 输出:b=6, j=6
return 0;
}
然后得知
++i:直接对变量自增,然后返回变量本身(效率略高,无临时值);
i++:需要先保存变量的原始值到临时空间,再对变量自增,最后返回临时值(多一步临时值操作)。

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



