ESP8266(NodeMCU)使用ADC

  簡介模數轉換器(ADC)及其引腳:
  模數轉換器(ADC)用於將模擬信號轉換爲數字形式。ESP8266具有內置的10位ADC,只有一個ADC通道,即只有一個ADC輸入引腳可讀取來自外部器件的模擬電壓,預留的ADC引腳爲A0,可以讀取0~1V的電壓,電壓輸入信號映射到數值0-1023。換句話說,就是將1V電壓分成1024分,1V對應1024。
讀取0-1V:

const int analogInPin = A0; // 模擬輸入引腳

const int pwmOutPin = LED_BUILTIN; //led連接到pwm輸出引腳

int sensorValue = 0; // 從引腳讀到的值
int outputValue = 0; //輸出到pwm腳的值

void setup()
{
    // 設置引腳爲模擬輸入模式
    pinMode(analogInPin, INPUT);
    // 設置led腳輸出pwm模式
    pinMode(pwmOutPin, OUTPUT);
    Serial.begin(9600);
}

void loop()
{
    //讀取模擬輸入數值
    sensorValue = analogRead(analogInPin);
    // 使用map函數把輸入的數值進行映射
    outputValue = map(sensorValue, 0, 1024, 0, 330);//可以修改數值映射330   3.3V
    // 改變模擬輸出數值
    analogWrite(pwmOutPin, outputValue);
	Serial.println((float)outputValue/100.00); //保留兩位小數 
    // 在串口打印顯示輸入輸出的數值
    Serial.print("sensor = ");
    Serial.print(sensorValue);
    Serial.print("\t output = ");
    Serial.println(outputValue);
    delay(200);
}

沒有外接電壓:
在這裏插入圖片描述
如果要讀取0-3.3V電壓那麼就需要連接到電阻分壓器網絡(100K和220K)測試效果:
INPUT接外部輸入的信號,OUTPUT接ESP8266的A0。
在這裏插入圖片描述

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