机动教学周(教学准备)
本周为机动教学周,用于教学准备,无具体教学内容安排。
开学第一周(机动):核对实训耗材与工具(UNO R3开发板、面包板、跳线、LED、电阻等),熟悉5502机房上机规范,组建2人实训小组并登记分工,明确实训室安全操作要求。
机动教学周(教学准备)
本周为机动教学周,用于教学准备,无具体教学内容安排。
教学准备周(机动):安装Arduino IDE(教师机分发安装包),检查电脑USB驱动与串口是否正常,领取实训器材并清点登记,预习教材项目一"点亮第一盏LED"。
搭建开发环境与LED驱动
标学习目标
- 能正确识别Arduino UNO R3的数字口、模拟口、电源口等主要接口
- 能独立完成Arduino IDE安装,并正确选择开发板型号与串口端口
- 能按电路图完成LED限流接线,上传程序点亮并闪烁LED
- 能通过修改延时参数观察现象变化,并按规范记录实训数据
识认识Arduino UNO R3开发板

UNO R3 以 ATmega328P 单片机为核心,是本课程全部项目的控制核心。接线前先认清三大引脚区:
| 引脚区 | 编号 | 本课程常用用途 |
|---|---|---|
| 数字口 | D0~D13 | 接LED、按键、蜂鸣器、数码管、继电器等(D3/5/6/9/10/11支持PWM) |
| 模拟口 | A0~A5 | 读电位器、光敏电阻、水位等模拟传感器(10位ADC,0~1023) |
| 电源口 | 5V / GND | 给面包板电路供电,必须与模块共地 |
💡 为什么LED要串联限流电阻?
LED正向导通压降约2V,UNO引脚输出5V。若直接连接,电流过大将烧毁LED甚至损坏引脚。串联220Ω~330Ω电阻可将电流限制在10mA左右,安全且亮度足够。
识开发环境:IDE安装与程序上传
- 安装Arduino IDE(教师机提供安装包,一路默认下一步即可)
- 用USB线连接UNO R3与电脑,板载电源灯点亮
- 选择开发板:Tools → Board → Arduino Uno
- 选择端口:Tools → Serial Port → COMx(通常为COM3,接入后新增的那个)
- 点击上传按钮(→图标),等待"上传成功"提示



💡 程序的最小骨架:setup() 与 loop()
每个Arduino程序必须包含两个函数:setup() 在上电后只执行一次(用于初始化引脚、串口等);loop() 初始化完成后无限循环执行(写控制逻辑)。

识LED驱动电路与闪烁程序
本任务接线:D10 → 220Ω(或330Ω)限流电阻 → LED正极(长脚),LED负极(短脚)→ GND。


pinMode(10, OUTPUT); // D10 设为输出模式
}
void loop() {
digitalWrite(10, HIGH); // 输出高电平,点亮LED
delay(1000); // 延时1000毫秒
digitalWrite(10, LOW); // 输出低电平,熄灭LED
delay(1000);
}
操实操:点亮并闪烁LED
- 接线、改线前必须先拔掉USB线,断电操作
- LED分正负极:长脚为正(接电阻侧),接反不亮但不损坏
- LED必须串联220Ω以上限流电阻,严禁直接接5V
- 接完先自查,再由组员互检,确认无误后才能上电
按"识别器件 → 断电接线 → 上电配置 → 上传程序 → 观察记录"五步完成首个驱动任务。
识别器件
- UNO R3开发板、面包板、LED ×1、220Ω/330Ω电阻 ×1、USB数据线
断电接线
拔掉USB线:LED长脚 → 220Ω电阻 → D10;LED短脚 → GND。

连接电脑并配置IDE
- USB线连接UNO与电脑
- Tools → Board → Arduino Uno
- Tools → Serial Port → 选择对应COM口
输入程序并上传
录入"LED电路与程序"中的代码,点击上传按钮,等待"上传成功"。
观察并修改参数
观察LED以1秒间隔闪烁。将两处 delay(1000) 分别改为 delay(200)、delay(500),重新上传,对比闪烁快慢并记入工单。
| 排错顺序 | 检查要点 |
|---|---|
| 1 供电 | USB线是否插好,板载电源灯是否点亮 |
| 2 接线 | LED正负极方向、电阻是否串入、是否接对D10与GND |
| 3 端口 | Serial Port选择的COM口是否与设备管理器一致 |
| 4 代码 | pinMode/digitalWrite拼写、分号是否遗漏 |
| 5 上传 | 是否提示"上传成功",报错先读提示信息 |
| 6 现象 | 仍不亮则换一个LED或换电阻再试 |
单第3周任务工单:搭建开发环境与LED驱动⭳下载工单
操作确认清单(点击方框打勾)
- 能指出UNO板上数字口、模拟口、电源口的位置
- 已完成IDE安装并成功选择开发板与端口
- 按图完成LED限流接线,经组员互检确认
- 程序上传成功,LED正常闪烁
- 已完成delay=200/500/1000三组对比并记录
数据记录:延时参数与闪烁现象
| 延时时间 | 闪烁节奏描述 | 结论(延时与闪烁快慢的关系) |
|---|---|---|
| 1000ms | ||
| 500ms | ||
| 200ms |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、限流电阻使用正确,无带电插拔 | 54321 | 54321 | 54321 |
| 电路接线 | LED极性、电阻、D10/GND连接全部正确,一次点亮 | 54321 | 54321 | 54321 |
| 程序代码 | pinMode/digitalWrite/delay使用规范,能独立改参 | 54321 | 54321 | 54321 |
| 功能实现 | LED闪烁正常,三组延时对比成功 | 54321 | 54321 | 54321 |
| 记录素养 | 工单记录完整,桌面整理、器件归位 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
Hello World与LED闪烁
标学习目标
- 能使用Serial.begin()与Serial.println()实现串口输出
- 能打开并设置串口监视器,正确匹配波特率
- 能描述面包板内部结构,掌握"横轨纵列"接线规范
- 能在面包板上搭接LED闪烁电路并改编闪烁花样
识串口输出 Hello World
单片机没有屏幕,串口监视器是最常用的"调试窗口"。程序把数据发给电脑,监视器把数据显示出来,后续读传感器数值都靠它。
Serial.begin(9600); // 初始化串口,波特率9600
}
void loop() {
Serial.println("Hello World!"); // 打印并换行
delay(1000);
}
💡 print 与 println 的区别
print()输出后不换行,println()输出后自动换行。需要"数值+单位"同行显示时组合使用:Serial.print(val); Serial.println(" V")。
识面包板结构与接线规范
- 两侧长条为电源轨:每列5孔纵向连通(部分板红蓝长条整条连通),分别接5V与GND
- 中间凹槽两侧为元件区:每行5孔一组横向连通,用于插元件与跳线
- 凹槽两侧孔位互不连通,跨凹槽即"断开",同侧相邻行也互不连通
- 接线口诀:红正蓝负走两轨,元件跨区走横线
识LED闪烁:从Blink到自定义花样
IDE自带例程 Blink(文件→示例→01.Basics→Blink)默认闪烁板载L灯(D13)。把引脚号改为外接LED的D10,即可驱动面包板电路。

void loop() {
for (int i = 0; i < 3; i++) {
digitalWrite(10, HIGH); delay(150);
digitalWrite(10, LOW); delay(150);
}
delay(1000);
}

操实操:串口输出与LED闪烁花样
- 断电接线,接完自查、组员互检后再上电
- 面包板插拔元件捏住元件本体,不要硬拽导线
- 串口监视器打开前先上传完程序,避免端口占用冲突
两个任务串行完成:先跑通串口输出,再改Blink做出"三闪一停"自定义花样。
任务1:串口输出
- 录入Hello World程序并上传
- 打开串口监视器(右上角放大镜),波特率选9600
- 确认每秒输出一行 Hello World!
- 故意把监视器波特率改成4800,观察乱码现象后改回
任务2:面包板搭Blink电路
复用上周D10+LED+220Ω接线,检查电源轨/地轨是否与UNO 5V/GND接通。

