【发布时间】: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 没有损坏,因为它可以在没有蓝牙的情况下读取所有内容。如果有人知道这个库,请确认它是否使用了某种定时器或中断来干扰这两个引脚。