轉載:http://www.rationmcu.com/elecjc/1874.html
今天給大家簡單介紹一下ADC器件的常識。
ADC,模數轉換器,功能是把模擬電壓轉換成數字量。
概念聽的模糊,說點實際的吧:把你要測的電壓那條線,連接到ADC的用來測試電壓的引腳上,ADC模塊就會檢測到這個電壓,並且自動轉換成一個數字,我們讀出這個數字,然后知道這個數字和電壓的對應關系,就可以知道現在的電壓是多大了。
有些單片機內部有ADC模塊,在單片機外部引出測試用的ADC引腳。
有些單片機內部沒有ADC模塊,可以用單獨的ADC芯片,單獨的ADC芯片一般留有與單片機通信的接口,常見的是8位並口、I2C口、SPI口。單片機通過通信接口與外部ADC模塊連接讀取ADC芯片的轉化值。
分辨率
不管是單片機內部的ADC,還是獨立的ADC芯片,都有一個分辨率指標。
一般的分辨率有8位、10位、12位、16位、24位。
先要知道,位就是bit,就是計算機界是最小的單位,8個位是1個字節。
8位數字,最大值就是255,范圍從0~255。
10位數字,最大值就是1023,范圍從0~1023。
12位數字,最大值就是4095,范圍從0~4095。
14位數字,最大值就是16383,范圍從0~16383。
16位數字,最大值就是65535,范圍從0~65535。
24位數字,最大值就是16777215,范圍從0~16777215。
為什么“位”可以表示分辨率?
假設一個我們要測一個0~5V的電壓信號。
用8位分辨率的ADC測,輸入電壓是0V時,得到的數字是0,輸入電壓是5V時,得到的數字是255。
用12位分辨率的ADC測,輸入電壓是0V時,得到的數字是0,輸入電壓是5V時,得到的數字是4095。
8位的ADC,得到的數字每增加1,實際上電壓增加5/256=0.0195V。
16位的ADC,得到的數字每增加1,實際上電壓增加5/4096=0.0012V。
假設,現在要測一個0.015V的電壓,8位的ADC得到的數字,就是1,當你得到1的時候,只能認為是1*5/256=0.0195V的電壓。
那如果用12位的ADC測0.015V的電壓的話,得到的數字就是12或者13,如果是12的話,我們轉化一下,就會認為是12*5/4096=0.0147V,如果得到的數字是13的話,我們轉一下,就會認為是13*5/4095=0.0159V。
對比一下數字,就可以看出來,位數越高的分辨率,就可以測得更精確的電壓。