传感器
本分类读取 ADS1115 模数转换器的模拟输入。
ADS1115 提供 16 个输入通道,在端口体系中表现为只读的 Port3(30~3F),参见简述。系统在后台按周期对所有通道持续采样(DefaultTask),通道 n 的最新值保存在寄存器 R(40+n) 中——即通道 0~15 对应 R40~R4F,读数为毫伏值。也可以用 QS 0x14 一次读取整个 Port3。
0xAD 读 AD 通道(AD)
把某个 ADS1115 通道的缓存值复制到指定寄存器。
警告
0xAD 不会触发一次新的转换。它复制的是后台周期采样(DefaultTask)的缓存值,并非即时读数。
下例先把通道 0 的缓存值读入 R20,再用大于转 DYZ 0x04 与阈值 1000 比较:
- 指令形式
- 助记符形式
000 10 0021 03E8 R21 = 1000(报警阈值)
001 AD 0000 0020 R20 = 通道0 的缓存值
002 04 2021 0005 R20 > R21 则跳到 005 行
003 10 0030 0000 R30 = 0(低于阈值)
004 0E 0000 0001 回到 001 行
005 10 0030 0001 R30 = 1(超过阈值,报警)
006 0E 0000 0001 回到 001 行
007 AD 0003 0007 把 ADS1115 通道3 的缓存值(毫伏)读入 R07(需先开 ADS 模块)
000 FZ 0021 03E8 R21 = 1000(报警阈值)
001 AD 0000 0020 R20 = 通道0 的缓存值
002 DYZ 2021 0005 R20 > R21 则跳到 005 行
003 FZ 0030 0000 R30 = 0(低于阈值)
004 ZY 0000 0001 回到 001 行
005 FZ 0030 0001 R30 = 1(超过阈值,报警)
006 ZY 0000 0001 回到 001 行
007 AD 0003 0007 把 ADS1115 通道3 的缓存值(毫伏)读入 R07(需先开 ADS 模块)
信息
| 操作数 | 数值/范围 | 备注 |
|---|---|---|
| OP-00 | 00 | 忽略 |
| OP-01 | 00~0F | ADS1115 通道号 |
| OP-10 | 00 | 忽略 |
| OP-11 | 00~FF | 目标寄存器号 |
提示
每个通道的数值始终保存在 R40~R4F 中(通道 0 → R40,通道 15 → R4F)。0xAD 的作用是把某个通道的缓存值搬到任意指定的寄存器里。ADS1115 模块须处于使能状态缓存才会更新——参见 ADS1115 开关。