任务3:改编闪烁花样
在loop()中用for循环实现"三闪一停",上传验证;再自行设计一种花样(如快慢交替)让组员猜节奏。
| 测试记录 | 结果 |
|---|---|
| 监视器9600输出内容 | |
| 波特率不匹配时现象 | |
| 三闪一停是否成功 |
单第4周任务工单:Hello World与LED闪烁⭳下载工单
操作确认清单(点击方框打勾)
- 串口监视器9600波特率输出正常
- 能说出print与println的区别
- 面包板接线符合"红正蓝负、走线贴板"规范
- 三闪一停花样程序独立完成并演示成功
- 乱码原因(波特率不一致)已验证并记录
数据记录:串口输出测试
| 测试项 | 设置 | 现象 |
|---|---|---|
| 正常通信 | 9600 | |
| 乱码复现 | 4800 |
闪烁花样设计
| 花样描述 | 关键参数(HIGH/LOW延时) | 是否实现 |
|---|---|---|
| 三闪一停 | 150/150/1000 | |
| 自选花样 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、规范插拔,无端口带电操作 | 54321 | 54321 | 54321 |
| 电路接线 | 面包板走线规范,电源轨使用正确 | 54321 | 54321 | 54321 |
| 程序代码 | Serial与for循环使用正确,能独立改编花样 | 54321 | 54321 | 54321 |
| 功能实现 | 串口输出与闪烁花样均演示成功 | 54321 | 54321 | 54321 |
| 记录素养 | 两表填写完整,能解释乱码原因 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
PWM调光与交通灯
标学习目标
- 能说出PWM调光的基本原理与占空比含义
- 能完成电位器+LED调光电路接线(A0采样、D11输出)
- 能使用analogRead/analogWrite并理解0~1023与0~255的换算
- 能编写交通灯程序,按设定时序控制红黄绿三灯
识PWM调光原理
PWM(脉冲宽度调制)靠快速开关的占空比等效出不同平均电压:占空比75%≈3.75V,50%≈2.5V,20%≈1V。LED亮度随占空比增大而变亮。


识电位器调光电路与程序
电位器三个脚:两端接5V和GND,中间脚接A0。旋钮改变分压比,A0读数在0~1023之间变化;除以4换算为0~255后用analogWrite输出到D11驱动LED。


int ledpin = 11; // LED接D11(PWM)
int val;
void setup() {
Serial.begin(9600);
}
void loop() {
val = analogRead(potpin); // 读模拟量 0~1023
analogWrite(ledpin, val/4); // 换算0~255输出PWM
Serial.println(val); // 打印采样值便于观察
delay(100);
}

| 函数 | 取值范围 | 用途 |
|---|---|---|
| analogRead(pin) | 0 ~ 1023(10位ADC) | 读模拟输入 |
| analogWrite(pin,val) | 0 ~ 255(8位PWM) | 输出等效模拟量 |
识交通灯控制程序
三只LED(各串220Ω)分别接 红D10、黄D7、绿D4,按"红1s → 绿1s → 黄0.2s"时序循环,模拟路口灯切换。

