【实验一】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

相关新闻

SAP CO-PC 成本核算变式:OKKI与OKKN 2个关键组件配置关联与影响分析

SAP CO-PC 成本核算变式:OKKI与OKKN 2个关键组件配置关联与影响分析

SAP CO-PC成本核算变式深度解析:OKKI与OKKN的配置逻辑与实战影响在SAP产品成本控制(CO-PC)模块中,成本核算变式配置是物料成本估算的核心框架。当资深顾问需要为企业定制成本核算流程时,往往会在SPRO路径的迷宫中面临关…

2026/7/13 5:29:38 阅读更多 →
A3910与STM32L4A6RG在电机控制中的高效应用

A3910与STM32L4A6RG在电机控制中的高效应用

1. 认识A3910与STM32L4A6RG这对黄金搭档当我在去年设计一套工业级电机控制系统时,第一次将A3910电机驱动器和STM32L4A6RG微控制器组合使用。这个搭配带来的性能提升让我印象深刻——A3910提供高达3A的持续输出电流,而STM32L4A6RG的80MHz Cortex-M4内核则…

2026/7/13 5:27:37 阅读更多 →
Spark RDD 数据去重避坑指南:5个常见错误与高效编码模式

Spark RDD 数据去重避坑指南:5个常见错误与高效编码模式

Spark RDD 数据去重避坑指南:5个常见错误与高效编码模式在分布式计算领域,数据去重是一项基础但至关重要的操作。作为Spark核心抽象,RDD(弹性分布式数据集)提供了多种去重方法,但在实际应用中,开…

2026/7/13 5:25:37 阅读更多 →

最新新闻

数据科学如何解决日常业务问题:从Excel报警到48小时行动项

数据科学如何解决日常业务问题:从Excel报警到48小时行动项

1. 这不是“高大上”的理论课,而是每天早上九点开会前你真正需要的那张数据作战地图“Data Science Endure Everyday Business Problems”——这个标题乍看像一句学术论文的副标题,但把它拆开揉碎了看,它其实说的是:数据科学不是悬…

2026/7/13 6:32:14 阅读更多 →
Godot引擎中Flowmap技术与Waterways插件实现动态河流全流程解析

Godot引擎中Flowmap技术与Waterways插件实现动态河流全流程解析

1. 项目概述:在Godot中创造灵动的虚拟水域在3D游戏或交互式体验中,水体的表现力是提升沉浸感的关键一环。静态的水面虽然常见,但总让人觉得少了些生机。而一条能够蜿蜒流淌、波光粼粼的动态河流,则能瞬间将场景“盘活”。过去&…

2026/7/13 6:30:14 阅读更多 →
Unity打包后UMP视频黑屏?5大核心原因与系统化解决方案

Unity打包后UMP视频黑屏?5大核心原因与系统化解决方案

1. 项目概述:从编辑器到独立程序,UMP视频播放的“断崖”在Unity 2019中集成Universal Media Player(UMP)插件来播放视频,是很多开发者实现多媒体功能(如开场动画、教程视频、背景视频墙)的常见选…

2026/7/13 6:28:13 阅读更多 →
Mega-MoE 代码导读(下篇):Pull、对称内存与 WGMMA Pipel

Mega-MoE 代码导读(下篇):Pull、对称内存与 WGMMA Pipel

接续上篇(warp 分工、Dispatch metadata、L1/L2、与 naive All-to-All 对照)。 本篇聚焦:索引表与 Pull 的对应关系、对称内存 / rendezvous、L1 pool 握手、process_math_block 与 mbarrier / WGMMA 协议。一、索引表写 vs Pull 读&#xff…

2026/7/13 6:24:12 阅读更多 →
A3908与STM32F446RE在运动控制系统中的优化实践

A3908与STM32F446RE在运动控制系统中的优化实践

1. 为什么选择A3908与STM32F446RE组合在工业级运动控制系统中,电机驱动芯片与主控MCU的选型直接决定了系统响应速度和定位精度。A3908作为Allegro MicroSystems推出的全桥驱动芯片,其2.5A持续输出电流和100kHz PWM支持能力,使其特别适合需要快…

2026/7/13 6:24:12 阅读更多 →
STM32与PAM8904构建高效音频通知系统设计

STM32与PAM8904构建高效音频通知系统设计

1. 项目概述与核心价值在现代嵌入式系统中,可靠的通知机制是确保设备状态及时传达的关键要素。基于STM32F412RE微控制器和PAM8904音频驱动芯片构建的通知系统,能够为工业控制、智能家居、医疗设备等场景提供灵活多样的警报解决方案。这个项目的独特之处在…

2026/7/13 6:22:11 阅读更多 →

日新闻

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想要调整Palwor…

2026/7/13 0:01:19 阅读更多 →
浦东旧模块回收哪家强?专业评测带你一探究竟

浦东旧模块回收哪家强?专业评测带你一探究竟

于科技迅猛飞速迭代的当下此刻, 旧模块的回收处置, 不但关联着资源的再度利用, 而且更牵扯到数据安全以及环保合规事宜。你是不是也正为那堆积得如同山峦般的旧模块而发愁? 是不是不清楚该怎样安全且高效地去处理它们? 别忧心烦恼, 就在今日, 我会以具备权威影响力的自媒体博…

2026/7/13 0:01:19 阅读更多 →
卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

1 研究背景与现存技术痛点(提出问题)基因工程、蛋白质组学、生物制药研发流程中,蛋白质分离纯化是决定下游实验成败的关键环节。当前实验室常规蛋白质分离纯化工艺存在三类难以标准化的技术瓶颈:传统离子交换、分子筛层析无特异性…

2026/7/13 0:05:20 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/13 4:38:36 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/13 4:38:38 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/13 4:38:40 阅读更多 →

月新闻