目錄
模擬信號(hào)與數(shù)字信號(hào)的關(guān)系
傳感器的AO與DO
很多時(shí)候,我們購買傳感器的時(shí)候,能夠發(fā)現(xiàn)傳感器一般都有四個(gè)口。拿這款震動(dòng)傳感器作為例子,他有VCC,GND,AO,DO四個(gè)接口。而很多時(shí)候,我們用VCC接5V,GND接單片機(jī)GND,給模塊供電。最后有一個(gè)DO口接單片機(jī)一個(gè)引腳,例如P1^1腳。
現(xiàn)在我們就將一些AO和DO有什么區(qū)別。
DO口——數(shù)字信號(hào)
1、產(chǎn)品不震動(dòng)時(shí),震動(dòng)開關(guān)呈斷開狀態(tài),輸出端輸出高電平,綠色指示燈不亮;
2、產(chǎn)品震動(dòng)時(shí),震動(dòng)開關(guān)瞬間導(dǎo)通,輸出端輸出低電平,綠色指示燈亮;
void main() { while(1) { if(P1^1==1) { 沒有震動(dòng) } if(P1^1==0) { 震動(dòng) } } }
我們看商家提供的資料,知道寫程序的時(shí)候,我們只需要檢測(cè)P1^1的電平是否為低電平。如果是低電平,那么表示發(fā)生了震動(dòng),如果是高電平就是沒有震動(dòng)。
這種根據(jù)0和1來進(jìn)行判斷的方式,就是對(duì)數(shù)字信號(hào)的處理。數(shù)字信號(hào)看似就是0和1,其實(shí)本質(zhì)上就是電壓信號(hào),不過一般規(guī)定低電平為0~0.25V,用數(shù)字0表示,高電平為3.5~5V,用數(shù)字1表示。所以對(duì)于數(shù)字信號(hào)而言,不需要區(qū)分電壓值具體是多少,只要是在這個(gè)范圍之內(nèi),都稱之為0或者1。
而模擬信號(hào)不同,我們需要知道電壓值的具體是多少。3.6V就是3.6V,5V就是5V,不能一概稱之為1。
AO——模擬信號(hào)
首先我們需要知道一個(gè)概念,就是很多傳感器其實(shí)就是一個(gè)定值電阻,加上一個(gè)對(duì)某一種信號(hào)敏感的電阻。比如光感,就是一個(gè)光敏電阻和一個(gè)定值電阻,如下圖。
光敏電阻會(huì)因?yàn)楣饩的大小,從而改變阻值。我們又根據(jù)串聯(lián)分壓的原理,當(dāng)光敏電阻發(fā)生改變的時(shí)候,DO處的電壓值也會(huì)發(fā)生改變,而這個(gè)電壓值就是模擬量。
模擬信號(hào)與數(shù)字信號(hào)的關(guān)系
以上為我畫了一個(gè)很丑的模擬信號(hào)轉(zhuǎn)換數(shù)字信號(hào)的電路。
首先,我們了解一些LM393是什么的。一般我們?cè)谫徺I到一個(gè)模塊的時(shí)候,能夠看到模塊上一般都要一個(gè)叫做LM393的芯片,這個(gè)芯片的作用就是用來做比較的,也稱作比較器。當(dāng)+輸入端電位>-輸入端電位時(shí),LM393輸出高電平。反過來,當(dāng)+電位<-電位時(shí),LM393會(huì)輸出低電平。
我們又知道DO的電壓值會(huì)隨著光線的大小變化。那么我們將DO的值輸入到LM393比較芯片中去,LM393就可以根據(jù)DO的電壓值和滑動(dòng)變阻器的分壓值進(jìn)行對(duì)比,最后決定輸出是高電平還是低電平。
但是,很多時(shí)候我們看到的電路圖并不是這樣的,因?yàn)楝F(xiàn)實(shí)生活中的信號(hào)不可能這么完美,會(huì)有一定的干擾信號(hào),所以會(huì)外加一個(gè)一些電容和電阻。至于LED燈
模擬信號(hào)就是電壓信號(hào),而數(shù)字信號(hào)就只是0和1(一般規(guī)定低電平為0~0.25V,用數(shù)字0表示,高電平為3.5~5V,用數(shù)字1表示)。
analog——模擬,digit——數(shù)字。所以AO表示模擬量,DO表示數(shù)字量。
ADC和DAC
很多時(shí)候,我們能看到ADC和DAC這兩個(gè)名詞,他們到底是干什么的呢?ADC就是模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)(上述的AO變成DO是其中的一種),DAC就是數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)(比如我們將編程讓單片機(jī)輸出固定的電壓值)。