Skip to content

Arduino - 程序结构

欢迎来到 Arduino 的世界!在本章中,我们将探讨 Arduino 程序(称为 sketch,即“草图”或“程序草稿”)的基本结构。理解这一结构是编写微控制器程序的第一步,也是最关键的一步。

Arduino sketch 使用基于 C++ 的语言编写。然而,Arduino 环境简化了许多复杂性。这是通过 Arduino Core 实现的,它是一组在后台运行的库。它会自动包含必要的头文件(例如 Arduino.h),并提供一个简单的、由两个函数组成的结构,这对于嵌入式系统来说非常完美。

每个 Arduino sketch 都必须包含两个特殊函数。可以把它们想象成一出戏的两个主要环节:搭建舞台和实际表演。

  • void setup(): 这是“舞台设置”。它只在 Arduino 板上电或复位时运行一次。
  • void loop(): 这是“表演”。在 setup() 执行完毕后,只要电路板有电,此函数就会持续循环运行,一遍又一遍。
void setup() {
// 初始化代码放在这里。
// 此部分在启动或复位后只运行一次。
}
  • 用途:setup() 函数是您为 sketch 运行做准备的地方。用它来初始化变量、配置引脚模式(输入/输出)以及启动通信库(例如用于调试的 Serial)。
  • 执行:它是电路板的 bootloader(引导加载程序)完成自身启动序列后,您的代码中第一个执行的部分。
void loop() {
// 需要重复执行的主代码放在这里。
}
  • 用途:loop() 函数是您程序的核心。您将大部分时间花在这里编写代码,用于读取传感器、做出决策以及控制执行器,如 LED 和电机。
  • 执行:此函数无限循环,使您的程序能够持续响应其环境并更新其状态。

电子领域的“Hello, World!”是闪烁 LED。这是一种简单而有效的方法,用于确认您的代码正在硬件上运行。大多数 Arduino 板都带有一个内置 LED,您可以通过 LED_BUILTIN 常量来控制它。

// 微控制器的“Hello, World!”:闪烁一个 LED。
// 使用内置常量 'LED_BUILTIN' 使此 sketch 在不同类型的 Arduino 板上可移植。
const int ledPin = LED_BUILTIN;
// setup() 函数在您按下复位按钮或给电路板上电时运行一次。
void setup() {
// 初始化数字引脚为输出模式。
pinMode(ledPin, OUTPUT);
}
// loop() 函数会永远一遍又一遍地运行。
void loop() {
digitalWrite(ledPin, HIGH); // 打开 LED(HIGH 是高电平)
delay(1000); // 等待一秒钟(1000 毫秒)
digitalWrite(ledPin, LOW); // 通过将电压设置为 LOW 来关闭 LED
delay(1000); // 再等待一秒钟
}
  • 使用 const 定义常量:将引脚号和其他固定值声明为常量(例如 const int ledPin = LED_BUILTIN;)可以使您的代码更安全、更易读。
  • 现代开发环境:尽管 Arduino IDE 对初学者很友好,但可以考虑使用像 VS Code 搭配 PlatformIO 扩展这样的工具。它们提供代码自动补全、项目管理和更简单的库集成等高级功能。
  • 版本控制:随着项目规模的增长,使用像 Git 这样的版本控制系统至关重要。它允许您跟踪更改、与他人协作,并在出现问题时回溯到以前的版本。