- Authors

- Name
- Youngju Kim
- @fjvbn20031
- 引言
- 为什么开发者要学习电子控制
- 路线图
- 所需物品(5万韩元就够!)
- 基础概念:只需了解 3 点
- 实践 1:LED 闪烁(Hello World)
- 实践 2:用按钮控制 LED
- 实践 3:温湿度传感器(DHT11)
- 实践 4:伺服电机控制(乒乓球机器人的第一步!)
- 实践 5:用 PWM 调节 LED 亮度
- 开发者项目创意
- AI + 电子控制融合(Ultimate Goal)
- 系列路线图
- 测验

引言
我们每天都在写代码,但你是否体验过代码与物理世界相遇的那一刻?当 LED 因为你的代码而亮起的那一瞬间,软件开发的一个全新维度就此打开。
这个系列是面向软件开发者的电子控制入门。只要你会 C/C++ 或 Python,电子控制就比想象中容易得多。
为什么开发者要学习电子控制
- 全栈的真正含义 — 软件 + 硬件 = 完整系统
- 机器人时代 — 2026 年进入人形机器人时代
- IoT/Edge AI — 从云端走向设备端
- 爱好即实力 — 嵌入式开发者的身价持续上涨
路线图
[阶段 1] Arduino 基础(本文)
└── LED、按钮、传感器、伺服电机
[阶段 2] ESP32 IoT
└── WiFi、MQTT、Web 仪表盘
[阶段 3] Raspberry Pi + 摄像头
└── 计算机视觉、边缘 AI
[阶段 4] ROS 2 机器人
└── 自主导航、机械臂
[阶段 5] AI + 硬件融合
└── 语音识别机器人、智能家居
所需物品(5万韩元就够!)
| 部件 | 价格 | 用途 |
|---|---|---|
| Arduino Uno R4 WiFi | ~25,000 韩元 | 主板 |
| 面包板 + 跳线 | ~5,000 韩元 | 电路连接 |
| 37 种传感器套件 | ~15,000 韩元 | 各类实验 |
| SG90 伺服电机 x2 | ~3,000 韩元 | 电机控制 |
基础概念:只需了解 3 点
1. 数字 vs 模拟
数字:0 或 1(开/关)
→ LED 控制、按钮读取
→ Arduino: digitalRead(), digitalWrite()
模拟:0~1023 连续值
→ 温度传感器、光敏传感器
→ Arduino: analogRead(), analogWrite()(PWM)
2. 电压、电流、电阻(欧姆定律)
V = I × R
V(电压)= 5V(Arduino 默认)
R(电阻)= 220Ω(LED 保护用)
I(电流)= 5V / 220Ω = 22.7mA ✅(LED 安全范围)
面向开发者的类比:电压 = API 请求,电流 = 数据流,电阻 = Rate Limiter
3. GPIO(General Purpose Input/Output)
Arduino Uno R4:
数字引脚: D0~D13(输入/输出)
模拟引脚: A0~A5(输入)
PWM 引脚: D3, D5, D6, D9, D10, D11(伪模拟输出)
电源: 5V, 3.3V, GND
实践 1:LED 闪烁(Hello World)
电路
Arduino D13 ──[220Ω]──[LED(+)]──[LED(-)]── GND
代码
// Blink — 电子控制的 Hello World
void setup() {
pinMode(13, OUTPUT); // 将 D13 设为输出模式
}
void loop() {
digitalWrite(13, HIGH); // LED ON
delay(1000); // 等待 1 秒
digitalWrite(13, LOW); // LED OFF
delay(1000); // 等待 1 秒
}
如果你是 Python 开发者:可以用 MicroPython 代替 Arduino IDE!
# MicroPython(在 ESP32 上运行)
from machine import Pin
import time
led = Pin(13, Pin.OUT)
while True:
led.value(1) # ON
time.sleep(1)
led.value(0) # OFF
time.sleep(1)
实践 2:用按钮控制 LED
const int buttonPin = 2;
const int ledPin = 13;
int buttonState = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // 使用内部上拉电阻
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) { // 按钮被按下(因为是 PULLUP,所以是 LOW)
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
实践 3:温湿度传感器(DHT11)
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
Serial.print("温度: ");
Serial.print(temperature);
Serial.print("°C / 湿度: ");
Serial.print(humidity);
Serial.println("%");
delay(2000);
}
实践 4:伺服电机控制(乒乓球机器人的第一步!)
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9); // 将伺服电机连接到 D9 引脚
}
void loop() {
// 0 度 → 180 度扫描
for (int angle = 0; angle <= 180; angle += 10) {
myServo.write(angle);
delay(50);
}
// 180 度 → 0 度扫描
for (int angle = 180; angle >= 0; angle -= 10) {
myServo.write(angle);
delay(50);
}
}
实践 5:用 PWM 调节 LED 亮度
const int ledPin = 9; // PWM 引脚
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// Fade in
for (int brightness = 0; brightness <= 255; brightness += 5) {
analogWrite(ledPin, brightness);
delay(30);
}
// Fade out
for (int brightness = 255; brightness >= 0; brightness -= 5) {
analogWrite(ledPin, brightness);
delay(30);
}
}
开发者项目创意
| 项目 | 难度 | 可对接的软件 |
|---|---|---|
| 乒乓球计分板 | ⭐⭐ | 对接 fingerscore |
| 服务器机房温度监控 | ⭐⭐ | Grafana 仪表盘 |
| 入侵检测告警 | ⭐⭐⭐ | Telegram Bot 通知 |
| 双轴摄像头云台 | ⭐⭐⭐ | OpenCV 人脸追踪 |
| 自定义宏键盘 | ⭐⭐⭐ | 开发生产力工具 |
| AI 智能家居 | ⭐⭐⭐⭐ | K8s + MQTT + LLM |
AI + 电子控制融合(Ultimate Goal)
[Arduino 传感器] → [ESP32 WiFi] → [K8s MQTT Broker]
↓
[AI 推理(GPU 服务器)]
↓
[控制命令 → 电机/LED]
把家里的 GPU 服务器和 Arduino 连接起来,就能实现:
- 语音命令 → Qwen3-TTS → 扬声器(omen)
- 摄像头画面 → LTX-2 分析 → 伺服电机控制(spark01)
- 传感器数据 → 异常检测 AI → 告警(spark02)
系列路线图
| 篇 | 主题 | 状态 |
|---|---|---|
| 第 1 篇 | Arduino 基础(本文) | ✅ |
| 第 2 篇 | ESP32 WiFi + MQTT IoT | 🔜 |
| 第 3 篇 | Raspberry Pi + 摄像头视觉 | 🔜 |
| 第 4 篇 | ROS 2 机器人控制基础 | 🔜 |
| 第 5 篇 | AI + 硬件集成项目 | 🔜 |
📝 测验 — 电子控制基础(点击查看!)
Q1. 根据欧姆定律 V = I x R,在 5V 电源上接一个 1kΩ 电阻,电流是多少? ||5V / 1000Ω = 5mA(0.005A)||
Q2. Arduino 中数字引脚和模拟引脚的区别是什么? ||数字:只有 0/1(HIGH/LOW)两种状态。模拟:可以读取 0~1023 范围内的连续值(ADC 10bit)||
Q3. PWM(Pulse Width Modulation)是什么,用在哪里? ||通过调节数字信号的 ON/OFF 比例(占空比)来产生伪模拟输出的技术。用于 LED 亮度调节、电机转速控制||
Q4. 在 INPUT_PULLUP 模式下按下按钮,读到的值是什么? ||LOW(0)— 内部上拉电阻平时保持 HIGH,按下按钮后连接到 GND,变为 LOW||
Q5. DHT11 传感器的测量范围和精度是多少? ||温度:0~50°C(±2°C),湿度:20~80%(±5%)。价格低廉,精度不高,但入门足够用||
Q6. 伺服电机 SG90 的控制信号和动作范围是什么? ||PWM 信号(50Hz,1~2ms 脉冲宽度),0~180 度旋转。使用 Servo 库而非 analogWrite||
测验
Q1:「面向开发者的电子控制入门 — 从 Arduino 到 AI 机器人」这篇文章主要涵盖哪些内容?
面向软件开发者迈入硬件世界的指南。从 Arduino 基础到传感器控制、ESP32 IoT,再到 AI + 硬件融合项目。只要你会写代码,电子控制就比你想象的容易。
Q2: 为什么开发者要学习电子控制?
全栈的真正含义 — 软件 + 硬件 = 完整系统。机器人时代 — 2026 年进入人形机器人时代。IoT/Edge AI —
从云端走向设备端。爱好即实力 — 嵌入式开发者的身价持续上涨。
Q3: 请说明「基础概念:只需了解 3 点」的核心内容。
- 数字 vs 模拟 2. 电压、电流、电阻(欧姆定律)面向开发者的类比:电压 = API 请求,电流 = 数据流,电阻 = Rate Limiter 3. GPIO(General Purpose Input/Output)
Q4:「实践 1:LED 闪烁(Hello World)」的要点是什么?
电路 代码 如果你是 Python 开发者:可以用 MicroPython 代替 Arduino IDE!
Q5:「AI + 电子控制融合(Ultimate Goal)」是如何运作的?
把家里的 GPU 服务器和 Arduino 连接起来,就能实现:语音命令 → Qwen3-TTS →
扬声器(omen)摄像头画面 → LTX-2 分析 → 伺服电机控制(spark01)传感器数据 → 异常检测 AI →
告警(spark02)