一夜暴富 发表于 2022-7-4 19:51 ![]() |
Hephaestus 发表于 2022-7-4 19:26 隔离用串口光耦可以详细说一下吗,有点不是很理解,感谢! |
一夜暴富 发表于 2022-7-4 19:01 你要精度那么高还不如直接上采样电阻,如果需要隔离,那就单片机处理完毕后用串口光耦把数据传出来。 |
wulin 发表于 2022-7-1 20:21 感谢,那天是我口胡说错了。非常抱歉 让大佬费心查看资料了 其实我想说的是10ma左右的误差都是可以接受的 我看了下,大概有50ma左右的误差 还勉强可以靠软件中值中衡一下 |
17337161031 发表于 2022-7-1 19:26 一般AD采集布线有什么原则需要遵循吗,大佬能否细说一下 |
Y_G_G 发表于 2022-7-1 18:56 ![]() 10ma我试了下,精度还勉强可以接受,加了RC滤波后跳变也比较稳定 |
STC8系列单片机的ADC最高12位,理论上只能检出最小1mV电压(但实际是做不到的)。ACS712流过0.1mA电流只能输出0.0185mV电压,远小于单片机ADC分辨率。根据手册,ACS712零电流输出电压=1/2VCC。楼主“测出来的数是在0.00 0.03 0.12 0.20这四个数之间跳来跳去”说明硬件选择和软件编写都存在问题。
![]() ![]() |
硬件过程中的那一部分布线可能也会影响 |
一夜暴富 发表于 2022-7-1 09:41 我的意思是ACS712不能检测到那么高精度的电流(OUTPUT输出是有问题的!!!!!!!!!) 单片机不能用ACS712检测到0.1mA的电流 你的单片机ADC出来的值只是ADC误差和干扰而已,跟电流压根就没有关系 你的理解,跟我说的,压根就是相反的! 如果是正负5A量程ACS712,那么,1A的输出电压就是185mV 0.1mA的输出就是185/10000=0.0185mV=18.5uV 你去看一下单片机的分辨率,你觉得还能测量到这么小的电流吗? 我不知道你"感觉没有问题"的依据是什么 |
Y_G_G 发表于 2022-6-30 23:37 您的意思是,OUTPUT输出是没问题的,主要还是因为AD受到外部干扰了所以才跳动吗? |
Hephaestus 发表于 2022-6-30 21:13 你好,我试过了。如果用稳压源直接输入2.5V,他只会变化0.01V这样子。 但是用芯片的OUTPUT,就会波动的厉害 |
因为我不会英文,所以,以为这个是内置取样电阻的采样芯片 但这原理是一样的 你看数据手册就可以计算出0.1mA能输出的电压有多少了 可以认为,acs712基本没有电压输出,单片机的ADC结果不过是ADC误差和基点一定干扰的结果而已,跟电流一点关系都没有 这个是acs712量程对应的输出电压 你参考一下 ![]() |
Hephaestus 发表于 2022-6-30 23:24 好的,你是对的 |
Y_G_G 发表于 2022-6-30 23:17 说话要严禁,霍尔传感器哪来的取样电阻,只要是导线就有电阻,1.2 mΩ只是导线电阻而已。 |
这个IC内部的取样电阻是1.2 mΩ 你用来测量0.01mA的电流,你计算过这个电流在在1.2 mΩ 上能有多少压降吗? 5A的时候,这个芯片的输出电压是185mV,那0.1mA的时候,输出会是多少呢? 我感觉你单片机ADC结果跳动的数据只是外部的一点干扰而已,跟电流一点关系都没有 你可以试一下测量一个300mA或者1A的电流,验证一下程序 |
去掉ACS712 两个电阻分压得到你想要的电压,并联104电容到这个电压上 把这个电压连接到单片机 观察是否还有跳变。 单片机本身是个大规模数字电路,是模拟信号的强干扰源,内部集成的ADC有跳变是正常的,能稳定才奇怪了。 |