【问题标题】:ESP32 Analog pin not reading when bluetooth is connected连接蓝牙时,ESP32 模拟引脚不读取
【发布时间】:2019-07-10 14:09:48
【问题描述】:

我一直在使用 ESP32 并在 Arduino 中编写代码。但是,当我启用蓝牙时,GPIO4 和 GPIO15 无法读取模拟输入。我已经在两个引脚上连接了 IR LED 并读取模拟信号。如果不使用蓝牙代码,ESP32 正在读取模拟信号并将其显示在串行监视器上。如果使用下面的蓝牙代码,两个引脚上的读数显示为 255(读数为 5v。是的,它们现在是 5v,将电平转换为 3.3v)。

有人可以检查并提出解决方案吗?

我已经切换了传感器,移除了它们,无论我做什么,读取蓝牙时的读数都是一样的

蓝牙代码:

void init_bluetooth() {
      ESP_BT.begin("EKA Robot"); //Name of your Bluetooth Signal
      Serial.println("Bluetooth Device is Ready to Pair");
}

IR 代码:

    // Read Infrared LED on GPIO4. Similar function exists to read GPIO15
    int readIR() {
      int sensorValue = analogRead(oaPinL);
      delay(5);
      sensorValue = map(sensorValue, 0, 4095, 0, 255);
      return (sensorValue);
    }

我希望读取传感器值。但是,它显示的只是 255。这是否意味着它被拉高了?

【问题讨论】:

  • ESP32 能承受 5V 电压吗?
  • @KentaroOkuda 不,它不支持 5V。
  • 那么,可能是接5V时管脚损坏了。
  • 没有。它没有损坏。我在禁用蓝牙后尝试使用相同的传感器,它可以工作。我可以保证 pin 没有损坏,因为它可以在没有蓝牙的情况下读取所有内容。如果有人知道这个库,请确认它是否使用了某种定时器或中断来干扰这两个引脚。

标签: c arduino esp32


【解决方案1】:

ESP32 芯片中有两个 A/D 转换器,ADC1 和 ADC2。使用 Wi-Fi 或蓝牙时不能使用 ADC2 引脚。连接到 ADC1 的引脚可以工作。它们是 GPIO32-36 和 GPIO39。

【讨论】:

  • 这是有道理的。谢谢。现在再次检查 ESP32 文档。
猜你喜欢
  • 1970-01-01
  • 2019-06-01
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 2012-03-21
  • 1970-01-01
  • 2021-03-20
相关资源
最近更新 更多