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