void setup() {
pinMode(red, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(green, OUTPUT);
}
void loop() {
digitalWrite(red, HIGH); delay(1000); // 红灯1s
digitalWrite(red, LOW);
digitalWrite(green, HIGH); delay(1000); // 绿灯1s
digitalWrite(green, LOW);
digitalWrite(yellow, HIGH); delay(200); // 黄灯0.2s
digitalWrite(yellow, LOW);
}
操实操:PWM调光 + 交通灯
- 断电接线,电位器中间脚必须接A0,不得接错到5V
- LED均需串220Ω限流电阻
- 接线经互检后再上电上传程序
先完成调光电路并打开串口观察采样值,再做交通灯。两组电路可分时使用同一块UNO。
任务1:搭调光电路
电位器两端接5V/GND、中间接A0;LED经220Ω接D11。

任务1:上传调光程序
上传后旋转电位器:LED亮度连续变化;串口监视器数值0~1023同步变化。记下最暗、中间、最亮三档的数值。
任务2:搭交通灯电路
红D10、黄D7、绿D4各串220Ω,负极统一接GND轨。
任务2:上传交通灯程序
上传后观察"红1s→绿1s→黄0.2s"循环;把红灯改为2s再观察时序变化。
| 调光测试(记录串口数值) | 采样值 |
|---|---|
| 旋至最暗 | |
| 旋至中间 | |
| 旋至最亮 |
单第5周任务工单:PWM调光与交通灯⭳下载工单
操作确认清单(点击方框打勾)
- 能说明占空比与LED亮度的关系
- 调光电路A0/D11接线正确,亮度可调
- 串口读数与旋钮位置对应,已记录三档数值
- 交通灯三灯时序正确(1s/1s/0.2s)
- 能解释0~1023除以4换算成0~255的原因
数据记录:调光采样值
| 旋钮位置 | 串口数值(0~1023) | 亮度现象 |
|---|---|---|
| 最暗 | ||
| 中间 | ||
| 最亮 |
数据记录:交通灯时序
| 灯色 | 引脚 | 点亮时长 |
|---|---|---|
| 红 | D10 | |
| 绿 | D4 | |
| 黄 | D7 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、互检后上电,无短路打火 | 54321 | 54321 | 54321 |
| 电路接线 | 电位器/LED/三灯接线全部正确 | 54321 | 54321 | 54321 |
| 程序代码 | analogRead/analogWrite换算正确,时序符合要求 | 54321 | 54321 | 54321 |
| 功能实现 | 调光连续平滑,交通灯时序准确 | 54321 | 54321 | 54321 |
| 记录素养 | 采样值三档记录完整,时序表填写正确 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
数字输入与模拟量采集
标学习目标
- 能区分数字量(0/1)与模拟量(连续变化)并举例说明
- 能完成按键+LED电路接线,理解上拉/下拉与低电平有效
- 能使用digitalRead读取按键状态并用if语句控制LED
- 能通过串口观察按键值,完成按下/松开各10次可靠性测试
识数字量与模拟量
| 对比项 | 数字量 | 模拟量 |
|---|---|---|
| 取值 | 只有0/1(低/高电平) | 连续变化(0~1023) |
| 典型器件 | 按键、开关、人体感应OUT | 电位器、光敏、水位、火焰AO |
| 读取函数 | digitalRead() | analogRead() |
| 本课实例 | 按键按下=LOW,松开=HIGH | 上周电位器0~1023 |
识按键输入控制LED
按键S1一端接D7,另一端接GND(经下拉电阻R2,平时D7被拉成HIGH;按下接通变LOW——低电平有效)。LED接D11。程序读D7,按下(LOW)点亮D11。


void setup() {
pinMode(inpin, INPUT);
pinMode(ledpin, OUTPUT);
Serial.begin(9600);
}
void loop() {
val = digitalRead(inpin);
Serial.println(val); // 观察1/0变化
if (val == LOW) { // 按下为低电平
digitalWrite(ledpin, HIGH);
} else {
digitalWrite(ledpin, LOW);
}
}

💡 上拉输入与软件消抖
按键模块常采用"按下接地"方式:松开时引脚被上拉电阻保持在高电平(读1),按下时直通GND(读0),所以用 if(val==LOW) 判断按下——即低电平有效。实际亮灭逻辑须以LED模块接法和测试结果为准。
若引脚悬空,读数会乱跳;机械按键按下瞬间还有几毫秒的抖动,可能把一次按键读成多次。简单的软件消抖:检测到按下后延时约20ms再确认状态。
操实操:按键控制LED与10次测试
- 断电接线,按键模块信号端接D7、电源端按标识接5V和GND
- LED必须串联220Ω或330Ω限流电阻
- 严禁把信号脚直接短接5V和GND;发现误接立即断开USB
- 接线经互检后再上电,先接地检查、后上电
核心训练"输入→判断→输出"闭环:读按键 → if判断 → 控LED,并用串口监视器把输入值可视化。
搭接按键与LED电路
按键接D7与GND,LED经220Ω接D11。

上传程序并打开串口
观察监视器数值:松开时为1(HIGH),按下时为0(LOW)。
验证控制逻辑
按下→LED亮,松开→LED灭。若相反,检查if条件与接线。
可靠性测试
上传后连续按下10次、松开10次,记录LED状态与判断是否一致;组内一人操作、一人观察、一人记录,完成后互换角色复测。
对比数字量与模拟量
增加A0电位器,用 Serial.println(analogRead(A0)) 输出:按键只有0/1两种状态(数字量),旋钮是0~1023连续数值(模拟量)。记录3组模拟读数。
| 可靠性测试记录 | 次数 | LED动作一致 | 异常说明 |
|---|---|---|---|
| 按下 | 10 | ||
| 松开 | 10 |
单第6周任务工单:数字输入与模拟量采集⭳下载工单
操作确认清单(点击方框打勾)
- 能各举2例说明数字量与模拟量的区别
- 按键模块接线正确,监视器能观察1/0跳变
- if(val==LOW)控制逻辑正确,按下亮松开灭
- 完成按下/松开各10次测试并记录异常
- 能解释低电平有效、说出软件消抖思路
数据记录:数字量与模拟量对比(3组)
| 测试项 | 按键读数(digitalRead) | 旋钮读数(analogRead) |
|---|---|---|
| 第1组 | ||
| 第2组 | ||
| 第3组 |
可靠性测试
| 测试 | 次数 | LED动作一致 | 异常 |
|---|---|---|---|
| 按下 | 10 | ||
| 松开 | 10 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、轻按轻放,无损坏器件 | 54321 | 54321 | 54321 |
| 电路接线 | 按键方向与下拉电路正确,一次调通 | 54321 | 54321 | 54321 |
| 程序代码 | digitalRead/if逻辑正确,能解释LOW有效 | 54321 | 54321 | 54321 |
| 功能实现 | 按下亮松开灭,10次测试零失灵 | 54321 | 54321 | 54321 |
| 记录素养 | 对比表与测试表填写完整 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
蜂鸣器报警控制
标学习目标
- 能从外观与驱动方式区分有源蜂鸣器与无源蜂鸣器
- 能用digitalWrite驱动有源蜂鸣器发声
- 能用tone()/noTone()驱动无源蜂鸣器发出指定频率
- 能实现"按键按下触发报警、松开停止"的报警器
识有源与无源蜂鸣器


| 对比项 | 有源蜂鸣器 | 无源蜂鸣器 |
|---|---|---|
| 内部振荡源 | 自带("有源") | 无("无源") |
| 驱动方式 | digitalWrite高低电平 | tone()输出方波 |
| 音调 | 固定一种 | 频率可调,可"唱歌" |
| 外观特征 | 顶面白贴纸/密封 | 露出黑色发声孔 |
digitalWrite(8, HIGH); delay(500); // 响500ms
digitalWrite(8, LOW); delay(500); // 停500ms
// 无源:tone()频率驱动(D8发1kHz,持续500ms)
tone(8, 1000); delay(500);
noTone(8);
💡 tone() 的妙用
tone(pin, 频率) 可在任意数字口输出方波。改变第二个参数即改变音调,例如1000Hz急促报警、500Hz低沉提示。noTone(pin)停止发声。
识按键触发报警器
在第六周按键电路基础上,把LED换成蜂鸣器(D8):按下D7按键→D8发声报警;松开→静音。这就是"输入→判断→输出"的又一实例,输出器件从LED换成蜂鸣器。
void setup() {
pinMode(button, INPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
val = digitalRead(button);
if (val == LOW) {
tone(buzzer, 1000); // 按下:1kHz报警
} else {
noTone(buzzer); // 松开:静音
}
}
操实操:蜂鸣器发声与按键报警
- 断电接线,蜂鸣器注意正负极(长脚/标+脚接信号侧)
- 音量测试时提醒组员,避免突然刺耳鸣响惊吓他人
- 上电前互检D7、D8与GND接线
三个递进任务:有源响 → 无源变调 → 按键报警。全程用第六周的按键电路做触发源。
任务1:有源蜂鸣器
D8接有源蜂鸣器正极,负极接GND。digitalWrite(8,HIGH/LOW)以1s节奏响停。

任务2:无源蜂鸣器
换无源蜂鸣器,用tone(8,1000)/noTone(8)驱动;再改频率500Hz、2000Hz对比音调高低。

任务3:按键报警
接入D7按键,上传报警程序:按下响、松开停。
可靠性测试
按下10次、松开10次,统计报警触发与解除是否都准确,记入工单。
| 发声测试记录 | 驱动方式 | 现象 |
|---|---|---|
| 有源蜂鸣器 | digitalWrite | |
| 无源500Hz | tone | |
| 无源1000Hz | tone | |
| 无源2000Hz | tone |
单第7周任务工单:蜂鸣器报警控制⭳下载工单
操作确认清单(点击方框打勾)
- 能从外观区分有源/无源蜂鸣器
- 有源蜂鸣器电平驱动正常响停
- 无源蜂鸣器tone驱动正常,能改变音调
- 按键报警:按下响、松开停,逻辑正确
- 完成按下/松开各10次可靠性测试
音调测试
| 频率(Hz) | 音调描述 | 是否发声 |
|---|---|---|
| 500 | ||
| 1000 | ||
| 2000 |
报警可靠性
| 测试 | 次数 | 触发/解除正常 | 异常 |
|---|---|---|---|
| 按下 | 10 | ||
| 松开 | 10 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、音量提示到位,无器件损坏 | 54321 | 54321 | 54321 |
| 电路接线 | 蜂鸣器极性与按键接线正确 | 54321 | 54321 | 54321 |
| 程序代码 | tone/noTone与if逻辑使用正确 | 54321 | 54321 | 54321 |
| 功能实现 | 三种发声 + 按键报警全部实现 | 54321 | 54321 | 54321 |
| 记录素养 | 音调表与可靠性表填写完整 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
光敏电阻与光照采集
标学习目标
- 能描述光敏电阻"光照越强阻值越小"的特性
- 能搭建10kΩ分压电路,把光照变化转为A0电压变化
- 能用串口监视器采集光照数值,理解数值与亮度的关系
- 能按"遮光/室内光/强光"三种工况完成各5次采样记录
识光敏电阻与分压采样
光敏电阻受光照后阻值下降。光敏电阻与10kΩ固定电阻串联分压,取中点接A0:光照变化→阻值变化→中点电压变化→A0读数变化。这就是"把物理量变成电信号"的采集思想。

void setup() {
Serial.begin(9600);
}
void loop() {
int lightValue = analogRead(lightPin);
Serial.println(lightValue); // 打印光照读数
delay(500); // 每500ms采样一次
}
💡 为什么必须分压?
A0读的是电压(0~5V映射为0~1023)。光敏电阻只有和固定电阻组成分压器,光照变化才能体现为中点电压变化。单独一只光敏电阻接A0是读不出有效数值的。
识光照数据采集与标定
标定 = 先弄清"数值~环境"的对应关系,为下周"感光灯自动开灯"设定阈值做准备。三种工况:完全遮光 / 室内正常光 / 手电强光,每种读5个数取平均。
| 工况 | 预期读数趋势 | 用途 |
|---|---|---|
| 完全遮光 | 数值小 | 对应"夜晚→应开灯" |
| 室内正常光 | 数值中等 | 日常基准值 |
| 强光照射 | 数值大 | 对应"白天→灯灭" |
操实操:光照采集与三工况标定
- 断电接线,光敏电阻无极性可任意插入
- 分压电阻必须用10kΩ,阻值错读数范围会异常
- 采样时保持探头位置稳定,避免影子干扰
本节实操产出一份"光照标定表"——它就是下周感光灯threshold阈值的设定依据,务必认真测。
搭建分压采样电路
5V → 光敏电阻 → 中点接A0 → 10kΩ → GND。

上传采样程序
打开串口监视器,确认每500ms刷新一个数值。
三工况标定
依次做遮光/室内光/强光测试,每种工况等读数稳定后记录5个值,算出平均数。
分析规律
对比三组平均数,写出"读数范围~环境亮度"的结论,并初拟感光灯阈值(下周验证)。
| 光照标定记录(每种5次) | 读1 | 读2 | 读3 | 读4 | 读5 | 平均 |
|---|---|---|---|---|---|---|
| 遮光 | ||||||
| 室内光 | ||||||
| 强光 |
单第8周任务工单:光敏电阻与光照采集⭳下载工单
操作确认清单(点击方框打勾)
- 能说明"光照越强阻值越小"的特性方向
- 分压电路接线正确,A0读数随光照明显变化
- 完成遮光/室内光/强光各5次采样
- 计算出三种工况的平均读数
- 写出"数值范围~环境"结论并初拟阈值
光照标定汇总
| 工况 | 平均读数 | 对应环境判断 |
|---|---|---|
| 遮光 | ||
| 室内光 | ||
| 强光 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、采样规范,无影子干扰数据 | 54321 | 54321 | 54321 |
| 电路接线 | 10kΩ分压网络正确,A0接入正确 | 54321 | 54321 | 54321 |
| 程序代码 | analogRead采样+500ms节拍正确 | 54321 | 54321 | 54321 |
| 功能实现 | 三种工况读数差异明显,标定有效 | 54321 | 54321 | 54321 |
| 记录素养 | 标定表15个数据齐全,结论合理 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
感光灯:阈值判断与自动控制
标学习目标
- 能理解"阈值判断"思想:用if语句把采集值转成开关动作
- 能完成光敏分压+LED(D11)感光灯电路接线
- 能设定threshold阈值,实现"光线暗自动开灯、亮自动关灯"
- 能对比450/500/550三组阈值,选出动作最可靠的一组
识从"采集数据"到"自动控制"
第8周我们只做"采集与标定",本周加一步判断:if (lightValue < threshold) 就开灯。这就是一个最小化的自动控制系统——传感(A0)→ 判断(if)→ 执行(D11)。
💡 阈值为什么不能拍脑袋?
阈值必须落在第8周标定的"遮光平均读数"与"室内光平均读数"之间:取两组平均值的中间值作为初值(约500),再实测微调。阈值过高→天还没黑就开灯;过低→天黑透了灯还不亮。
识感光灯电路与程序


int threshold = 500; // 阈值:按第8周标定数据修改
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int lightValue = analogRead(lightPin);
Serial.println(lightValue); // 监视当前光照值
if (lightValue < threshold) {
digitalWrite(ledPin, HIGH); // 光线暗:开灯
} else {
digitalWrite(ledPin, LOW); // 光线亮:关灯
}
delay(500);
}
操实操:感光灯制作与阈值调试
- 断电接线,分压电阻仍用10kΩ,LED串220Ω
- 阈值修改只改程序参数,不得带电改线
- 测试用手遮挡光源即可,不得用强激光照射光敏电阻
在第8周电路上加D11 LED,程序从"打印数值"升级为"判断+控制"。核心工作量是阈值调试:初值500,再对比450/550。
搭接感光灯电路
复用第8周分压电路(中点→A0),LED经220Ω接D11。

上传程序(threshold=500)
遮住光敏电阻→LED应亮;移开手→LED应灭。观察串口读数与动作是否对应。
阈值对比实验
分别把threshold改为450、550,重复遮光/移开测试,记录每种阈值下"遮光亮不亮、强光灭不灭",判断哪组最可靠。
固定最佳阈值
把最可靠的阈值写回程序,请教师抽查演示,说明选择理由。
| 阈值对比记录 | 遮光时 | 室内光时 | 强光时 | 是否误动作 |
|---|---|---|---|---|
| threshold=450 | ||||
| threshold=500 | ||||
| threshold=550 |
单第9周任务工单:感光灯阈值判断与自动控制⭳下载工单
操作确认清单(点击方框打勾)
- 能画出"传感→判断→执行"三环节框图
- 电路接线正确,串口读数随光照变化
- threshold=500时遮光亮、移开灭
- 完成450/500/550三组阈值对比并记录
- 选定最佳阈值并能说明理由
数据记录:三组阈值测试
| 阈值 | 遮光LED状态 | 强光LED状态 | 误动作次数 |
|---|---|---|---|
| 450 | |||
| 500 | |||
| 550 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、不带电改参,无器件损坏 | 54321 | 54321 | 54321 |
| 电路接线 | 分压网络与D11输出正确 | 54321 | 54321 | 54321 |
| 程序代码 | if阈值判断正确,threshold独立可调 | 54321 | 54321 | 54321 |
| 功能实现 | 遮光亮/强光灭,临界不闪烁 | 54321 | 54321 | 54321 |
| 记录素养 | 三组阈值数据完整,结论有依据 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
火焰传感器与声光报警
标学习目标
- 能描述火焰传感器(红外接收管)的工作原理与AO输出特性
- 能完成火焰传感器AO→A0、LED→D11、蜂鸣器→D8的报警电路
- 能通过三状态实测确定报警阈值,编写声光报警程序
- 能完成无遮挡/远距离/近距离3种状态各3轮的重复测试
识火焰传感器原理


传感器把火焰红外辐射转成电信号,经10kΩ分压电路从AO口输出模拟量,接入A0用analogRead读取。离火越近读数跳变越明显(方向由分压接法决定,以实测为准)。
识声光报警电路与程序


int threshold = 500; // 报警阈值:先实测三状态再修改
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}
void loop() {
int flameValue = analogRead(flamePin);
Serial.println(flameValue);
if (flameValue < threshold) { // 方向按实测调整
digitalWrite(ledPin, HIGH); // 声光同时报警
tone(buzzer, 1000);
} else {
digitalWrite(ledPin, LOW);
noTone(buzzer);
}
delay(200);
}
💡 报警阈值怎么定?
先不带判断跑采集程序,记录"无遮挡 / 远距离火源 / 近距离火源"三组读数;把threshold设在无遮挡值与近距离值之间,并要求对远距离也有响应。若发现方向相反(近火读数更大),把if中的 < 改为 > 即可。
操实操:火焰声光报警与三状态测试
- 断电接线,传感器按丝印接5V/GND,AO接A0,勿接反电源极性
- 火源测试由教师统一组织:小火苗、短时间、近距离3cm内不动
- 台面清空易燃物,备湿布;测试完毕立即熄灭火源并报告教师
- 发热、异味、异常声光立即断电并报告
先"采集标定"再"报警判断",与感光灯流程一致。蜂鸣器与LED同时动作,形成完整声光报警。
搭接报警电路
火焰传感器AO→A0、VCC→5V、GND→GND;LED→D11(串220Ω);蜂鸣器→D8。

