esp32 arduino ADC数模转换代码示例

// 读取并返回GPIO2的原始模拟电压
// analogRead(2)

// 在初始化函数内初始化esp32
void setup() {
  // 初始化波特率
  Serial.begin(115200);
}

// 循环体函数
void loop() {
  // 把GPIO2读取的原始模拟电压值存储在变量中  
  int analogValue=analogRead(2);
  // 串口打印读取的原始模拟电压值
  Serial.printf("GPIO2的电压值为:%d",analogValue);
  // 延时一段时间继续读取
  delay(1000);
}
//读取并返回GPIO2的模拟电压,单位,毫伏
//analogReadMilliVolts(2)

// 在初始化函数内初始化esp32
void setup() {
  // 初始化波特率
  Serial.begin(115200);
}

// 循环体函数
void loop() {
  // 把GPIO2读取的模拟电压值存储在变量中  
  int analogValue=analogReadMilliVolts(2);
  // 串口打印读取的模拟电压值
  Serial.printf("GPIO2的电压值为:%d",analogValue);
  // 延时一段时间继续读取
  delay(1000);
}
// 设置返回值的分辨率
// analogReadResolution

// 默认为12,也就是2^12=4096,可以将原始电压分为4096份
// 如果分辨率设置为13,2^13=8192,可以将原始电压分为8192份
// 分得越细,也就是分辨率越高,模拟值更准确
// 如果未使用此函数,则默认分辨率为12
//一般设置值在1-16之间

// 在初始化函数内初始化esp32
void setup() {
  // 初始化波特率
  Serial.begin(115200);
  // 设置ADC分辨率,如果没有此语句,则默认为12
  analogReadResolution(13);

}

// 循环体函数
void loop() {
  // 把GPIO2读取的电压值存储在变量中  
  int analogValue=analogRead(2);
  // 串口打印读取的电压值
  Serial.printf("GPIO2的电压值为:%d",analogValue);
  // 延时一段时间继续读取
  delay(1000);
}
// 设置每个引脚的衰减
// analogSetAttenuation(ADC_11db)

// 默认为12,也就是2^12=4096,可以将原始电压分为4096份
// 如果分辨率设置为13,2^13=8192,可以将原始电压分为8192份
// 分得越细,也就是分辨率越高,模拟值更准确
// 如果未使用此函数,则默认分辨率为12
//一般设置值在1-16之间

// 在初始化函数内初始化esp32
void setup() {
  // 初始化波特率
  Serial.begin(115200);
  // 设置衰减
  // GPIO口会对输入的电压进行一定的减弱,以防止电压过大造成单片机损坏
  // 衰减程度越大,测量的电压范围越大
  /* 括号内可填:
  analogSetAttenuation(ADC_0db);
  analogSetAttenuation(ADC_2_5db);
  analogSetAttenuation(ADC_6db);  
  analogSetAttenuation(ADC_11db);
  */
  //一般不设置这个衰减,直接用默认的
  // 默认参数是衰减11db,即使没有设置,也是11db
  analogSetAttenuation(ADC_11db);
  // 或者用这条语句
  analogSetAttenuation(ADC_2_5db);

}

// 循环体函数
void loop() {
  // 把GPIO2读取的电压值存储在变量中  
  int analogValue=analogRead(2);
  // 串口打印读取的电压值
  Serial.printf("GPIO2的电压值为:%d",analogValue);
  // 延时一段时间继续读取
  delay(1000);
}
// 设置GPIO2引脚的衰减
// analogSetPinAttenuation(2,ADC_11db)

// 在初始化函数内初始化esp32
void setup() {
  // 初始化波特率
  Serial.begin(115200);
  // 设置GPIO2引脚的衰减
  analogSetPinAttenuation(2,ADC_11db);

  

}

// 循环体函数
void loop() {
  // 把GPIO2读取的电压值存储在变量中  
  int analogValue=analogRead(2);
  // 串口打印读取的电压值
  Serial.printf("GPIO2的电压值为:%d",analogValue);
  // 延时一段时间继续读取
  delay(1000);
}
// 读取esp32内部的霍尔传感器
// hallRead()

// 在初始化函数内初始化esp32
void setup() {
  // 初始化波特率
  Serial.begin(115200);
}

// 循环体函数
void loop() {
  // 串口打印读取的霍尔值
  Serial.printf("霍尔传感器的值为:%d",hallRead());
  // 延时一段时间继续读取
  delay(1000);
}

你可能感兴趣的:(单片机,嵌入式硬件)