大家好、
简介:
我正在使用 F28379D (版本:2.0)开发用于实现位置控制的声学传感器。 该传感器由扬声器(250ST/R160)和麦克风(SPU0410LR5H-QB)组成、扬声器发射25kHz 正弦波(Vpp 为24V)、当麦克风接收回声时、它会将声能(声波)转换为电能(音频信号)。 该信号 被馈送到 ADC (引脚#30)、ADC 以250kHz (每周期10个点)的频率对信号进行采样。
操作顺序如下:
- 传感器左转。
- 打开扬声器、发出0.5ms 的正弦波、关闭扬声器。
- 1毫秒内不执行任何操作。
- 打开 ADC、保持开启5ms、关闭 ADC。
- 传感器右转、然后重复此过程。
这就是它在示波器中的外观:
蓝色信号是麦克风传感器读数、黄色信号是 ADC 读数(从 DAC 输出)。
电路:
最初的问题是什么?
目的是通过比较左侧 ADC 窗口中的最大读数和右侧 ADC 窗口的最大读数来确定传感器的哪一侧。
如图1所示、RHS 上的回波振幅显著增大(与 LHS 相比)、表明传感器正在执行它应该执行的操作、但 ADC 读数的最大振幅几乎相同、 从而无法确定物体的位置。
我发现、尽管 ADC 配置为以250kHz 的频率进行采样、但 ePWM 信号(触发转换)的频率为500kHz。 这是我故意更改的内容(以查看读数是否更准确)、很显然我忘记将其改回原来的内容。 问题:这实际上是 ADC 读数与馈入信号的振幅不成比例的原因吗?
当前的问题是什么?
我编写了一个代码、用于启动计时器并计算接收到大于给定阈值的读数所需的时间。 此代码的目的是确定对象的位置以及对象所在的方向。 尽管我无法实时显示最大振幅、但我通过尝试和错误找到了合理的阈值(使用 LED 作为指示器)。 问题:我能否使用以下公式计算阈值? 阈值= V_meased *(4096/3.3)、其中 V_meased 是示波器测量的电压。
问题是 、虽然代码成功检测到障碍物的法度、但接收最大回波的时间间隔时序并不有用、因为只有在 ADC 窗口打开后才会检测到回波(测量时间为≈0) 当障碍物被放置得更远时消失、尽管障碍物仍在传感器的测量范围内。 问: 这种奇怪行为的可能原因是什么?




