树莓派基础实验18:声音传感器实验
一、介紹
?? 聲音傳感器是一種接受聲波并將其轉換為電信號的組件,它像麥克風一樣檢測周圍環境中的聲音強度。
二、組件
★Raspberry Pi主板*1
★樹莓派電源*1
★40P軟排線*1
★PCF8591模數轉換器模塊*1
★聲音傳感器模塊*1
★面包板*1
★跳線若干
三、實驗原理
??傳感器模塊上的麥克風可將音頻信號轉換為電信號(模擬量),然后通過PCF8591將模擬量轉換為數字量,并將其傳輸到MCU。
??LM358是一款雙通道運算放大器,它包含兩個獨立的高增益和內部補償放大器,但在本實驗中,我們只使用其中一個。麥克風將聲音信號轉換為電信號,然后將信號發送到LM358的引腳2,并通過外部電路將它們輸出到引腳1(模塊的引腳SIG)。然后使用PCF8591讀取模擬值。
四、實驗步驟
??第1步: 連接電路。
| SDA | SDA | SDA |
| SCL | SCL | SCL |
| 5V | 5V | VCC |
| GND | GND | GND |
| AO | * | AIN0 |
| DO | G17 | * |
| VCC(+) | 5V | VCC |
| GND(G) | GND | GND |
??第2步: PCF8591模塊采用的是I2C(IIC)總線進行通信的,但是在樹莓派的鏡像中默認是關閉的,在使用該傳感器的時候,我們必須首先允許IIC總線通信。
??第3步: 開始編程。這里先編寫一個PCF8591.py庫文件,后面再編寫一個python程序引入這個庫文件。
??PCF8591.py庫文件就是PCF8591模塊的程序,單獨編寫是為了便于重用。在這個腳本中,我們使用了一個放大器用于模擬輸入和一個LED燈用于模擬輸出,模擬輸入不能超過3.3V!
??該程序也可以單獨運行,用于測試3個電阻模塊的功能。需用短路帽連接AIN0和INPUT0(電位計模塊),連接AIN1和INPUT1(光敏電阻模塊),以及連接AIN2和INPUT2(熱敏電阻模塊)。
??連接LED燈,AIN0(模擬輸入0)端口用于接收來自電位計模塊的模擬信號,AOUT(模擬輸出)用于將模擬信號輸出到雙色LED模塊,以便改變LED的亮度。
??PCF8591的詳細內容請查看樹莓派基礎實驗12:PCF8591模數轉換器實驗。
??若想深入學習模/數轉換等模電知識,強烈推薦以下書籍,國外大學最經典模電教程,比國內教程生動有趣更易懂。掃碼購買或者點擊下面的鏈接。
《模擬電子基礎》點擊購買:https://u.dangdang.com/OIVk
??第4步: 編寫控制程序。PCF8591將模擬量轉換為的數字量,會隨著檢測到的聲音變大而變小,當數字量小于130時,打印"Voice detected! "。
??這里為什么閾值設為130呢?聲音傳感器模塊有兩個LED燈,LED1燈為電源指示燈,接通電源就會一直常亮。LED2為聲音檢測指示燈,在沒有檢測到聲音時應該熄滅,一旦檢測到聲音,就(才)會亮,而這需要旋轉藍色元件上的金黃色平口螺絲,調節聲音檢測的靈敏度來實現。否則,LED2無論檢測到聲音與否,都可能一直常亮,或者一直不亮。而我調節到合適位置時,安靜狀態下voiceValue = ADC.read(0)的值為133,所以我設置檢測到聲音的閾值為130比較合適。
??
總結
以上是生活随笔為你收集整理的树莓派基础实验18:声音传感器实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA 搭建黑马品优购商城
- 下一篇: 水浒猛将java版_水浒传猛将等级层次划