Error WIFI and analogRead

I am programming a FeatherHuazzahEsp34 board, with an SD card module. I am trying to log and send the data I capture from an "Analog AC Current Sensor 20A" probe.
If I activate the WIFI, I don't read the analog ports and if I disable it, I read the data from the analog ports.
I don't know what the problem is

#include <WiFi.h>
#include "FS.h"
#include "SD.h"
#include "SPI.h"

char ssid[50];
char password[50];
String IdInstalacio = "";

//Potencia
const int ACPin = A0;         //set arduino signal read pin
#define ACTectionRange 20;    //set Non-invasive AC Current Sensor tection range (5A,10A,20A)

// VREF: Analog reference
// For Arduino UNO, Leonardo and mega2560, etc. change VREF to 5
// For Arduino Zero, Due, MKR Family, ESP32, etc. 3V3 controllers, change VREF to 3.3
#define VREF 3.3

void setup()
  {
  Serial.begin(9600);
  delay(1000);

  Serial.println(" ");
  Serial.println("-> Inici SETUP ");
  Serial.println("-> Ausatel Sistemes 2023 ");  
  Serial.println("-> Test_Wifi_SD_01 ");

  //Potencia
  
  // Sd Card
  if(!SD.begin(SS))
    {
    Serial.println("Card Mount Failed");
    return;
    }
    uint8_t cardType = SD.cardType();
    if(cardType == CARD_NONE)
      {
      Serial.println("No SD card attached");
      return;
      }
  readFile(SD, "/info.txt");
  
  // WIFI Conneció
  Serial.print("-> Connecting to ");
  Serial.println(ssid);
  Serial.print("-> ");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) 
    {
    delay(500);
    Serial.print(".");
    }
  Serial.println("");
  Serial.println("-> WiFi connected");
  Serial.print("-> IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println("-> Fi SETUP");
  }

void loop()
  {
    
  float ACCurrentValue = readACCurrentValue(); //read AC Current Value
  Serial.print(ACCurrentValue/2);
  Serial.println(" A");
  Serial.print((ACCurrentValue/2) * 230);
  Serial.println(" W");
  delay(6000);
  }

// Inci funció llegir SD *************
void readFile(fs::FS &fs, const char * path)
  {
  int a =0;
  String cadena="";
    
  Serial.println("-> Llegint SD.....");
  Serial.printf("-> Llegint fitxer: %s\n", path);
  
  File file = fs.open(path);
  if(!file)
    {
    Serial.println("Failed to open file for reading");
    return;
    }
  
    Serial.print("-> Lectura del fitxe: ");
    while(file.available())
      {
      //APTona;AusatelTona08;8001;
      //Serial.write(file.read());
      char caracter=file.read();
      cadena=cadena+caracter;
      a=file.position();
      if(caracter==10)//ASCII de nueva de línea
        {            
        break;
        }      
      }
    file.close();
    Serial.println(cadena);  

    //Funció trossejar
    int Inici, Fi, n;
    String Camp;

    n = 0;
    Inici = 0;
    Fi = cadena.indexOf(";",Inici);
    while (Fi != -1) 
      {
      Camp = cadena.substring(Inici, Fi); 
      Inici = Fi+1;
      Fi = cadena.indexOf(";", Inici);
      int str_len = Camp.length() + 1;
      if (n==0) Camp.toCharArray(ssid, str_len);    //convertim de String a Char  
      if (n==1) Camp.toCharArray(password, str_len);
      //if (n==0) ssid = Camp;                    
      //if (n==1) password = Camp;         
      if (n==2) IdInstalacio = Camp;            // si fos un muneric -> Camp.toInt();
      n = n +1;  
      }
    Serial.print("->         SSID: "); Serial.println(ssid);    
    Serial.print("->     Password: "); Serial.println(password);    
    Serial.print("-> IdInstalacio: "); Serial.println(IdInstalacio);
  }
// Fi funció llegir SD *************    

// Funció llegir potencia
float readACCurrentValue()
  {
  float ACCurrtntValue = 0;
  float peakVoltage = 0;  
  float voltageVirtualValue = 0;  //Vrms
  for (int i = 0; i < 6; i++)
    {
    peakVoltage += analogRead(ACPin);   //read peak voltage
    delay(1);
    }
  peakVoltage = peakVoltage / 6;   
  
  voltageVirtualValue = peakVoltage * 0.707;    //change the peak voltage to the Virtual Value of voltage

  /*The circuit is amplified by 2 times, so it is divided by 2.*/
  voltageVirtualValue = (voltageVirtualValue / 1024 * VREF ) / 2;  

  ACCurrtntValue = voltageVirtualValue * ACTectionRange;

  Serial.print("VoltageVirtual = "); Serial.println(voltageVirtualValue);
  //Serial.print("ACTectionRange = "); Serial.println(ACTectionRange);
  Serial.print("ACCurrtntValue = "); Serial.println(ACCurrtntValue);
  Serial.println("********************************");
  
  return ACCurrtntValue;
  }
// Fi funció llegir potenies

With the SETUP like this:

void setup()
  {
  Serial.begin(9600);
  delay(1000);

  Serial.println(" ");
  Serial.println("-> Inici SETUP ");
  Serial.println("-> Ausatel Sistemes 2023 ");  
  Serial.println("-> Test_Wifi_SD_01 ");

  //Potencia
  
  // Sd Card
  if(!SD.begin(SS))
    {
    Serial.println("Card Mount Failed");
    return;
    }
    uint8_t cardType = SD.cardType();
    if(cardType == CARD_NONE)
      {
      Serial.println("No SD card attached");
      return;
      }
  readFile(SD, "/info.txt");

  /*
  // WIFI Conneció
  Serial.print("-> Connecting to ");
  Serial.println(ssid);
  Serial.print("-> ");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) 
    {
    delay(500);
    Serial.print(".");
    }
  Serial.println("");
  Serial.println("-> WiFi connected");
  Serial.print("-> IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println("-> Fi SETUP");
  */
  }


Yes, I can read the analog inputs.
I don't know what my mistake is!!!

It seems that if you use Wifi, I can't use A0 and A1. With A2 and a3 yes that pic read the data.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.