采集三状态读数
上传采集程序:无遮挡→读数记一次;远距离(约50cm)火源→记一次;近距离(2~3cm)→记一次。确定读数方向与数值范围。
设定阈值并上传报警程序
把threshold改到合理位置,上传声光报警程序,验证近火报警、移开解除。
三状态×3轮测试
无遮挡/远距离/近距离各重复3轮,每轮记录是否正确报警/解除,统计误报漏报次数。
| 三状态测试(每状态3轮) | 读数1 | 读数2 | 读数3 | 报警正确次数 |
|---|---|---|---|---|
| 无遮挡 | ||||
| 远距离火源 | ||||
| 近距离火源 |
单第10周任务工单:火焰传感器与声光报警⭳下载工单
操作确认清单(点击方框打勾)
- 能说明红外接收管+分压电路的输出原理
- AO/LED/蜂鸣器三路接线全部正确
- 三状态读数已记录,阈值设定有依据
- 声光同时报警、移开火源立即解除
- 完成3状态×3轮测试,误报漏报已统计
数据记录:三状态读数与报警
| 状态 | 平均读数 | 应报警 | 实际报警 |
|---|---|---|---|
| 无遮挡 | 否 | ||
| 远距离 | 是 | ||
| 近距离 | 是 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 火源测试规范,台面无易燃物,及时熄灭 | 54321 | 54321 | 54321 |
| 电路接线 | 传感器/LED/蜂鸣器三路接线正确 | 54321 | 54321 | 54321 |
| 程序代码 | 阈值判断正确,声光报警逻辑清晰 | 54321 | 54321 | 54321 |
| 功能实现 | 三状态×3轮零漏报零误报 | 54321 | 54321 | 54321 |
| 记录素养 | 读数与轮次记录完整,阈值有依据 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
七段数码管显示
标学习目标
- 能辨认七段数码管a~g、dp段位与共阴/共阳类型
- 能完成数码管各段经限流电阻接D2~D8的电路
- 能用段码数组循环显示0~9并记录每个数字的段码
- 能理解动态扫描的位选/段选与2~5ms延时,观察闪烁重影
识认识七段数码管

- 七段=a、b、c、d、e、f、g,外加小数点dp;点亮不同组合显示0~9
- 共阴:公共端接GND,段引脚给HIGH点亮
- 共阳:公共端接5V,段引脚给LOW点亮——段码取反
- 判别方法:用万用表二极管挡或接3V电源轻触,亮的一段即找到对应段
💡 段码是什么?
每个数字对应一组"各段亮灭"的组合,写成8位二进制就是段码。例如共阴管显示"0"要点亮a~f共6段(g灭),段码为B1111110。把0~9的段码放进数组,程序就能循环显示。
识接线与0~9显示程序


接线:a~g 七段各串220Ω → D2~D7(本课例程dp不接),共阴公共端接GND。
const byte SEG[10][7] = {
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,0,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,1,0,1,1} // 9
};
int segPin[7] = {2,3,4,5,6,7};
void setup() {
for (int i = 0; i < 7; i++) pinMode(segPin[i], OUTPUT);
}
void loop() {
for (int n = 0; n < 10; n++) {
for (int s = 0; s < 7; s++)
digitalWrite(segPin[s], SEG[n][s]);
delay(1000); // 每个数字停留1秒
}
}
识动态扫描:两位轮流显示
多位显示时让各位轮流快速点亮:先送第一位段选+开位选,延时2~5ms,再切第二位。人眼视觉暂留让我们"同时"看到两位数字。
- 位选:决定哪一位数码管被点亮(公共端控制)
- 段选:决定这一位显示什么数字(a~g段码)
- 扫描延时2~5ms:太长→明显闪烁;太短→亮度下降、产生重影
操实操:0~9显示与动态扫描
- 断电接线,每段必须串220Ω限流电阻
- 共阴/共阳先判别再接线,公共端不得接错
- 发现某段常亮或全灭,先断电检查段序与公共端
两个任务:先静态循环显示0~9并抄录段码,再观察两位动态扫描的延时效果。
判别类型与接线
判别共阴/共阳;a~g经220Ω接D2~D7,公共端按类型接GND或5V。

上传0~9循环程序
逐位核对段序:显示"1"应只有b、c亮。若数字"乱码",对照SEG表排查段序接错。
抄录段码
把0~9每个数字实际点亮的段记入工单段码表,与SEG数组比对。
动态扫描观察
用教师提供的两位扫描例程,分别把延时改为2ms、5ms、50ms,观察闪烁/重影/亮度不均三种现象并记录。
| 段码记录(点亮段打√) | a | b | c | d | e | f | g |
|---|---|---|---|---|---|---|---|
| 0 | |||||||
| 1 | |||||||
| 2 | |||||||
| 3 |
| 扫描延时观察 | 2ms | 5ms | 50ms |
|---|---|---|---|
| 闪烁 | |||
| 重影 | |||
| 亮度 |
单第11周任务工单:七段数码管显示⭳下载工单
操作确认清单(点击方框打勾)
- 能正确判别共阴/共阳并说明依据
- 各段限流电阻齐全,段序接对
- 0~9循环显示正常,乱码已排查
- 段码表记录与程序SEG数组一致
- 完成2/5/50ms三档延时对比观察
段码记录(续)
| 数字 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|
| 点亮段 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、限流齐全,无过热现象 | 54321 | 54321 | 54321 |
| 电路接线 | 段序、公共端、限流电阻全部正确 | 54321 | 54321 | 54321 |
| 程序代码 | SEG数组使用规范,能独立改延时 | 54321 | 54321 | 54321 |
| 功能实现 | 0~9显示正确,扫描异常能解释 | 54321 | 54321 | 54321 |
| 记录素养 | 段码表与延时观察表填写完整 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
1602 LCD字符显示
标学习目标
- 能说出1602 LCD主要引脚(VSS/VDD/VO/RS/E/D4-D7/背光)的功能
- 能完成LCD接线并用电位器调节对比度至字符清晰
- 能使用LiquidCrystal库的begin/setCursor/print显示文本与数字
- 能显示姓名、学号和一个传感数值,检查16列2行换行是否正确
识认识1602 LCD



