esp32 analog
时间: 2023-07-03 13:04:12 浏览: 93
ESP32 has a built-in 12-bit SAR analog-to-digital converter (ADC) that can be used to measure analog voltage signals. Here's an example of how to use the ADC:
1. Include the ADC library:
```
#include <driver/adc.h>
```
2. Initialize the ADC:
```
void setup() {
// Initialize ADC
adc1_config_width(ADC_WIDTH_BIT_12);
adc1_config_channel_atten(ADC1_CHANNEL_0, ADC_ATTEN_DB_11);
}
```
In this example, ADC1_CHANNEL_0 is used to measure the voltage. The attenuation is set to ADC_ATTEN_DB_11, which means that the input voltage range is 0-3.6V.
3. Read the analog value:
```
void loop() {
// Read ADC value
int value = adc1_get_raw(ADC1_CHANNEL_0);
// Convert ADC value to voltage
float voltage = value * 3.6 / 4095;
// Do something with the voltage value
}
```
In this example, adc1_get_raw() is used to read the raw ADC value. The raw value is then converted to voltage using the formula voltage = value * 3.6 / 4095, where 3.6 is the maximum input voltage range and 4095 is the maximum value of the 12-bit ADC.
Note that ESP32 also has a second ADC (ADC2), but it can only be used while Wi-Fi is not in use.