1.MAX4466是一款低噪聲、高增益的放大器模塊。該模塊采用了集成放大器芯片,能夠在低電壓下提供高增益。它的輸入阻抗較高,能夠與多種信號源(例如麥克風、傳感器)實現良好的匹配。同時,MAX4466還具備很低的噪聲水平,能夠有效地提取和放大微弱的信號,提高系統的靈敏度。MAX4466模塊的應用場景包括但不限于以下幾個方面:
音頻處理:可以作為音頻信號的前置放大器,將低電平的音頻信號放大到適合后續處理的水平,如音樂播放、語音識別、語音通信等。
聲音檢測與分析:結合麥克風等音頻傳感器,可以實現聲音的檢測、分析和識別,如聲音傳感器、語音識別設備等。
無線通信:可以用于接收無線通信模塊的輸入信號,對其進行放大,以提高通信距離和信號質量。
2.本實驗使用到了CW32f030c8小藍板、MAX4466模塊、LED交通信號燈模塊、0.96寸OLED顯示屏、Keil5開發環境及VOFA+上位機軟件。
CW32f030c8小藍板
MAX4466模塊
實物(俯視)
實物(正視)
【單片機與MAX4466連線】:3.3V--VCC
GND---GND
PA0---OUT
【單片機與OLED屏連線】: GND---GND
3.3V--VDD
PB8--SCK
PB9--SDA
【單片機與LED燈連線】: GND--GND
PC15--R
PC14--Y
PC13--G
核心代碼
ADC.c
#include "ADC.h"
#include "main.h"
#include "delay.h"
void ADC_Configuration(void)
{
ADC_SingleChTypeDef ADC_SingleInitStruct;
__RCC_ADC_CLK_ENABLE(); // ADC時鐘使能
__RCC_GPIOA_CLK_ENABLE(); //GPIOA使能
PA00_ANALOG_ENABLE();
ADC_SingleInitStruct.ADC_Chmux = ADC_ExInputCH0; //PA00 通道0
ADC_SingleInitStruct.ADC_InitStruct.ADC_AccEn = ADC_AccDisable; //轉換結果累加不使能
ADC_SingleInitStruct.ADC_InitStruct.ADC_Align = ADC_AlignRight; //ADC轉換結果右對齊
ADC_SingleInitStruct.ADC_InitStruct.ADC_ClkDiv = ADC_Clk_Div16; //PCLK
ADC_SingleInitStruct.ADC_InitStruct.ADC_DMAEn = ADC_DmaDisable; //關閉DMA傳輸
ADC_SingleInitStruct.ADC_InitStruct.ADC_InBufEn = ADC_BufEnable; //開啟跟隨器
ADC_SingleInitStruct.ADC_InitStruct.ADC_OpMode = ADC_SingleChOneMode;//單通道單次轉換模式
ADC_SingleInitStruct.ADC_InitStruct.ADC_SampleTime = ADC_SampTime10Clk; //10個ADC時鐘周期
ADC_SingleInitStruct.ADC_InitStruct.ADC_TsEn = ADC_TsDisable; //內置溫度傳感器禁用
ADC_SingleInitStruct.ADC_InitStruct.ADC_VrefSel = ADC_Vref_VDDA; //VDDA參考電壓
ADC_SingleChOneModeCfg(&ADC_SingleInitStruct); //開始轉換
ADC_Enable(); // 使能ADC
ADC_SoftwareStartConvCmd(ENABLE); //轉換使能
}
uint16_t Get_Data(void) //ADC數據采集
{
unsigned int temp_dat_adc = 0;
ADC_SoftwareStartConvCmd(ENABLE); //開始轉換
while(ADC_GetITStatus(ADC_IT_EOC))
{
ADC_ClearITPendingBit(ADC_IT_EOC); //清除標志位
temp_dat_adc=ADC_GetConversionValue();//電壓采集
}
return temp_dat_adc;
}
uint16_t Cal_Average_Data(void)
{
float dat;
uint8_t i=0;
for(i=0;i< 50;i++) //連續采集50次ADC的值
{
dat+=Get_Data(); //累加
Delay_ms(1);
}
return dat/50; //返回平均值
}
main.c
int main()
{
uint16_t temp;
LED_Init(); //LED燈初始化
OLED_Init(); //OELD屏初始化
UART_Init(); //串口初始化
ADC_Configuration(); //ADC配置
OLED_ShowString(1,1,"present:"); //提示字符串
OLED_ShowString(2,1,"record_max:");
while(1)
{
temp=Cal_Average_Data(); //獲取ADC數值累加后的平均值
printf("%dn",temp); //通過串口借助VOFA+軟件打印波形圖
LED_Indicator(temp); //LED燈指示
Delay_ms(100);
}
}
- VOFA+軟件簡易使用說明
①配置協議與連接:數據引擎選擇”FireWater”,(注意:在程序中使用printf函數時,必須在%d后面加上n才能在FireWater模式下被上位機正確識別),數據接口選擇”串口”,正確選擇端口號和配置波特率;
②在控件中找到波形圖,拖拽到主窗口中,選擇整窗口填充;
④右擊窗口選擇Y軸中的All打開Y軸數據顯示;
⑤在圖形種類中(默認)選擇波形圖;
⑥點擊左上角灰黑色圓圈打開串口進行通信,看到圓圈變藍并且閃爍代表通信正常,之后可以像調節示波器顯示一樣通過鼠標滾輪手動將波形調整到合適的顯示范圍,也可以點擊Auto一鍵調整波形顯示范圍。
- 效果演示
正常音量
正常音量波形圖
較大音量
較大音量波形圖
過大音量
審核編輯 黃宇
-
放大器
+關注
關注
143文章
13589瀏覽量
213471 -
麥克風
+關注
關注
15文章
637瀏覽量
54824 -
CW32
+關注
關注
1文章
203瀏覽量
641
發布評論請先 登錄
相關推薦
評論