| 引脚 | 名称 | 接法 |
|---|---|---|
| VSS | 电源地 | 接GND |
| VDD | 电源正 | 接5V |
| VO | 对比度调节 | 接10kΩ电位器中间端 |
| RS / E | 寄存器选择 / 使能 | 接D12 / D11 |
| R-W | 读/写选择 | 接GND(只写) |
| D4~D7 | 4位数据线 | 接D5/D4/D3/D2 |
| BLA / BLK | 背光正/负 | 按模块标识接5V / GND |
💡 LCD内部怎么收指令?
控制器把每次写入当作"指令"或"数据"由RS区分:RS=0写指令(如清屏、设光标),RS=1写显示数据。本课用4位模式(D4~D7),分两次传送一个字节。

识接线与LiquidCrystal程序


// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2); // 16列2行
lcd.setCursor(0, 0); // 第0列第0行
lcd.print("Hello 25网联车!");
}
void loop() {
lcd.setCursor(0, 1); // 第二行
lcd.print(millis() / 1000);
lcd.print(" s");
}
操实操:LCD显示姓名学号与传感值
- 断电接线,LCD引脚多易插错,对照引脚表逐脚复核
- 电位器先调中间位置再上电,防止对比度极端
- 上电后LCD异常发热立即断电检查VDD/GND
LCD是后续联调项目的"显示器"。本节任务:调出清晰字符 → 显示姓名学号 → 第二行实时显示A0传感数值。
按引脚表接线
VSS→GND、VDD→5V、VO→电位器中间端、RS→12、R-W→GND、E→11、D4~D7→5/4/3/2、背光按标识接。

上电调对比度
上传程序后缓慢旋转电位器,直到第一行字符清晰出现(不黑块、不空白)。
显示姓名与学号
把print内容改为本人姓名和学号,注意一行最多16字符,超长需换行。
第二行显示传感值
setCursor(0,1)后打印 analogRead(A0) 数值,旋转电位器观察数字实时变化,记录3组读数。
| 显示测试记录 | 结果 |
|---|---|
| 第一行:姓名学号 | |
| 第二行:A0传感值×3组 | |
| 超16字符现象 |
单第12周任务工单:1602 LCD字符显示⭳下载工单
操作确认清单(点击方框打勾)
- 能背出VSS/VDD/VO三个引脚的作用
- 对比度调出清晰字符,无黑块无白屏
- 姓名学号显示正确,换行位置正确
- 第二行实时显示A0数值并记录3组
- 能解释RS=0指令/RS=1数据的区别
数据记录:A0传感值显示
| 旋钮位置 | LCD显示值 | 串口对照值 |
|---|---|---|
| 最小 | ||
| 中间 | ||
| 最大 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 逐脚复核、无电源接反,LCD无过热 | 54321 | 54321 | 54321 |
| 电路接线 | 16脚对照无误,电位器接入正确 | 54321 | 54321 | 54321 |
| 程序代码 | 库引用/begin/setCursor/print使用正确 | 54321 | 54321 | 54321 |
| 功能实现 | 姓名学号+实时数值显示成功 | 54321 | 54321 | 54321 |
| 记录素养 | 三组读数齐全,故障排查有记录 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
步进电机正反转与调速
标学习目标
- 能描述28BYJ-48步进电机+ULN2003驱动板的接线关系
- 能解释"为什么要驱动板":UNO引脚不能直接带动电机线圈
- 能用Stepper库setSpeed/step完成正转、反转与转速调节
- 能对比10rpm与15rpm运行一圈的耗时,检查丢步与抖动
识步进电机与ULN2003驱动板


步进电机线圈电流远超UNO引脚承受能力,必须经ULN2003达林顿阵列放大后驱动。规则三条:IN1~IN4接UNO数字口;电机插驱动板白座;电机电源与UNO共地。不得用UNO引脚直接驱动线圈。
💡 "步"是什么概念?
每给一组相位通电,电机转一个固定角度(一步)。28BYJ-48经减速齿轮后约需2048步转一圈,所以程序里step(2048)≈正转一圈。转速由setSpeed(转/分)控制,四相指示灯闪烁越快转速越高。
识Stepper库程序与调试


const int stepsPerRevolution = 2048; // 28BYJ-48约2048步/圈
// 注意顺序:IN1, IN3, IN2, IN4 对应 8, 10, 9, 11
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
myStepper.setSpeed(10); // 10转/分
}
void loop() {
myStepper.step(2048); // 正转一圈
delay(500);
myStepper.step(-2048); // 反转一圈
delay(500);
}
操实操:正反转一圈与转速对比
- 断电接线,电机插白座方向对准,不得硬插
- 供电不足时用外接5V电源,外接电源必须与UNO共地
- 运行中不得用手捏住转轴阻止转动(堵转发热)
- 发现异响、异味、指示灯全亮异常立即断电
接线完成后先低速验证方向,再对比10rpm与15rpm的运行表现,记录耗时、丢步、抖动三项指标。
接线
IN1~IN4→D8/D9/D10/D11,电机插白座,驱动板5V/GND→UNO 5V/GND(或外接5V共地)。

低速验证
先setSpeed(5)上传:电机应平稳正转一圈→停→反转一圈。若只抖不转,按"相序接错"提示排查。
10rpm与15rpm对比
分别以10rpm、15rpm各跑正反一圈,用秒表记录每圈耗时,观察是否有丢步、抖动。
数据记录与排查
把现象记入工单;若15rpm出现抖动或丢步,记录降速后的改善情况。
| 转速对比(正/反各一圈) | 正转耗时 | 反转耗时 | 丢步/抖动 |
|---|---|---|---|
| 10rpm | |||
| 15rpm |
单第13周任务工单:步进电机正反转与调速⭳下载工单
操作确认清单(点击方框打勾)
- 能说出"UNO引脚不能直接驱动电机"的原因
- IN1~IN4/白座/共地三处接线全部正确
- 低速下正转一圈、反转一圈方向正确
- 完成10rpm与15rpm耗时对比记录
- 抖动或丢步现象已记录并能分析原因
数据记录:转速测试
| 转速 | 设定期望耗时(s) | 实测正转(s) | 实测反转(s) |
|---|---|---|---|
| 10rpm | ≈6 | ||
| 15rpm | ≈4 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、不堵转、共地正确 | 54321 | 54321 | 54321 |
| 电路接线 | 驱动板/电机/电源三处连接规范 | 54321 | 54321 | 54321 |
| 程序代码 | Stepper库调用正确,相序处理得当 | 54321 | 54321 | 54321 |
| 功能实现 | 正反转方向正确,两档转速对比成功 | 54321 | 54321 | 54321 |
| 记录素养 | 耗时与现象记录完整,能分析丢步 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
舵机角度控制与安全限位
标学习目标
- 能辨认舵机三线(红5V/棕黑GND/信号D9)并正确接线
- 能理解PWM脉宽与角度的对应关系(约0.5~2.5ms→0~180°)
- 能用Servo库attach/write实现指定角度定位与电位器映射控制
- 能设置10~170度安全限位,防止舵机撞限位抖动异响
识认识舵机与PWM映射



舵机内部自带位置反馈,信号线输入的脉冲宽度决定输出轴角度。Servo库把write(angle)自动转换为对应脉宽,我们只管给角度。
识Servo库程序:定位与映射

Servo myservo;
void setup() {
myservo.attach(9); // 信号线接D9
}
void loop() {
// 任务1:依次定位五个角度
int angles[5] = {0, 45, 90, 135, 180};
for (int i = 0; i < 5; i++) {
myservo.write(angles[i]);
delay(1000);
}
// 任务2:电位器映射控制(带安全限位10~170度)
int angle = map(analogRead(A0), 0, 1023, 10, 170);
myservo.write(angle);
delay(15);
}
💡 map() 映射函数
map(值, 原始下限, 原始上限, 目标下限, 目标上限)做线性比例换算:A0的0~1023映射到0~180。注意两端限位:写0°或180°时舵机顶死在机械限位会抖动、异响、发热,所以工程上常限制在10~170度。
操实操:五点定位与电位器控制
- 断电接线,三线颜色对照:红5V、棕/黑GND、黄/橙信号D9
- 舵机臂安装到位再上电,防止空转飞脱
- 不要用手强行掰动舵机臂(损坏齿轮)
- 发现持续抖动、异响立即断电,检查是否撞限位
两个递进任务:先做0/45/90/135/180五点定位测试,再加电位器实现"旋钮控制角度"并设置10~170度安全限位。
接线
按三线颜色接5V/GND/D9,先不上舵盘,验证空载转动。

