Esp32 i2c junto con la lectura analógica ¿no funciona? Como arreglarlo

0

En primer lugar soy nuevo en electrónica. Estoy usando el kit de desarrollo ESP32 y trato de comunicarme con un sensor i2c y un sensor analógico. Soy capaz de comunicar ambos dispositivos. Estoy utilizando la tarea de freertos para recopilar la salida que se ejecuta en hilos paralelos en dos núcleos de esp32. Pero dije que cuando la comunicación i2c comienza a aumentar el ruido en la señal analógica a cada nivel alto. Estoy completamente sorprendido de por qué esto está sucediendo. ¿Podría ser fantasma? O algo que no sé. Necesito su orientación sobre eso. Cómo resolver este problema. Tenga en cuenta que si el dispositivo i2c no está ejecutando, los valores analógicos se leen perfectamente. Por favor ayuda con tus ideas o preguntas. Muchas gracias

    
pregunta user1453817

1 respuesta

0

Tuve un problema similar cuando usé BLE y analógicamente juntos.

Prueba la siguiente función si usas arduino-core. Use la función adc2_config_channel_atten si está utilizando esp-idf

int new_analogRead(int pin){
  int value = 0;
  int8_t channel = digitalPinToAnalogChannel(pin);
  if(channel < 0){
      return 0;//not adc pin
  }
  if(channel > 7){    //ADC2
    adc2_config_channel_atten(adc2_channel_t(channel-10),ADC_ATTEN_11db);//11dB attenuation (ADC_ATTEN_11db) gives full-scale voltage 3.9V
    adc2_get_raw(adc2_channel_t(channel-10), ADC_WIDTH_BIT_10, &value);
    //used chanel-10 based on gpioMUX in esp32-hal-gpio
    return value;
  } else {//ADC1- not required
      // while (GET_PERI_REG_MASK(SENS_SAR_MEAS_START1_REG, SENS_MEAS1_DONE_SAR) == 0); //wait for conversion
      // value = GET_PERI_REG_BITS2(SENS_SAR_MEAS_START1_REG, SENS_MEAS1_DATA_SAR, SENS_MEAS1_DATA_SAR_S);
      return 0;
  }
}
    
respondido por el Sanu - Open Maker

Lea otras preguntas en las etiquetas