- 机器人等级考试
Arduino 第二课学习笔记
- 2025-7-3 22:29:47 @
Arduino 第二课学习笔记(超详细版,适合小学生)
一、课前准备
我们要用到 Arduino 软件(像一个神奇的代码画板)和 Arduino 开发板(硬件小助手),通过写代码让开发板完成有趣的任务!
二、认识核心函数
1. setup()
函数
- 作用:就像给 Arduino 做 “初始化准备”,程序运行时它只执行一次 ,用来设置引脚模式、初始化串口这些基础工作。
- 例子:
void setup() {
// 设置 2 号引脚为输出模式,这样引脚就能向外输出电信号啦,比如控制小灯亮灭
pinMode(2, OUTPUT);
// 初始化串口,波特率 9600,这样电脑和 Arduino 就能通过串口聊天啦
Serial.begin(9600);
}
2. loop()
函数
- 作用:程序的 “循环小马达”,里面的代码会不停地重复执行,让 Arduino 持续干活 。
- 例子:
void loop() {
// 让 2 号引脚输出高电平(可以理解成给引脚通高电压)
digitalWrite(2, HIGH);
// 等待 1000 毫秒(1 秒),让效果保持一下
delay(1000);
// 让 2 号引脚输出低电平(切断高电压)
digitalWrite(2, LOW);
// 再等 1000 毫秒,循环往复
delay(1000);
}
三、代码实操 - 让引脚 “眨眼睛”(控制电平变化)
完整代码
// setup 函数:初始化配置,只执行一次
void setup() {
// pinMode(引脚号, 模式):设置引脚 2 为输出模式,准备向外发信号
pinMode(2, OUTPUT);
}
// loop 函数:循环执行,一直干活
void loop() {
// digitalWrite(引脚号, 电平值):让 2 号引脚输出高电平(HIGH 也可以用 1 表示)
digitalWrite(2, HIGH);
// delay(毫秒数):暂停 1000 毫秒(1 秒),此时接在 2 号引脚的小灯就会亮 1 秒
delay(1000);
// 让 2 号引脚输出低电平(LOW 也可以用 0 表示),小灯熄灭
digitalWrite(2, LOW);
// 再暂停 1000 毫秒,小灯灭 1 秒,然后又会重复亮灭啦
delay(1000);
}
代码解释
pinMode(2, OUTPUT)
:告诉 Arduino ,2 号引脚要当 “输出员”,负责向外发送电信号,比如控制小灯亮或者灭。digitalWrite(2, HIGH)
:命令 2 号引脚输出高电平,就像给小灯通上电,小灯(如果接了的话)就会亮起来。delay(1000)
:让程序停一停,停 1000 毫秒也就是 1 秒,这样我们能清楚看到小灯亮的状态。digitalWrite(2, LOW)
:让 2 号引脚输出低电平,把小灯的电断掉,小灯就熄灭啦。
四、代码实操 - 和电脑 “聊天”(串口输出)
完整代码
void setup() {
// 初始化串口,设置波特率 9600,这样电脑和 Arduino 能稳定传消息
Serial.begin(9600);
}
void loop() {
// Serial.println(内容):往串口发一行文字,发完自动换行,这里发 “你好,世界!”
Serial.println("你好,世界!");
// 等 1000 毫秒,每秒发一次消息
delay(1000);
}
代码解释
Serial.begin(9600)
:给串口 “搭好桥”,设置传输速度(波特率)是 9600 ,这样 Arduino 就能和电脑通过串口监视器交流啦。Serial.println("你好,世界!")
:让 Arduino 通过串口给电脑发消息,内容是 “你好,世界!” ,而且发完会自动换行,方便我们在串口监视器里看。delay(1000)
:控制发消息的频率,每隔 1 秒发一次,这样串口监视器里就会每隔 1 秒显示一行 “你好,世界!” 。
五、代码实操 - 按键控制(输入输出结合)
完整代码
void setup() {
// 设置 4 号引脚为输入模式,用来接收外部信号(比如按键按下的信号)
pinMode(4, INPUT);
// 设置 2 号引脚为输出模式,用来控制设备(比如小灯)
pinMode(2, OUTPUT);
// 初始化串口,波特率 9600,方便看按键状态消息
Serial.begin(9600);
}
void loop() {
// digitalRead(引脚号):读取 4 号引脚的电平值,1 是高电平(按键按下),0 是低电平(按键松开)
int buttonState = digitalRead(4);
// 如果按键按下(电平为 1)
if (buttonState == 1) {
// 串口发消息 “hello”,告诉我们按键按下啦
Serial.println("hello");
// 让 2 号引脚输出高电平,比如点亮小灯
digitalWrite(2, HIGH);
}
// 如果按键松开(电平为 0)
else {
// 串口发消息 “hi”,表示按键松开了
Serial.println("hi");
// 让 2 号引脚输出低电平,比如熄灭小灯
digitalWrite(2, LOW);
}
// 稍等 50 毫秒,让检测更稳定,避免误判
delay(50);
}
代码解释
pinMode(4, INPUT)
:把 4 号引脚设为 “输入员”,专门接收外面的信号,像按键按下去产生的电信号。int buttonState = digitalRead(4)
:读取 4 号引脚的电平状态,存到buttonState
变量里,1 代表按键按下,0 代表松开。if (buttonState == 1)
:判断按键是不是按下了,如果是,就执行大括号里让串口发 “hello”、2 号引脚输出高电平的操作。else
:要是按键没按下(松开状态),就执行让串口发 “hi”、2 号引脚输出低电平的操作。delay(50)
:短暂停顿一下,让 Arduino 检测按键状态更准确,不然可能会误判按键是按了还是没按。
六、总结
这节课我们学会了:
setup()
做初始化,loop()
循环执行代码 。- 用
pinMode
设置引脚模式(输入 / 输出) 。 - 用
digitalWrite
控制引脚输出电平(让小灯亮灭) 。 - 用
Serial.begin
和Serial.println
跟电脑串口聊天 。 - 用
digitalRead
读取引脚输入信号(按键状态),结合if
判断做不同反应 。
这些知识就像积木,往后我们可以用它们搭出更有趣的 Arduino 作品,比如做个自动感应小夜灯、按键控制的流水灯 ,下节课继续探索呀!
2 条评论
-
admin SU @ 2025-7-3 22:37:09
void setup() { Serial.begin(9600); pinMode(4,INPUT); pinMode(2,OUTPUT); } void loop() { if(digitalRead(4) == 1){ // 单分支结构 Serial.println("hello"); digitalWrite(2,1); } if(digitalRead(4) == 0){ // 单分支结构 Serial.println("hi"); digitalWrite(2,0); } delay(20); }
-
2025-7-3 22:36:58@
以下是添加了详细注释的代码,使用简单易懂的语言解释每个步骤的功能,适合小学生理解:
// 初始化设置:只运行一次,配置硬件连接和通信 void setup() { // 开启串口通信,设置传输速度为9600波特(每秒传输9600位数据) // 这样我们就能在电脑上看到Arduino的输出信息啦 Serial.begin(9600); // 将4号引脚设为输入模式(INPUT) // 就像给Arduino安装了一个"耳朵",用来接收外部信号(比如按钮按下) pinMode(4, INPUT); // 将2号引脚设为输出模式(OUTPUT) // 就像给Arduino安装了一个"小手",可以控制外部设备(比如点亮LED灯) pinMode(2, OUTPUT); } // 主循环:setup运行完后,这里的代码会不断重复执行 void loop() { // 检测4号引脚的状态(按下按钮会连接到高电平,值为1) if(digitalRead(4) == 1) { // 如果检测到按钮被按下 Serial.println("hello"); // 通过串口发送"hello"到电脑 digitalWrite(2, 1); // 让2号引脚输出高电平(点亮LED) } // 检测4号引脚的状态(松开按钮会连接到低电平,值为0) if(digitalRead(4) == 0) { // 如果检测到按钮被松开 Serial.println("hi"); // 通过串口发送"hi"到电脑 digitalWrite(2, 0); // 让2号引脚输出低电平(熄灭LED) } // 延时20毫秒(1秒=1000毫秒) // 给Arduino一点"休息时间",避免检测过于频繁 delay(20); }
代码功能说明(用生活比喻)
想象Arduino是一个"小机器人":
-
setup() 函数:
- 打开"对讲机"(串口通信),准备和电脑聊天
- 安装一个"耳朵"(4号引脚)来听按钮有没有被按下
- 安装一个"小手"(2号引脚)来控制LED灯的亮灭
-
loop() 函数:
- 小机器人会不停地检查"耳朵"(4号引脚)
- 如果听到"按钮按下"(值为1),就喊"hello"(串口输出),并举起"小手"(点亮LED)
- 如果听到"按钮松开"(值为0),就喊"hi"(串口输出),并放下"小手"(熄灭LED)
- 每检查完一次,小机器人会休息20毫秒,再继续下一次检查
为什么需要 delay(20)?
- 想象你在玩"木头人"游戏,如果小机器人检查得太快(没有delay),它可能会因为太敏感而误判按钮的状态
- 加了20毫秒的延时后,小机器人会更"冷静"地判断按钮状态,避免出现抖动或误触发
- 这个延时时间可以根据需要调整,但不要太长,否则反应会变慢哦!
-
- 1