跳到主要内容

传感器

本分类读取 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 模块)
信息
操作数数值/范围备注
OP-0000忽略
OP-0100~0FADS1115 通道号
OP-1000忽略
OP-1100~FF目标寄存器号
提示

每个通道的数值始终保存在 R40~R4F 中(通道 0 → R40,通道 15 → R4F)。0xAD 的作用是把某个通道的缓存值搬到任意指定的寄存器里。ADS1115 模块须处于使能状态缓存才会更新——参见 ADS1115 开关。