🌀 如果你是一个城市的主控者,你会如何安排能量流向?
Arduino 就是这样一个掌控粒子的核心,指挥着城市中的每一个模块。
今天,我们一起解构这座城市的能量分配法则。
🎯 用"位元灵力世界"世界观理解 PWM
📚 系列:位元灵力 · 模块觉醒手册 - Day 1 PWM
🏙️ 城市系统的工作机制
1. 城市的供能与粒子再分配
Arduino 城市的供能:
- 城市有供能,有光明粒子和黑暗粒子进入供能
- 通过 USB 或外部电源,粒子进入城市
城市的最大作用:粒子再分配:
- 城市接收外部供能后,将粒子再分配给其他城市部件
- 通过控制脉冲,完成不同任务:
- 灯光的明暗(通过占空比控制)
- 风扇的转速(通过占空比控制)
- 舵机的角度(通过占空比控制)
- 等等
粒子再分配的流程:
外部供能 → 城市接收 → 主控模块调节 → 脉冲输出 → 卫星城市接收
(粒子进入)(粒子存储)(粒子再分配)(粒子输送)(粒子消耗)
2. 主控城市与卫星城市
主控城市(Arduino):
- 有完整的城市系统(主控模块、多个模块、多个接口)
- 负责接收供能、粒子再分配、控制其他城市
- 是"指挥中心"
- 通过脉冲控制,将粒子再分配给卫星城市
卫星城市(其他部件):
- 有城市系统的卫星城市(比如智能传感器):
- 有自己的处理能力
- 可以接收主控城市的指令
- 可以处理数据并返回结果
- 有自治能力,但受主控城市指挥
- 只有执行层的卫星城市(比如 LED 灯、风扇):
- 只是消耗粒子
- 接收主控城市分配的粒子,完成具体任务
- 没有处理能力,只是执行
主控城市与卫星城市的关系:
- 主控城市通过脉冲控制,将粒子再分配给卫星城市
- 卫星城市接收粒子后,完成具体任务(发光、转动、检测等)
- 使用不同的传输和通信方式(UART、SPI、I²C)将脉冲能量输送到卫星城市
类比:
- 主控城市 = 首都(有完整的政府系统,负责指挥)
- 卫星城市 = 其他城市(有的有自治能力,有的只是执行任务)
3. 城市规划者与主控模块
城市规划者(程序员)的职责:
- 必须按照造物主留下的规则进行城市规划
- 可以调节城市的脉冲(PWM 的频率和占空比)
- 控制粒子再分配,让卫星城市完成不同任务
- 但如果配置不对,会导致:
- 居民和能量被消耗
- 能量被浪费
- 城市被废弃
主控模块的作用:
- 主控模块是城市规划者在城市内部的执行机构
- 它统管模块作为或分配粒子资源
- 控制整个城市的脉冲节奏和能量输送
- 是主控城市的"大脑"
4. 城市的居民如何参与
完整城市的居民:
- Arduino 板上的所有组件/模块都是城市的居民
- 它们共同维持城市的脉冲能量输送
- 每个居民都有自己的职责:
- 有些负责接收外部供能
- 有些负责产生脉冲
- 有些负责传递粒子
- 有些负责接收粒子
模块聚落社会:
- 居民按功能分类,被配置在各种模块中
- 当城市规划者写入或读取数据时,模块之间通过管线进行协作
- 如果配置不对,同一数据渠道也可能造成模块之间冲突
🔌 城市管线接口详解
Arduino UNO 数字引脚分布(0~13)
| 引脚编号 | 是否支持 PWM 脉冲? | 常用用途(位元灵力世界版) |
|---|---|---|
| 0 (RX) | ❌ | 主城区的总接收口(RX = Receive),接收外部世界的粒子 |
| 1 (TX) | ❌ | 主城区的总发送口(TX = Transmit),向外部世界发送粒子 |
| 2 | ❌ | 普通管线接口,用于开关控制、按钮读取等 |
| 3 | ✅ ~ | 脉冲输出口(PWM),可以调节能量输出强度,控制其他部件完成任务 |
| 4 | ❌ | 普通管线接口,用于开关控制、按钮读取等 |
| 5 | ✅ ~ | 脉冲输出口(PWM),可以调节能量输出强度,控制其他部件完成任务 |
| 6 | ✅ ~ | 脉冲输出口(PWM),可以调节能量输出强度,控制其他部件完成任务 |
| 7 | ❌ | 普通管线接口,用于开关控制、按钮读取等 |
| 8 | ❌ | 普通管线接口,用于开关控制、按钮读取等 |
| 9 | ✅ ~ | 脉冲输出口(PWM),可以调节能量输出强度,控制其他部件完成任务 |
| 10 | ✅ ~ | 脉冲输出口(PWM)/ SPI 通信的选中线(SS) |
| 11 | ✅ ~ | 脉冲输出口(PWM)/ SPI 通信的主发从收线(MOSI) |
| 12 | ❌ | SPI 通信的从发主收线(MISO) |
| 13 | ❌ | 板载 LED 连接口(可以控制城市内部指示灯亮灭) |
接口分类详解
1. 主城区的总通信口(引脚 0 和 1)
⚠️ 重要:不能随意使用!
引脚 0 (RX = Receive):主城区的总接收口
- 这是城市规划者与外部世界(电脑)通信的唯一接收通道
- 接收外部世界发送的粒子(数据)
- 如果接其他设备,会影响串口调试
引脚 1 (TX = Transmit):主城区的总发送口
- 这是城市规划者向外部世界发送粒子的唯一发送通道
- 向外部世界发送粒子(数据)
- 如果接其他设备,会影响程序上传
2. 城市的脉冲输出口(PWM 引脚,带 ~ 标记)
支持 PWM 的引脚:
- 数字引脚 3、5、6、9、10、11
- 这些是城市的"脉冲输出口"
- 城市规划者可以通过这些接口控制城市的能量输出强度
- 可以调节占空比,控制光明粒子在周期内的时间比例
- 通过脉冲控制其他部件完成任务(比如灯光的明暗)
PWM 引脚的复用:
- 引脚 10:可以是脉冲输出口(PWM),也可以是 SPI 通信的选中线(SS)
- 引脚 11:可以是脉冲输出口(PWM),也可以是 SPI 通信的主发从收线(MOSI)
3. 普通管线接口(不带 ~ 标记)
不支持 PWM 的引脚:
- 数字引脚 2、4、7、8、12、13
- 这些是城市的"普通管线接口"
- 用于:
- 开关控制(光明/黑暗粒子的开关)
- 按钮读取(接收外部信号)
- 传感器信号接收(接收其他城市的信息)
- 通信协议(与其他城市通信)
特殊引脚:
- 引脚 12:SPI 通信的从发主收线(MISO)
- 引脚 13:板载 LED 连接口(可以控制城市内部指示灯亮灭)
4. 管线的复用
重要概念:
- 一个管线接口可以扮演多个角色
- 根据城市规划者的配置,临时切换角色
- 但不能同时使用多个功能
示例:
- 引脚 10:可以是脉冲输出口(PWM),也可以是 SPI 通信的选中线(SS)
- 引脚 11:可以是脉冲输出口(PWM),也可以是 SPI 通信的主发从收线(MOSI)
- 引脚 13:可以是普通管线接口(控制板载 LED),也可以是 SPI 通信的时钟线(SCLK)
- 模拟引脚 A4:可以是模拟输入口,也可以是 I²C 通信的数据线(SDA)
- 模拟引脚 A5:可以是模拟输入口,也可以是 I²C 通信的时钟线(SCL)
💭 你有没有试过用 Arduino 控制过哪些“卫星城市”?
是灯光?风扇?还是更复杂的传感器模块?
欢迎在评论区分享你的经验,或者想看的模块解析内容,我会继续在系列中展开 👇
🔄 用"位元灵力世界"世界观理解 PWM 的本质
📚 系列:位元灵力 · 模块觉醒手册 - Day 1 PWM
⏮️ 上一篇:PWM:光明粒子的占空比与脉冲控制
⏭️ 下一篇:城市通信魔法:UART / SPI / I²C 的能量频道切换