熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2020-11-5 22:44
正文摘要:弄了好久都解決不了,AD值都正常,但是轉(zhuǎn)換成電壓值就不正常了,會(huì)不會(huì)是軟件的原因(使用KEIL3)? #include<reg52.h> #include<intrins.h> #define uint unsigned int #define ... |
標(biāo)定不對(duì)。 |
分立元件 發(fā)表于 2020-11-10 15:53 應(yīng)該怎么設(shè)置呢? |
問題已解決,是數(shù)據(jù)類型設(shè)置不對(duì)造成的! |
FJ2018 發(fā)表于 2020-11-6 16:46 改成unsigned long 改成 g=l*50/1023*100; 輸出0——50,只有2位,不知道什么原因,正常應(yīng)該有四位吧? |
梁廷明 發(fā)表于 2020-11-6 15:34 改成 g=l*50/1023*100; 輸出0——50,只有2位,不知道什么原因? |
gjkl你定義為浮點(diǎn)型,計(jì)算電壓公式 g=l*5.00/1024*1000; 然后看看 |
轉(zhuǎn)換成浮點(diǎn)型看看,除的數(shù)沒有小數(shù)點(diǎn)的 |
分立元件 發(fā)表于 2020-11-6 10:09 +5/10是為了4舍5入 |
wulin 發(fā)表于 2020-11-6 07:44 為什么要加5呢? |
TTQ001 發(fā)表于 2020-11-6 09:22 這個(gè)方法不行的,出現(xiàn)錯(cuò)誤 |
aking991 發(fā)表于 2020-11-6 09:27 就是按照這個(gè)方法,計(jì)算出結(jié)果不正常! |
首先要根據(jù)你的分壓電阻比例關(guān)系,其次是要知道你單片機(jī)工作電源電壓,即為基準(zhǔn)源,這兩個(gè)參數(shù)很關(guān)鍵,接下來就是:基準(zhǔn)源乘以采集到的ADC值,再除以10位AD即1024,這樣計(jì)算結(jié)果就是你的ADC實(shí)際電壓值了 |
模數(shù)轉(zhuǎn)換的參考電壓為VREF,在任何電壓V下,ADC結(jié)果為n,滿量程ADC結(jié)果為1023,則V = VREF x(n / 1023),將V轉(zhuǎn)換為mV:VmV = V |
是樓主計(jì)算方法不當(dāng) #define VCC_V 5//宏定義電源電壓5V unsigned int ADC_RESX;//10位ADC轉(zhuǎn)換結(jié)果 unsigned int ADC_V; //ADC mV //強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型(32位)運(yùn)算,得到(4舍5入)mV ADC_V=(VCC_V*(long)ADC_RESX*10000/1024+5)/10; |
Powered by 單片機(jī)教程網(wǎng)