五点定位测试
上传任务1程序:舵机应依次转到0、45、90、135、180度各停1秒。用记号笔在桌面上标出实际角度位置,对照记录偏差。
电位器映射控制
接入电位器(中间脚→A0),上传任务2程序:旋钮从一端转到另一端,舵机应平滑跟随。记录0/1023两端对应的实际角度。
安全限位验证
观察限位版本(map到10~170)与全范围版本(0~180)在两端的差异:全范围版本两端是否出现顶死抖动?记录现象。
| 五点定位记录 | 0° | 45° | 90° | 135° | 180° |
|---|---|---|---|---|---|
| 实际位置偏差 |
| 限位对比 | 两端顶死抖动 | 转动平滑度 |
|---|---|---|
| 0~180全范围 | ||
| 10~170限位 |
单第14周任务工单:舵机角度控制与安全限位⭳下载工单
操作确认清单(点击方框打勾)
- 三线接线正确,空载转动正常
- 五点定位偏差已记录
- 电位器旋钮能平滑控制舵机角度
- map映射参数书写正确
- 限位版本两端无顶死抖动,能说明限位作用
数据记录:映射端点
| 旋钮位置 | A0读数 | 实际角度 |
|---|---|---|
| 一端 | ||
| 中间 | ||
| 另一端 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 三线接对、不掰舵机臂、堵转即断电 | 54321 | 54321 | 54321 |
| 电路接线 | D9信号线与电源线连接规范 | 54321 | 54321 | 54321 |
| 程序代码 | attach/write/map使用正确,限位参数合理 | 54321 | 54321 | 54321 |
| 功能实现 | 五点定位准确,旋钮控制平滑 | 54321 | 54321 | 54321 |
| 记录素养 | 定位偏差与限位对比记录完整 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
HC-SR04超声波测距与避障阈值
标学习目标
- 能说明HC-SR04"触发→回波→测时→换算"的测距原理
- 能完成 Trig→D9、Echo→D10、蜂鸣器→D8 的测距报警电路
- 会用 pulseIn 测回波脉宽,按 distance=duration×0.034/2 换算距离
- 能在10/20/50cm三档各测5次算误差,并设定20cm避障阈值联动蜂鸣器
识超声波测距原理
蝙蝠的启示:超声波测距模块向目标方向发射一串40kHz的超声波,声波遇到障碍物反射回来被接收。只要测出"发出→收到"的时间差,乘以声速再除以2(往返),就是距离。




💡 公式从哪来?
声速约340m/s = 0.034cm/μs。Echo高电平时间是声波往返的微秒数,所以:距离(cm) = duration(μs) × 0.034 ÷ 2。例如量得588μs,距离≈588×0.034÷2≈10cm。
识测距电路与程序

int threshold = 20; // 避障阈值:cm
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // 10μs 触发脉冲
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH); // 回波脉宽(μs)
int distance = duration * 0.034 / 2; // 换算为cm
Serial.print(distance);
Serial.println(" cm");
if (distance > 0 && distance < threshold) {
digitalWrite(buzzerPin, HIGH); // 低于阈值:报警
} else {
digitalWrite(buzzerPin, LOW);
}
delay(200);
}
操实操:超声波测距标定与避障报警
- 断电接线,HC-SR04严格按VCC/GND/Trig/Echo四线对应,接反会烧模块
- 两只手不要同时触碰模块引脚与电源,防止静电损坏
- 改线必须先拔USB断电,程序与接线必须一致再上电
先搭测距电路验证读数,再在10/20/50cm三档各测5次算误差,最后把threshold设为20cm做避障报警联动。
搭接测距电路
按 Trig→D9、Echo→D10 接好模块,蜂鸣器接D8。上电后打开串口监视器(9600)。

三档测距标定
把模块正对平整目标(书本/纸盒),分别在10cm、20cm、50cm处各测5次,把读数记入工单表,计算平均误差。斜面、软布、过远目标都会使读数漂移。
设定避障阈值
threshold=20,把障碍物从远处慢慢移近:越过20cm瞬间蜂鸣器应响,退远应停。
排错与互检
读数恒0或恒最大:按"供电→公共地→引脚号→程序语法→串口结果"顺序排查;完成后组员互换检查接线并演示一次报警动作。
单第15周任务工单:超声波测距标定与避障报警⭳下载工单
操作确认清单(点击方框打勾)
- 能画出"触发→回波→测时→换算"测距流程框图
- 四线接线正确(Trig→D9、Echo→D10),串口能输出距离
- 完成10/20/50cm三档×5次测距记录
- threshold=20cm时越线响、退开停,动作可靠
- 读数异常时能按排错顺序定位问题
数据记录:三档测距各测5次
| 目标距离 | 第1次 | 第2次 | 第3次 | 第4次 | 第5次 | 平均误差 |
|---|---|---|---|---|---|---|
| 10cm | ||||||
| 20cm | ||||||
| 50cm |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、四线核对后上电,无器件损坏 | 54321 | 54321 | 54321 |
| 电路接线 | Trig/Echo/蜂鸣器三路连接正确 | 54321 | 54321 | 54321 |
| 程序代码 | 触发时序、pulseIn、换算公式正确,threshold独立可调 | 54321 | 54321 | 54321 |
| 功能实现 | 三档读数合理,20cm阈值报警动作可靠 | 54321 | 54321 | 54321 |
| 记录素养 | 15次测距数据完整,误差与结论有依据 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
DHT11温湿度与水位采集
标学习目标
- 能说明DHT11单总线通信特点与DATA→D2接法(含上拉电阻)
- 会用 readTemperature/readHumidity 读取温湿度,并处理读取失败(NaN)
- 能完成水位模块AO→A0接线,用阈值把0~1023分成干/少水/较多水三状态
- 能完成"室温对照、手握或吹风、水位变化"的环境数据采集与记录
识DHT11温湿度传感器
DHT11把温度(0~50℃,±2℃)和湿度(20~90%RH)放在一个模块里,用一根数据线(单总线)与Arduino通信:主机发请求,模块回40位数据(含校验和)。


DHT dht(2, DHT11); // DATA → D2
void setup() {
dht.begin();
Serial.begin(9600);
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) { // 读取失败:非数字
Serial.println("Read error! Check wiring.");
} else {
Serial.print("T:"); Serial.print(t);
Serial.print("C H:"); Serial.print(h);
Serial.println("%");
}
delay(2000); // 采样间隔≥1秒
}
💡 为什么读出 nan?
isnan 判断"非数字":接线松动、DATA接错脚、上电太快、校验和错误都会导致读取失败。DHT11两次采样至少间隔1秒,读太快也会失败——所以程序里 delay(2000)。失败时先查接线,再等2秒重试。

识水位传感器与阈值分档

水位模块裸露的平行走线是感应面:水淹没越多,AO输出越高(analogRead 0~1023)。用两个阈值把读数分成三档:干燥 / 少量水 / 较多水。
void loop() {
int w = analogRead(waterPin);
Serial.print("Water: ");
Serial.println(w);
if (w < 300) {
Serial.println("-> dry");
} else if (w < 600) {
Serial.println("-> low");
} else {
Serial.println("-> high");
}
delay(1000);
}
操实操:温湿度与水位数据采集
- 断电接线,DHT11三个脚(VCC/DATA/GND)不可接反
- 水位模块仅蘸水测试,不得整块浸水或沾湿电路板其他部分
- 读取失败时先断电查线,不得带电插拔模块
两路输入分开验证:先串口读温湿度并做干扰实验,再标定水位三档,最后完成整套环境数据采集记录。
DHT11读数验证
上传程序,串口应每2秒输出一行温湿度。先记下室温读数作为基准。
温湿度干扰实验
手指捏住DHT11约30秒或对着哈气,观察温度上升、湿度上升;再用扇风方式让其回落,记录变化过程。
水位三档标定
干燥→蘸少量水→浸入较多水,各记录一次AO读数,据实测确定两档分界线,替换程序中的300/600。
三状态复测
用新阈值重测三种水位状态,串口档位判断应与实际一致;完成后擦干传感面并断电整理。
单第16周任务工单:DHT11温湿度与水位采集⭳下载工单
操作确认清单(点击方框打勾)
- DHT11三线+上拉接线正确,串口每2秒输出温湿度
- isnan失败处理生效(拔线时提示错误而不是死等)
- 完成室温基准与手握/吹风变化记录
- 完成水位干燥/少量水/较多水三档标定
- 新阈值下三状态判断与实际一致
数据记录:温湿度干扰实验
| 状态 | 温度℃ | 湿度% | 备注 |
|---|---|---|---|
| 室温基准 | |||
| 手握/哈气后 | |||
| 扇风回落后 |
数据记录:水位三档标定
| 状态 | AO读数 | 判定档位 | 分档线 |
|---|---|---|---|
| 干燥 | |||
| 少量水 | |||
| 较多水 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、模块蘸水不浸板,无器件损坏 | 54321 | 54321 | 54321 |
| 电路接线 | DHT11与水位模块接线正确 | 54321 | 54321 | 54321 |
| 程序代码 | 库调用与isnan处理正确,水位阈值按实测修改 | 54321 | 54321 | 54321 |
| 功能实现 | 温湿度有响应、水位三档判断正确 | 54321 | 54321 | 54321 |
| 记录素养 | 两组实验数据完整,分档线理由充分 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
传感+显示+报警联调排故
标学习目标
- 能按"先分模块验证、再总线联调"的顺序排查系统故障
- 能完成DHT11+水位+LCD+蜂鸣器四模块统一接线与程序整合
- 会用 lcd.setCursor 分行显示传感数据,等宽覆盖消除显示残留
- 能实现水位超限 tone 报警,并核对LCD、蜂鸣器、串口三处结果一致
识从"各自能跑"到"合在一起能跑"
单模块各自验证通过(第15/16周),合并后却常常出问题:引脚冲突、变量覆盖、显示残留。本周的联调方法是:①每个模块单独点亮 → ②两两合并 → ③整体联调,每一步都保留能工作的版本,出错就知道是哪次合并引入的。


