實現(xiàn)目標:了解常用傳感器的原理實現(xiàn),達到舉一反三的效果,學會如何操作;
硬件準備:聲音傳感器(或者其他同類傳感器)
LED燈
單片機(STM32F103C8T6或其他)
軟件:keil5
先來介紹幾款我們在DIY小玩意的時候經(jīng)常用到的幾款傳感器:
一、常用傳感器認識
1、聲音傳感器 |
4線制聲控傳感器模塊?
3線制聲控傳感器模塊
2、光敏傳感器 |
4線制光敏傳感器模塊?
3線制光敏傳感器模塊
3、煙霧傳感器 |
諸如此類的傳感器還有很多,像雨水傳感器、震動傳感器等等,下面圖片中的許多都是一樣的原理,大家學會一種,就可以舉一反三啦。
二、原理圖說明
接下來,小飛哥以聲音傳感器為例,對此類傳感器的通用底板做點簡單介紹,下圖是找的某款模塊手冊,做的也是非常用心了,板子上有LM393進行數(shù)字量輸出,LM386對聲音信號放大后作為模擬量輸出,接著來分析下此模塊的原理圖。
可以看到,聲音信號進來之后,是比較微弱的,經(jīng)過R1可調(diào)電阻控制聲音的幅值,經(jīng)過LM386對聲音信號進行放大,放大倍數(shù)有兩種方式,一種是pin 1及pin 8間加一個10μF的電容即可使增益變成200,也就是此模塊采用的方式,另外一種是在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為200以內(nèi)的任意值。然后放大后的聲音信號,一路是經(jīng)過c6電容去直流之后,直接輸出至模塊AOUT引腳,此信號可以結(jié)合我們的單片機ADC進行采集,然后可以對聲音信號做傅里葉變化,顯示屏顯示,就可以得到音樂頻譜啦。另一路是輸入至LM393電壓比較器,通過調(diào)節(jié)R3可調(diào)電阻,作為正相輸入電壓,當反相輸入電壓大于正相電壓時,LM393輸出高電平,反之,輸出低電平,實現(xiàn)不同閾值下的電壓比較功能,也就是檢測聲音的大小。
什么是電壓比較器? 簡單地說, 電壓比較器是對兩個模擬電壓比較其大小(也有兩個數(shù)字電壓比較的,這里不介紹),并判斷出其中哪一個電壓高,如圖1所示。圖1(a)是比較器,它有兩個輸入端:同相輸入端(“ ” 端) 及反相輸入端(“-”端),有一個輸出端Vout(輸出電平信號)。另外有電源V 及地(這是個單電源比較器),同相端輸入電壓VA,反相端輸入VB。VA和VB的變化如圖1(b)所示。在時間0~t1時,VA>VB;在t1~t2時,VB>VA;在t2~t3時,VA>VB。在這種情況下,Vout的輸出如圖1(c)所示:VA>VB時,Vout輸出高電平(飽和輸出);VB>VA時,Vout輸出低電平。根據(jù)輸出電平的高低便可知道哪個電壓大。
如果把VA輸入到反相端,VB輸入到同相端,VA及VB的電壓變化仍然如圖1(b)所示,則Vout輸出如圖1(d)所示。與圖1(c)比較,其輸出電平倒了一下。輸出電平變化與VA、VB的輸入端有關(guān)。
其他一些模塊大多是沒有前級放大芯片,模擬量是直接輸出的,可能是由于輸出的信號比較強吧,柱極咪頭輸出的聲音電信號是非常微弱的,若果沒有前置放大的話,單片機AD不好采集得到,所以前置放大器還是必須的。簡單的應(yīng)用場景,平時用的更多的是數(shù)字量輸出,直接接到單片機IO,檢測高低電平,然后控制后端繼電器或者其他設(shè)備。三、聲音傳感器模塊測試
代碼比較簡單,主要用到外部中斷引腳,或者普通IO輪訓(xùn)方式也可以,就不多說了,主要介紹下,實驗用到的最小系統(tǒng)部分,主芯片用的是STM32F103C8T6,這也是小飛哥以前無聊畫的板子,把以上介紹的多種傳感器原理在最小系統(tǒng)板子上實現(xiàn)了,板子開源大家可以進群獲取資料,主要包括以下功能:1)?NRF24L01
2)?EEPROM
3)?4個獨立按鍵
4)?LED燈5)?LED燈驅(qū)動電路6)?電壓比較器電路
7) 串口一鍵下載
也是非常的簡潔了。。。做一個聲控燈又太浪費,哈哈,可以測試NRF24L01,小飛哥已經(jīng)調(diào)通,有做板子的童鞋,代碼可以找我要哈。 ? 實現(xiàn)效果:
?????????????????????????????????????????