从这一章开始,我们正式进入传统嵌入式入门里的基础输入输出。先学输出,因为输出最容易观察:LED 会亮,蜂鸣器会响,继电器会吸合。
本章会用自然语言生成一个 GPIO 输出程序,同时理解 Arduino 程序里最重要的两个函数:setup() 和 loop()。
图片占位 3-1:Blockly 积木与 Arduino/C++ 代码对照图,标出初始化部分和循环部分。
Arduino 类程序通常分成两部分:
setup():开发板启动后只运行一次,用来做初始化。loop():开发板启动后会一直重复运行,用来写主要逻辑。
可以把它想成这样:
开机先准备一次 -> 然后一直循环做事情
比如 LED 闪烁项目中,setup() 负责告诉开发板“这个引脚要当输出用”,loop() 负责不断点亮、等待、熄灭、等待。
GPIO 是通用输入输出引脚。作为输出时,开发板可以让某个引脚输出高电平或低电平。
在入门阶段,可以先简单理解:
- 高电平:通常接近 3.3V 或 5V,能让 LED 亮、让模块收到“开”的信号。
- 低电平:接近 GND,能让 LED 灭、让模块收到“关”的信号。
不同开发板的电压可能不同,所以接模块前要看开发板和模块说明。
控制输出时,提示词要说清楚三件事:
- 控制哪个引脚。
- 什么情况下输出高电平或低电平。
- 每个状态持续多久,是否循环。
例如:
我使用 Arduino Uno。请让 D8 引脚连接的外接 LED 每 500 毫秒闪烁一次。外接 LED 需要串联 220 欧姆电阻。请生成 Blockly 程序,并解释对应 Arduino/C++ 代码。
这句话已经包含了引脚、模块、时间和安全提醒。
- Arduino Uno 或兼容开发板。
- LED 一个。
- 220 欧姆或 330 欧姆电阻一个。
- 杜邦线若干。
常见接法:
D8 -> 电阻 -> LED 长脚
LED 短脚 -> GND
图片占位 3-2:外接 LED 接线图,标注 D8、电阻、LED 长脚、LED 短脚、GND。
我使用 Arduino Uno 做一个外接 LED 闪烁实验。
硬件连接:
1. LED 接在 D8 引脚。
2. D8 先连接 220 欧姆电阻,再连接 LED 长脚。
3. LED 短脚连接 GND。
程序行为:
1. 开机后把 D8 设置为输出。
2. LED 点亮 500 毫秒。
3. LED 熄灭 500 毫秒。
4. 一直重复。
5. 串口输出当前 LED 状态。
请生成 Blockly 程序逻辑,并说明对应 Arduino/C++ 代码思路。
const int ledPin = 8;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
Serial.println("LED ON");
delay(500);
digitalWrite(ledPin, LOW);
Serial.println("LED OFF");
delay(500);
}蜂鸣器也是常见输出设备。入门时可以先使用有源蜂鸣器,它像 LED 一样,给高电平就响,给低电平就停。
提示词示例:
我使用 Arduino Uno 和一个有源蜂鸣器。蜂鸣器信号脚接 D9,GND 接 GND。请让蜂鸣器响 200 毫秒,停 800 毫秒,并循环执行。串口输出“BEEP”和“SILENT”。请生成 Blockly 程序和接线检查清单。
图片占位 3-3:有源蜂鸣器接线图,标注 D9、VCC 或信号脚、GND。
注意:蜂鸣器有有源和无源两类。入门时先用有源蜂鸣器更容易。如果使用无源蜂鸣器,需要生成一定频率的信号,后续可以再学习。
继电器可以控制外部电路,但新手实验时不建议直接接高压设备。可以先只观察继电器模块的指示灯和吸合声音。
提示词示例:
我使用 Arduino Uno 和一个低压继电器模块。继电器 IN 接 D7,VCC 接 5V,GND 接 GND。请让继电器每 2 秒切换一次状态,并在串口输出当前状态。请特别提醒我不要在入门实验中连接市电负载。
图片占位 3-4:继电器模块低压侧接线图,并用醒目标注“入门实验不要连接市电”。
每次做输出控制,都先检查:
- 引脚是否设置为输出。
- 外接 LED 是否串联电阻。
- 模块电压是否和开发板匹配。
- 模块电流是否超过开发板引脚能力。
- 执行器是否需要外接电源。
- GND 是否连接正确。
- 串口日志是否能反映程序状态。
检查 LED 极性、电阻位置、GND 是否连接、引脚号是否写错。
检查 delay() 是否存在,程序是否卡在某个条件里,是否接到了常亮电源引脚。
确认蜂鸣器类型、电压、正负极和信号引脚。无源蜂鸣器不能只靠简单高低电平发出稳定提示音。
有些继电器模块是低电平触发。可以让 AI 根据模块说明修改逻辑。
- 把 LED 闪烁间隔改成 200 毫秒。
- 让 LED 闪三次后停 2 秒,再继续重复。
- 让蜂鸣器响一短一长,模拟提示音。
- 让 AI 解释
pinMode()、digitalWrite()、delay()分别做什么。
本章学习了 GPIO 输出和 Arduino 程序结构。只要能说清楚“哪个引脚、什么时候开、什么时候关、持续多久”,AI 就能更稳定地生成输出控制程序。
但输出设备也带来硬件风险。LED 要限流,执行器要看电源,继电器不要直接上手接高压。自然语言可以帮你生成方案,安全检查仍然要自己做。