32位8051-AI 发表于 2025-6-5 15:27:05

consoleyou 发表于 2025-6-5 15:17
采样STC应该没有问题,主要是输出,8051和8H系列都没有DAC。

PWM做DAC完整演示程序,用内部真12位ADC来保证精度@8H8K64U
https://www.stcaimcu.com/thread-4535-1-1.html

梁工 发表于 2025-6-5 16:43:43

consoleyou 发表于 2025-6-5 15:17
采样STC应该没有问题,主要是输出,8051和8H系列都没有DAC。

没有DAC,可以用PWM代替DAC输出的。

梁工 发表于 2025-6-5 16:49:16

consoleyou 发表于 2025-6-5 15:17
采样STC应该没有问题,主要是输出,8051和8H系列都没有DAC。

说出你要求的处理这么困难吗?我都不知道你要输出的是什么量。
读取摇杆实际就是读电位器或霍尔输出的电压,我一般校准就是先读取中点电压,然后读取两个端点的电压,如果信号是线性的,就进行线性处理,如果不是线性的,根据其非线性曲线处理。

consoleyou 发表于 2025-6-5 18:09:52

梁工 发表于 2025-6-5 16:49
说出你要求的处理这么困难吗?我都不知道你要输出的是什么量。
读取摇杆实际就是读电位器或霍尔输出的电 ...

对霍尔摇杆的输出端进行采样,范围在0~1.8V之间。因为霍尔摇杆通常会有误差,影响手柄摇杆的回中和外圈范围,所以需要MCU进行校准,校准后,再通过DAC,输出信号,这个信号范围也是在0~1.8V之间,传递给手柄自身的MCU。

consoleyou 发表于 2025-6-5 18:23:26

consoleyou 发表于 2025-6-5 18:09
对霍尔摇杆的输出端进行采样,范围在0~1.8V之间。因为霍尔摇杆通常会有误差,影响手柄摇杆的回中和外圈范 ...

在保证采样和输出速度的情况下,当然采样精度越高越好,输出电压越平滑越好。

1325986650 发表于 2025-6-5 22:11:59

consoleyou 发表于 2025-6-5 18:23
在保证采样和输出速度的情况下,当然采样精度越高越好,输出电压越平滑越好。 ...
这个实现不难 我制作的一个玩具使用遥感电位器。就存在遥感电位器更换中点不一致的问题。如果中点不到位 会出现停止状态电机还在动作,更换遥感电位器的时候就需要中点调整。
我的VREF =3.3V 。12为ADC取样 0--4096理论遥感电位器回中位置2048.但是实际有的在2048以下有的在2048以上。我矫正是这样的如果实际ADC= 2080,那么我校准的ADC矫正 = 实际ADC 对于外圈同样的方法。这个时候唯一回出现的就是电位器比方说正半圈实际ADC=2080-4096   副半圈 = 0--2080 。正负半圈不完全对称。但是使用非常顺手,不会出现中点偏移问题
另外中点不是绝对的。比如中点2048我一般程序认为 2030--2066 正负18   我都认为是在中点。只有超过这个范围才需要矫正

consoleyou 发表于 2025-6-6 10:20:36

1325986650 发表于 2025-6-5 22:11
这个实现不难 我制作的一个玩具使用遥感电位器。就存在遥感电位器更换中点不一致的问题。如果中点不到位...

是的,您这个是在自己设计的电路上做校准,比较好操作。我这边的要求是在原手柄的电路上,附加一个电路,对原信号进行截留,然后再校准输出。所以需要MCU提供ADC和DAC功能,而且要2路,因为要校准X轴和Y轴。先用ADC采集原主板上电位器的信号,经过校准处理后,再以模拟信号(DAC)的方式发给原主板上的MCU采集脚上。您说的中点取值范围,实际上就是游戏手柄中所说的死区,也是回中的一个办法。

网老四 发表于 6 天前

只要ADC和输出PWM分辨率和速度足够,任何单片机都可以实现非线性校准功能
页: 1 [2]
查看完整版本: 工程需求:使用MCU的ADC采样0~1.8V电压,经过MCU调整后(校正后),输出0~1.8V电压。