识整合程序与报警逻辑
#include <LiquidCrystal.h>
DHT dht(2, DHT11);
LiquidCrystal lcd(12, 11, 4, 5, 6, 7); // 改线后接法
const int waterPin = A0, buzzerPin = 8;
void setup() {
dht.begin();
lcd.begin(16, 2);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
int w = analogRead(waterPin);
lcd.setCursor(0, 0); // 第1行:温湿度
lcd.print("T:"); lcd.print(t);
lcd.print(" H:"); lcd.print(h);
lcd.setCursor(0, 1); // 第2行:水位/报警
if (w >= 600) {
lcd.print("Water HIGH! WARN");
tone(buzzerPin, 1000); // 水位报警
} else {
lcd.print("Water OK "); // 等宽覆盖防残留
noTone(buzzerPin);
}
Serial.println(w);
delay(1000);
}

💡 显示残留与变量覆盖两大坑
显示残留:从"WARN"切回"OK"时,旧字符还留在屏上(如显示"OKR")。对策:两个分支输出等宽文本(不足16字符补空格),或改用 lcd.clear()(会闪烁)。
变量覆盖:合并程序时新旧代码都定义了 w、t 这类短名变量,互相顶替导致读数错乱。对策:合并前先统一变量名,一个变量只表达一个含义。
操实操:四模块联调与故障排查
- 断电接线,多模块共用5V时先核对每一路极性再上电
- LCD电位器轻调即可,不得带电反复插拔排线
- 报警测试音量较大,长时间不用时注释掉tone行
按"分模块→合并→整体"三步走:先确认每个模块单独能工作,再合并程序统一显示与报警,最后完成三种状态的一致性检查。
分模块验证
①只接LCD→屏上出现光标;②只接DHT11→串口出数;③只接水位→串口出数;④只接蜂鸣器→tone发声。四项全过才进入合并。
合并程序上传
按改线表接线,上传整合程序。LCD第1行显示温湿度,第2行显示水位状态。
三状态一致性检查
状态一正常:OK不响;状态二手握DHT11:数值变化;状态三水位超线:LCD显示WARN+蜂鸣器响。每状态核对LCD、蜂鸣器、串口三处结果是否一致,记入检查单。
排错实战
教师设置1处故障(接线或代码),按统一顺序排查:供电→公共地→引脚号→元件方向→程序语法→串口或显示结果,边查边说依据。
单第17周任务工单:传感+显示+报警联调排故⭳下载工单
操作确认清单(点击方框打勾)
- 能说明"分模块→合并→整体"的联调顺序
- LCD按改线表(12,11,4,5,6,7)接线并显示正常
- 第1行温湿度、第2行水位,无显示残留
- 水位超线时LCD提示WARN且蜂鸣器报警
- 三状态×三处(LCD/蜂鸣器/串口)结果一致
联调检查单:三状态一致性
| 测试状态 | LCD显示 | 蜂鸣器 | 串口输出 | 是否一致 |
|---|---|---|---|---|
| 正常(OK) | 不响 | |||
| 手握DHT11 | ||||
| 水位超线 | 响 |
故障排查记录(教师设置)
| 故障现象 | 排查步骤 | 定位原因 | 修复方法 |
|---|---|---|---|
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、多模块极性核对,无器件损坏 | 54321 | 54321 | 54321 |
| 电路接线 | 四模块接线与改线表一致 | 54321 | 54321 | 54321 |
| 程序代码 | 整合正确,setCursor分行、等宽覆盖、tone/noTone使用规范 | 54321 | 54321 | 54321 |
| 功能实现 | 三状态显示与报警一致,无残留错乱 | 54321 | 54321 | 54321 |
| 记录素养 | 检查单填写完整,排故过程有依据 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
多传感系统全联调
标学习目标
- 能完成超声波+温湿度+LCD+蜂鸣器五模块系统的规划与搭接
- 会用模块化变量(distance/temperature/humidity)组织数据流
- 能编写复合条件 if(distance
limit) 触发报警 - 能按"近距离/正常距离/温度变化"3种工况各测3次,记录系统差异
识系统结构与数据流
本周在周四模块基础上加回超声波,构成完整的"多传感采集→综合判断→显示报警"系统。程序按①采集②判断③显示④报警四步组织,每步一个函数,变量全局共享:
#include <LiquidCrystal.h>
DHT dht(2, DHT11);
LiquidCrystal lcd(12, 11, 4, 5, 6, 7);
const int trigPin = 9, echoPin = 10, buzzerPin = 8;
int distThr = 20, tempLimit = 30; // 两个报警阈值
float distance, temperature, humidity; // 模块化变量
void loop() {
readSensors(); // ①采集
checkAlarm(); // ②判断
showDisplay(); // ③显示
doAlarm(); // ④报警
delay(300); // 不宜过长,保证响应
}
💡 判断函数怎么写?
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long d = pulseIn(echoPin, HIGH, 30000); // 30ms超时防卡死
distance = d * 0.034 / 2;
temperature = dht.readTemperature();
humidity = dht.readHumidity();
}
void doAlarm() {
bool alarm = (distance > 0 && distance < distThr)
|| (temperature > tempLimit);
if (alarm) tone(buzzerPin, 1000);
else noTone(buzzerPin);
}
识三大典型故障与预防
- 引脚冲突:合并时核对占用表——D2(DHT11)、A0(水位)、12/11/4/5/6/7(LCD)、9/10(超声波)、8(蜂鸣器),任何两路不得共用
- 供电不足:五模块全接后从UNO的5V取电偏紧,必要时超声波单独验证一次供电是否稳定
- 循环延时过长:delay超过2秒会让超声波读数明显滞后,报警"慢半拍",控制在300~500ms
操实操:五模块系统全联调
- 断电接线,按引脚占用表逐路核对后统一上电
- 多模块共用电源,禁止在带电状态下增加模块
- 报警持续响时先断蜂鸣器一路再排查,保护听力与器件
在第17周四模块系统上加回超声波。重点是数据流的模块化组织与复合条件报警的3工况验证。
规划并搭接全系统
对照引脚占用表接线,先画简易接线草图再动手,接完组内互查一遍再上电。
上传骨架程序
先让四步函数空跑通(LCD显示、串口出数),再逐个填实采集、判断、报警逻辑。
3工况×3次测试
①近距离(<20cm):必报警;②正常距离:不报警;③温度变化(手握DHT11超过tempLimit):报警。每种工况重复3次,记录响应差异(响应时间、误报次数)。
阈值微调
根据测试结果微调distThr与tempLimit,既不漏报也不误报,固定参数请教师验收。
单第18周任务工单:多传感系统全联调⭳下载工单
操作确认清单(点击方框打勾)
- 画出系统框图:采集→判断→显示→报警四步
- 引脚占用表核对无误,无共用引脚
- 复合条件报警逻辑正确(距离或温度任一超限即响)
- 完成3工况×3次测试并记录差异
- 连续运行5分钟稳定,参数微调有记录
数据记录:3工况×3次测试
| 工况 | 第1次 | 第2次 | 第3次 | 响应时间 | 误报/漏报 |
|---|---|---|---|---|---|
| 近距离<20cm | |||||
| 正常距离 | |||||
| 温度超限 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 断电接线、引脚占用表核对,无器件损坏 | 54321 | 54321 | 54321 |
| 电路接线 | 五模块布局合理,接线规范 | 54321 | 54321 | 54321 |
| 程序代码 | 四步函数分工清晰,pulseIn超时与复合条件正确 | 54321 | 54321 | 54321 |
| 功能实现 | 3工况触发正确,连续运行稳定 | 54321 | 54321 | 54321 |
| 记录素养 | 9次测试数据完整,差异分析有依据 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
人体感应、红外遥控与继电器
标学习目标
- 能说明HC-SR501人体感应模块的输出特性与延时/距离调节方法
- 能完成 PIR OUT→D7、继电器IN→D8、红外接收→D2 的联动控制电路
- 理解继电器高低电平触发逻辑,会用 digitalRead 控制继电器通断
- 能完成无人/有人/遥控开启/遥控关闭4种工况测试并记录
识人体感应与继电器

