我一直在使用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。这是否意味着它被拉高了?
答案 0 :(得分:0)
ESP32芯片中有两个A / D转换器ADC1和ADC2。使用Wi-Fi或蓝牙时,不能使用ADC2引脚。连接到ADC1的引脚起作用。这些是GPIO32-36和GPIO39。