标定不对。 |
分立元件 发表于 2020-11-10 15:53 应该怎么设置呢? |
问题已解决,是数据类型设置不对造成的! |
FJ2018 发表于 2020-11-6 16:46 改成unsigned long 改成 g=l*50/1023*100; 输出0——50,只有2位,不知道什么原因,正常应该有四位吧? |
梁廷明 发表于 2020-11-6 15:34 改成 g=l*50/1023*100; 输出0——50,只有2位,不知道什么原因? |
gjkl你定义为浮点型,计算电压公式 g=l*5.00/1024*1000; 然后看看 |
转换成浮点型看看,除的数没有小数点的 |
分立元件 发表于 2020-11-6 10:09 +5/10是为了4舍5入 |
wulin 发表于 2020-11-6 07:44 为什么要加5呢? |
TTQ001 发表于 2020-11-6 09:22 这个方法不行的,出现错误 |
aking991 发表于 2020-11-6 09:27 就是按照这个方法,计算出结果不正常! |
首先要根据你的分压电阻比例关系,其次是要知道你单片机工作电源电压,即为基准源,这两个参数很关键,接下来就是:基准源乘以采集到的ADC值,再除以10位AD即1024,这样计算结果就是你的ADC实际电压值了 |
模数转换的参考电压为VREF,在任何电压V下,ADC结果为n,满量程ADC结果为1023,则V = VREF x(n / 1023),将V转换为mV:VmV = V |
是楼主计算方法不当 #define VCC_V 5//宏定义电源电压5V unsigned int ADC_RESX;//10位ADC转换结果 unsigned int ADC_V; //ADC mV //强制转换数据类型(32位)运算,得到(4舍5入)mV ADC_V=(VCC_V*(long)ADC_RESX*10000/1024+5)/10; |