声音传感器
驗采用OJ模擬聲音傳感器,駐極體檢測聲音大小,并經過放大電路輸出模擬量。所以,檢測聲音的大小就與輸出的模擬量成正比。實驗中,我們采用模擬聲音傳感器循環檢測外部音量,當超過一定值后,點亮LED,延時一段時間后,熄滅LED。這樣模擬夜間樓道聲控燈工作。
實驗所需模塊清單:
Zduino UNO × 1;
OJ傳感器擴展板× 1; USB數據線?× 1?; 3p杜邦線?× 2?; 聲音傳感器模塊 × 1?; 食人魚LED模塊?× 1?;
主要知識點:
analogRead(PIN)??讀取模擬輸入值。?
??這里的PIN只能是對應A0---A5 這種帶ADC功能的引腳,數字引腳0—13則不能使用該函數。
??讀取到的值是則是一個0~5V的電壓值,而這里的模擬輸入精度為10位,也就是2的10次方為1024,將0—5V伏對應映射到0—1023,所以analogRead(PIN)的返回值為0—1023中的一個值。通過這個值也可以換算為讀取到的電壓值。
實驗連接圖 食人魚LED對應連接13號IO口。
?
聲音傳感器對應連接A0口。
聲音傳感器輸出的是一個模擬值,可以調節中間藍色電位器來調節其檢測靈明度。int led=7;//定義LED接口,以便觀察聲音信號的電平 int button=6;//定義傳感器DO接口,接收聲音信號 int val;//定義數字變量,讀取聲音信號 int wal;//輸出傳感器模擬值 void setup() { Serial.begin(9600);//串口輸出端口 pinMode(led,OUTPUT);//led輸出接口 pinMode(button,INPUT);//DO輸出接口 } void loop() { val=digitalRead(button);//DO接口輸出值賦給val wal=analogRead(A0);//接收模擬信號 Serial.println(wal);//打印模擬信號電平 if(val==HIGH)//檢測到聲音信號 { digitalWrite(led,HIGH); } else { digitalWrite(led,LOW); } }
連線實物圖:
OJ傳感器擴展板× 1; USB數據線?× 1?; 3p杜邦線?× 2?; 聲音傳感器模塊 × 1?; 食人魚LED模塊?× 1?;
主要知識點:
analogRead(PIN)??讀取模擬輸入值。?
??這里的PIN只能是對應A0---A5 這種帶ADC功能的引腳,數字引腳0—13則不能使用該函數。
??讀取到的值是則是一個0~5V的電壓值,而這里的模擬輸入精度為10位,也就是2的10次方為1024,將0—5V伏對應映射到0—1023,所以analogRead(PIN)的返回值為0—1023中的一個值。通過這個值也可以換算為讀取到的電壓值。
實驗連接圖 食人魚LED對應連接13號IO口。
?
聲音傳感器對應連接A0口。
聲音傳感器輸出的是一個模擬值,可以調節中間藍色電位器來調節其檢測靈明度。
模擬量--?控制系統量的大小是一個在一定范圍內變化的連續數值,比如溫度,壓力等等,這些都是模擬量;模擬量傳感器發出的是連續信號,用電壓,電流,電阻等表示被測參數的大小;
開關量--該物理量只有兩種狀態,如開關的導通和斷開的狀態,繼電器的閉合和打開,電磁閥通和斷等等;
對控制系統來說,由于CPU是二進制的,數據的每位有“0”和“1”兩種狀態,因此,開關量只要用CPU內部的一位即可表示,比如,用“0”表示開,用“1”表示關。而模擬量則根據精度,通常需要8位到16為才能表示一個模擬量。
聲音傳感器是通過麥克風接收聲音信號轉化為音頻信號,根據音頻的變化確定電壓的變化,從而輸出所感知的聲音信號的強度(可以通過LED燈來反饋電壓變化);
聲音傳感器一般有四個接口,AO表示模擬量輸出,用來實時輸出麥克風所檢測聲音電壓信號,DO表示當聲音到達某個閾值時,輸出高低電平信號;
具體實現代碼:
連線實物圖:
總結
- 上一篇: ESP8266占空比测试
- 下一篇: java 四则运算_java实现小学生四