假期戰略更新第五集——學習NodeMCU的AD轉換(今天不學習,明天變垃圾)

NodeMCU基本信息在前一集已經講過了,這次說一下ADC(模數轉換),從下面圖上可以看出,NodeMCU的A0口是有ADC功能的,今天就學習一下這個ADC的功能。

NodeMCU引腳圖
是什麼,爲什麼,之前說過了,這次就不說了,這次直接說怎麼做,先說一下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針腳產生的電壓,每個峯值是觸碰一次產生的電壓,大家不要學我,乖乖插個模擬量傳感器上去
串口繪圖器出圖
以上,第二部分結束

以上內容歡迎大家轉載引用,標明出處即可!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章