NodeMCU基本信息在前一集已經講過了,這次說一下ADC(模數轉換),從下面圖上可以看出,NodeMCU的A0口是有ADC功能的,今天就學習一下這個ADC的功能。
是什麼,爲什麼,之前說過了,這次就不說了,這次直接說怎麼做,先說一下ADC流程
#define ADC_port A0 //將A0宏定義爲ADC_port
int numcount = 20; //定義採集次數
unsigned int reading[20]; //定義一個數組存儲採集的數據
int count = 0; //定義一個記次變量
unsigned long AnalogValueTotal = 0; //採集數據總和
unsigned int AnalogAverage = 0,averageVoltage=0; //採集數據均值、換算電壓均值
float ADC_read = 0; //ADC採集最後結果
void setup() {
// put your setup code here, to run once:
Serial.begin(115200); //串口初始化
for (count = 0;count < numcount;count++) //存儲數組清零
reading[count] = 0;
}
void loop() {
// put your main code here, to run repeatedly:
for (count = 0 ; count<numcount ; count++) //循環讀取ADC值並存儲到數組中求和
{
reading[count] = analogRead(ADC_port); //讀取adc
AnalogValueTotal = AnalogValueTotal + reading[count]; //疊加
}
AnalogAverage = AnalogValueTotal / numcount; //計算平均值
float adc = AnalogAverage*(float)3300/1024; //轉換爲電壓
AnalogAverage = 0; //平均值清零
AnalogValueTotal= 0; //採樣求和值清零
Serial.println(adc,3); //串口輸出採樣值
delay(100); //延時100ms
}
代碼詳解都已經在代碼中註釋了,編譯燒錄完成後,打開Arduino IDE的串口繪圖器,在菜單欄的工具目錄下,或者直接Ctrl+Shift+L即可,下圖是我用手指直接觸碰A0針腳產生的電壓,每個峯值是觸碰一次產生的電壓,大家不要學我,乖乖插個模擬量傳感器上去
以上,第二部分結束
以上內容歡迎大家轉載引用,標明出處即可!!!!!