Arduino IDE 与 Sketch
安装并熟悉 IDE,学会用开发板管理器和库管理器扩展功能,理解从源码到芯片的编译上传全过程。
安装并熟悉 IDE,学会用开发板管理器和库管理器扩展功能,理解从源码到芯片的编译上传全过程。
.ino。每个 Sketch 必须放在同名文件夹里(例如 Blink/Blink.ino)。IDE 会把文件夹内所有 .ino 拼接后再编译。默认保存在"文档/Arduino"目录下。#include 使用,免去自己造轮子。搜索名字→安装→在代码顶部包含头文件。也可手动导入 .zip 库。COM3 之类,macOS/Linux 显示为 /dev/cu.usbmodemXXXX 或 /dev/ttyUSB0。插上板子才会出现,需在工具菜单里选中它。Serial.print() 输出的文本,是 Arduino 世界的"printf 调试法"。绘图器(Serial Plotter)把数字实时画成折线图,非常适合观察传感器波形。三大平台步骤略有不同,但都从官网 arduino.cc/en/software 下载:
Windows:下载 .exe 安装包,一路 Next。安装过程会弹出
"是否安装 USB 驱动",全部勾选允许(这是识别板子的关键)。
macOS: 下载 .dmg,把 Arduino IDE 拖进"应用程序"。
首次打开右键→打开,绕过未知开发者提示。
Linux: 下载 .AppImage,chmod +x 后双击运行;
或 Debian/Ubuntu 用 apt / Flatpak 安装。
需把当前用户加入 dialout 组才能访问串口:
sudo usermod -a -G dialout $USER (之后重新登录)
官方 Uno 用的是 ATmega16U2 做 USB 转串口,插上即认。而便宜的兼容板大多用 CH340 或 CP2102 芯片,Windows 可能识别不出串口。这时需单独安装对应 USB 转串口驱动(搜 "CH340 驱动")。装完在设备管理器能看到新的 COM 口即成功。
要为第 11-12 章的联网做准备,现在就把 ESP32 内核装上:
① 文件 → 首选项 → "其他开发板管理器地址" 填入: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json ② 工具 → 开发板 → 开发板管理器 ③ 搜索 "esp32" → 找到 "esp32 by Espressif Systems" → 安装 ④ 安装完成后,开发板列表里就会出现 "ESP32 Dev Module" 等选项
不同芯片的指令集、外设、编译器都不一样。"内核(core)"就是让 Arduino 的统一 API(digitalWrite 等)在特定芯片上跑起来的适配层+工具链。装了 ESP32 内核,你写的 digitalWrite 才会被翻译成 ESP32 能懂的机器码。多个内核可共存,切换开发板即切换内核。
以后常用的 DHT 温湿度库为例,演示库的安装:
工具 → 管理库(或左侧 📚 图标) 搜索 "DHT sensor library" 选 Adafruit 出品的那个 → 安装 (会提示是否一起装依赖 Adafruit Unified Sensor,点"全部安装")
// 装好库后,就能在代码顶部包含它的头文件 #include <DHT.h> // 尖括号 = 从库目录找 #include "myfile.h" // 双引号 = 从当前 Sketch 文件夹找
编译时若报 fatal error: DHT.h: No such file or directory,几乎都是库没装或装错了同名库。回到库管理器确认已安装;ESP32 上有些库不兼容,注意看库描述里支持的平台。
一个组织良好的 Sketch 通常分为几个区块,养成好习惯代码才易维护:
/* ===== ① 头文件区:包含库 ===== */ #include <Servo.h> /* ===== ② 宏与全局常量:用 #define / const 定义引脚 ===== */ #define LED_PIN 13 // #define 没有类型,编译前文本替换 const int BTN_PIN = 2; // const 更推荐:有类型、可调试 /* ===== ③ 全局变量:跨 loop 保存状态 ===== */ int counter = 0; bool ledState = false; /* ===== ④ 初始化:setup 只跑一次 ===== */ void setup() { Serial.begin(9600); // 启动串口,波特率 9600 pinMode(LED_PIN, OUTPUT); pinMode(BTN_PIN, INPUT_PULLUP); Serial.println("系统启动完成"); } /* ===== ⑤ 主循环:loop 无限执行 ===== */ void loop() { counter++; Serial.print("计数: "); Serial.println(counter); delay(500); } /* ===== ⑥ 自定义函数:把重复逻辑抽出来 ===== */ void blinkOnce(int ms) { digitalWrite(LED_PIN, HIGH); delay(ms); digitalWrite(LED_PIN, LOW); delay(ms); }
上传后输出窗口会报 项目使用 924 字节 (2%) 程序存储空间 和 全局变量使用 9 字节 (0%) 动态内存。前者是 Flash(存程序,32KB),后者是 SRAM(存变量,2KB)。SRAM 极其宝贵,大量使用 String 或大数组时容易耗尽导致死机——这是进阶后要警惕的坑。
从官网免费下载 Arduino IDE(推荐 2.x),Windows 记得装 USB 驱动,兼容板往往还需单独装 CH340/CP2102 驱动。IDE 集编辑、编译、上传、串口监视于一体:工具栏两个下拉框分别选开发板型号和串口,上传前二者必须都选对。开发板管理器用来安装不同芯片的内核(ESP32 需先在首选项填附加网址再搜索安装);库管理器是"代码商店",一键装库后用 #include <库.h> 调用。Sketch 是程序单元,主文件 .ino 必须放在同名文件夹里,组织上分为头文件、常量、全局变量、setup、loop、自定义函数六块。定义引脚推荐用 const int 而非 #define(有类型、更安全)。上传流程:预处理→编译→链接→avrdude 写 Flash→复位运行;输出窗口的字节占用分别对应 Flash(程序)和 SRAM(变量),后者只有 2KB 要省着用。