PIR感应到人体红外变化时,OUT脚输出高电平并保持一段时间(延时电位器可调)。继电器是"用小电流控制大电流"的开关:模块IN脚收到控制信号,内部触点吸合,外接电路接通。


void setup() {
pinMode(pirPin, INPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // 低电平触发:HIGH=断开
Serial.begin(9600);
}
void loop() {
int state = digitalRead(pirPin);
Serial.println(state);
if (state == HIGH) {
digitalWrite(relayPin, LOW); // 有人:吸合
} else {
digitalWrite(relayPin, HIGH); // 无人:断开
}
delay(200);
}
识红外遥控解码
红外接收头把遥控器的红外信号解码为键值。安装 IRremote 库后,先"读键值":按下遥控器按键,串口打印对应编码;再用 switch 判断键值执行动作。
💡 读键值示例(先跑通再整合)
void setup() {
Serial.begin(9600);
IrReceiver.begin(2, true); // 红外接收→D2
}
void loop() {
if (IrReceiver.decode()) {
Serial.println(IrReceiver.decodedIRData.command, HEX);
IrReceiver.resume();
}
}
把每个按键的键值记下来(不同遥控器不同),整合时用if(键值==0x45) 开、if(键值==0x46) 关 的方式接入主程序。
操实操:人来灯亮、遥控开关
- 继电器输出端仅接低压LED,严禁任何市电操作
- 断电接线,PIR上电后需约1分钟初始化稳定再测试
- 红外接收与PIR共用5V,接线时逐路核对极性
三路输入输出整合:PIR检测人体→继电器通断LED;红外遥控作为手动开关。分模块验证后做4工况测试。
PIR单独验证
OUT→D7,串口监视digitalRead结果:靠近挥手应变1,静置约延时后回0。初始化等待约1分钟,期间读数不可信。
继电器单独验证
LED负载接NO/COM。先实测触发电平,再上传翻转程序:吸合指示灯亮、LED点亮。

红外读键值
接收头→D2,跑通读键值程序,记录"开"与"关"两个按键的编码。
整合与4工况测试
①无人:灯灭;②有人:灯亮;③遥控"开"键:强制亮;④遥控"关"键:强制灭。每种工况测3次,记录PIR自动模式与遥控手动模式的切换逻辑是否清晰。
单第19周任务工单:人体感应、红外遥控与继电器⭳下载工单
操作确认清单(点击方框打勾)
- 三模块接线正确(PIR→D7、继电器→D8、红外→D2)
- 已实测继电器触发电平并在程序中正确使用
- 记录遥控器"开/关"两个按键的键值
- 完成无人/有人/遥控开/遥控关4工况测试
- 继电器输出端只接了低压LED负载
数据记录:4工况测试
| 工况 | 第1次 | 第2次 | 第3次 | LED状态 | 继电器指示灯 |
|---|---|---|---|---|---|
| 无人 | |||||
| 有人 | |||||
| 遥控开启 | |||||
| 遥控关闭 |
红外键值记录
| 按键 | 键值(HEX) | 功能 |
|---|---|---|
| 开启 | ||
| 关闭 |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 仅接低压负载、断电接线、PIR初始化等待 | 54321 | 54321 | 54321 |
| 电路接线 | 三模块接线正确,继电器端子接法规范 | 54321 | 54321 | 54321 |
| 程序代码 | digitalRead判断、触发电平、红外键值判断正确 | 54321 | 54321 | 54321 |
| 功能实现 | 4工况动作正确,自动/手动模式不冲突 | 54321 | 54321 | 54321 |
| 记录素养 | 触发电平、键值、工况数据完整 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%
综合实战与期末考查
标学习目标
- 能以小组为单位选定主题模块(距离/温湿度/水位/光敏/人体感应)
- 能统一规划5V/GND/输入口/输出口,先画接线图再分段搭接
- 能按"采集→判断→显示→报警"步骤组织程序,逐模块验证后合并
- 能完成成果展示:≥2种工况演示、≥3次重复测试,通过考查验收
识综合系统设计方法
本周把一学期所学串成一个完整作品。拿到题目先别急着接线——按四步走:①选模块定功能 → ②画接线图分引脚 → ③分段搭接逐个验证 → ④合并程序整体调试。
| 可选模块与典型用途 | 信号脚 | 参考接法 | 典型功能 |
|---|---|---|---|
| HC-SR04超声波 | Trig/Echo | D9/D10 | 测距报警、避障提示 |
| DHT11温湿度 | DATA | D2 | 环境监测、超温报警 |
| 水位传感器 | AO | A0 | 水位三档、溢水报警 |
| 光敏分压 | 中点 | A1 | 感光灯、暗光提示 |
| HC-SR501人体感应 | OUT | D7 | 人来灯亮、布防联动 |
| LCD1602 | RS/E/D4-D7 | 12/11/4/5/6/7 | 数据显示(改线表接法) |
| 蜂鸣器/继电器 | 控制脚 | D8 | 声音报警/低压负载开关 |
void loop() {
readSensors(); // ① 读全部传感器
checkThresholds(); // ② 逐项阈值判断
updateDisplay(); // ③ 刷新LCD/串口
doActions(); // ④ 报警/开关动作
delay(300);
}
识考查验收标准
| 验收项 | 要求 | 分值占比 |
|---|---|---|
| 功能演示 | ≥2种工况演示成功(如报警触发/解除) | 40% |
| 重复测试 | 每种工况≥3次测试,结果稳定 | 20% |
| 接线规范 | 先有接线图,实际接线与图一致 | 15% |
| 程序质量 | 变量命名、注释、阈值集中管理 | 15% |
| 实训记录 | 数据记录完整,故障排查有过程 | 10% |
- 组员分工:接线、编程、记录、汇报四角色,人人都要参与实操
- 常见失误:跳过分模块验证直接全接(出错查不动);只演示不测试(工况只跑1次不算通过)
操实操:小组综合作品实战
- 继电器类作品仍只接低压负载,严禁市电
- 多模块供电前先核对总电流,必要时分区上电
- 焊接或改装结构件须教师在场,规范使用工具
小组选题→设计→搭接→调试→展示。教师按验收标准逐组考查,作品、程序与实训记录三项同时提交。
选题与方案(30分钟)
小组确定主题(如"智能环境监测站""自动布防灯"),列出模块清单、画出接线图、写清2种以上目标工况,报教师审核。
分段搭接逐个验证
按接线图搭一路验一路:传感器出数、显示正常、执行动作,各模块单独通过后再合并。

合并调试与测试
按四步骨架合并程序;每种目标工况≥3次测试,记录响应与误差,微调阈值至稳定。
展示与考查验收
每组5分钟:演示≥2种工况、说明系统框图与分工、提交作品+程序+实训记录。教师按表评分。
单第20周任务工单:综合实战与期末考查⭳下载工单
操作确认清单(点击方框打勾)
- 小组方案含模块清单、接线图、目标工况,经教师审核
- 接线与图纸一致,引脚无冲突
- 程序按四步骨架组织,命名与注释规范
- 完成≥2种工况演示,每种≥3次测试
- 作品、程序、实训记录三项材料齐全
作品信息
| 项目 | 内容 |
|---|---|
| 作品名称 | |
| 选用模块 | |
| 小组分工 |
工况测试记录
| 工况 | 第1次 | 第2次 | 第3次 | 结果稳定性 |
|---|---|---|---|---|
| 工况一: | ||||
| 工况二: |
评评价反馈
对照下表自评、互评,教师复评。点击方格打分(每项 1-5 分)。
| 评价项目 | 评价标准 | 自评 | 互评 | 师评 |
|---|---|---|---|---|
| 安全操作 | 低压负载、分区上电、规范使用工具 | 54321 | 54321 | 54321 |
| 电路接线 | 按图施工,逐路验证,引脚无冲突 | 54321 | 54321 | 54321 |
| 程序代码 | 四步骨架清晰,命名注释规范,阈值集中管理 | 54321 | 54321 | 54321 |
| 功能实现 | ≥2工况演示成功,≥3次测试稳定 | 54321 | 54321 | 54321 |
| 记录素养 | 方案图、测试数据、排查过程完整可溯 | 54321 | 54321 | 54321 |
评分说明:5=优秀 · 4=良好 · 3=合格 · 2=需改进 · 1=不合格 | 平时考核占总评 50%,平时测验 30%,期末考查 20%