【实验一】Arduino开发板实战

发布时间:2026/7/13 5:31:15
【实验一】Arduino开发板实战 目录一、AnalogReadSerial 实验测试1.1硬件接线方式1.2逐行代码详细解释二、BareMinimum 实验测试2.1逐行代码详解三、Blink实验测试3.1逐行代码详解四、DigitalReadSerial实验测试4.1硬件连接方式4.2逐行代码详解五、Fade实验测试5.1硬件连接方式5.2逐行代码详解六、ReadAnalogVoltage实验测试6.1硬件连接方式6.2逐行代码详解本次实验选用Arduino Uno R3作为核心主控开发板。Arduino Uno R3 是一款基于 ATmega328P 单片机的开源通用开发板具备丰富的数字引脚与模拟引脚、稳定的供电电路和标准化接口操作简便、兼容性强非常适合嵌入式入门教学实验。软件端使用官方 Arduino IDE 集成开发环境完成程序编写、编译与上传本次功能验证所用测试代码为软件内置官方示例程序完整路径为文件File→ 示例Examples→ 01.Basics基础示例目录下的基础程序。一、AnalogReadSerial 实验测试1.1硬件接线方式方式一有电位器情况下电位器中间引脚接 A0两侧引脚分别接 5V 和 GND 地。电位器是可变电阻转动旋钮可改变 A0 引脚的输入电压0V~5V电压变化 →analogRead(A0)的数值随之在 0~1023 之间变化在 Arduino IDE 打开串口监视器 / 串口绘图器可实时观察数值变化曲线。方式二无电位器情况下A0引脚可以接 5V 3.3V和 GND 地分别测试。5V 3.3V和 GND 地对应数值大致为1023674和0在 Arduino IDE 打开串口监视器 / 串口绘图器可实时观察数值变化曲线。Arduino IDE 打开串口监视器 / 串口绘图器打开方式如下需设置好串口监视器波特率为9600。1.2逐行代码详细解释/* 模拟量读取并串口输出 AnalogReadSerial 读取A0引脚的模拟输入信号将数值打印到串口监视器 可通过串口绘图器查看波形工具 串口绘图器 接线方法电位器中间引脚接 A0两侧引脚分别接 5V 和 GND 地 */ // setup()函数按下复位/上电时仅运行一次用于初始化设置 void setup() { // 初始化串口通信波特率设置为9600 Serial.begin(9600); } // loop()函数循环重复执行持续读取模拟信号 void loop() { // 读取A0模拟引脚的输入值范围0 ~ 1023 int sensorValue analogRead(A0); // 通过串口打印读取到的数值每次打印后自动换行 Serial.println(sensorValue); // 短暂延时保证读取和传输稳定单位毫秒(ms) delay(1); }二、BareMinimum 实验测试BareMinimum Arduino 的最小程序框架是所有 Arduino 程序的基础模板。Arduino 程序必须包含这两个函数缺一不可。setup()一次性初始化loop()主循环本身默认是空代码不会实现任何实际功能仅用来展示基础结构。2.1逐行代码详解/* BareMinimum Arduino 最基础模板代码 所有Arduino程序的最简基础结构仅包含两个必备函数 */ // setup()上电/复位时只运行一次用于初始化 void setup() { // 初始化代码可写在这里 } // loop()反复无限循环运行主程序逻辑 void loop() { // 循环执行的代码可写在这里 }三、Blink实验测试核心功能Arduino 板载 LED 以 1 秒周期持续闪烁亮 1 秒、灭 1 秒硬件Arduino Uno R3 板载 LED引脚 13无需额外接线也可改引脚号外接用途验证开发板能否正常烧录程序、正常运行是 Arduino 入门经典示例。3.1逐行代码详解/* Blink 闪烁程序 控制板载LED亮1秒、灭1秒反复循环 大多数Arduino开发板都自带可控制板载LED UNO、MEGA、ZERO型号板载LED对应数字引脚13 MKR1000型号板载LED对应数字引脚6 使用宏定义 LED_BUILTIN 可适配不同型号开发板自动匹配正确引脚 如需查看对应型号板载LED引脚信息可查阅官方硬件技术文档 https://docs.arduino.cc/hardware/ */ // setup函数上电或按下复位按钮时仅运行一次 void setup() { // 将板载LED引脚设置为输出模式 pinMode(LED_BUILTIN, OUTPUT); } // loop函数无限循环持续运行 void loop() { digitalWrite(LED_BUILTIN, HIGH); // 将引脚置为高电平点亮LED delay(1000); // 延时1000毫秒1秒保持点亮状态 digitalWrite(LED_BUILTIN, LOW); // 将引脚置为低电平熄灭LED delay(1000); // 延时1000毫秒1秒保持熄灭状态 }四、DigitalReadSerial实验测试4.1硬件连接方式方式一有元器件的情况下按键一端接 D2另一端接 GND / 5V最好串联 10kΩ 电阻做下拉 / 上拉防止悬空乱跳地。按下按键 → 引脚电平改变串口数值在 0 和 1 之间切换松开按键 → 保持原有电平数值在 Arduino IDE 打开串口监视器 / 串口绘图器可实时观察数值变化曲线。方式二无元器件情况下D2引脚可以接 5V 3.3V和 GND 地分别测试。5V 3.3V和 GND 地对应数值为1和0在 Arduino IDE 打开串口监视器 / 串口绘图器可实时观察数值变化曲线。高电平为1低电平为0。4.2逐行代码详解/* DigitalReadSerial 数字引脚读取并串口输出 读取2号数字引脚的按键输入信号将读取结果打印至串口监视器 */ // 定义按键连接的引脚为数字引脚2 int pushButton 2; // setup()函数上电或按下复位时仅运行一次完成初始化 void setup() { // 初始化串口通信波特率9600用于串口监视器查看数据 Serial.begin(9600); // 将按键引脚设置为输入模式用于读取外部电平信号 pinMode(pushButton, INPUT); } // loop()函数持续无限循环运行 void loop() { // 读取数字引脚2的电平状态返回值为 HIGH/1 或 LOW/0 int buttonState digitalRead(pushButton); // 通过串口打印按键状态数值并自动换行 Serial.println(buttonState); // 短暂延时保证数据读取和串口传输稳定 delay(1); }五、Fade实验测试5.1硬件连接方式LED 正极长脚串联限流电阻220Ω 左右 → 引脚 9LED 负极短脚 → GND核心原理PWM 脉宽调制调光实现 LED 呼吸渐变效果。5.2逐行代码详解/* Fade 渐变呼吸灯程序 本示例使用 analogWrite() 函数实现9号引脚LED亮度渐变呼吸效果 analogWrite()依靠PWM脉冲宽度调制实现模拟调光更换引脚时 务必选用支持PWM功能的引脚。Arduino Uno R3上PWM引脚标记有~ ~3、~5、~6、~9、~10、~11 */ int led 9; // LED连接到支持PWM的9号引脚 int brightness 0; // 存储LED亮度值初始亮度为0全灭 int fadeAmount 5; // 每次循环亮度变化步长 // setup()函数上电/复位时仅运行一次初始化引脚模式 void setup() { // 将9号引脚设置为输出模式 pinMode(led, OUTPUT); } // loop()函数无限循环运行实现亮度渐变 void loop() { // 通过PWM设置LED引脚亮度参数范围0(全灭)~255(最亮) analogWrite(led, brightness); // 更新亮度值 brightness brightness fadeAmount; // 到达亮度边界(0或255)时反转渐变方向 if (brightness 0 || brightness 255) { fadeAmount -fadeAmount; } // 延时30ms控制渐变速度让调光效果肉眼可见 delay(30); }六、ReadAnalogVoltage实验测试6.1硬件连接方式方式一有电位器情况下电位器中间引脚接 A0两侧引脚分别接 5V 和 GND 地。转动电位器旋钮A0 引脚电压会在 0V~5V 之间平滑变化串口数值随之同步变化把连续模拟电压0~1023 之间变化转为数字量0-5V在 Arduino IDE 打开串口监视器 / 串口绘图器可实时观察数值变化曲线。方式二无电位器情况下A0引脚可以接 5V 3.3V和 GND 地分别测试。在 Arduino IDE 打开串口监视器 / 串口绘图器可实时观察数值变化曲线。6.2逐行代码详解/* ReadAnalogVoltage 读取模拟电压程序 读取A0引脚的模拟输入信号将原始ADC数值换算为实际电压值并打印到串口监视器 可通过串口绘图器查看电压变化曲线工具 串口绘图器 接线方法电位器中间引脚接 A0两侧引脚分别接 5V 和 GND 地 */ // setup()函数上电或按下复位按钮时仅运行一次完成初始化 void setup() { // 初始化串口通信波特率设置为9600 Serial.begin(9600); } // loop()函数无限循环持续运行 void loop() { // 读取A0模拟引脚的原始ADC数值范围0 ~ 1023 int sensorValue analogRead(A0); // 将0~1023的ADC读数换算为真实电压0~5V float voltage sensorValue * (5.0 / 1023.0); // 通过串口打印实际电压值 Serial.println(voltage); }参考链接https://docs.arduino.cc/built-in-examples