簡介模數轉換器(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。