domingo, 1 de diciembre de 2024

Aprende a medir corriente alterna y contina con el sensor ACS712 y ardui...

//CODIGO PARA LEER LA SEÑAL DE CORRIENTE DE UN MODULO ACS712
//http://www.editronikx.com.co
float Sensibilidad_5A = 0.185; //sensibilidad en Voltios/Amperio para sensor de 5A Sale de la tabla
float Sensibilidad_20A = 0.1;//sensibilidad en Voltios/Amperio para sensor de 20A Sale de la tabla
float Sensibilidad_30A = 0.066;//sensibilidad en Voltios/Amperio para sensor de 30A Sale de la tabla

#define ACS712_PIN A0  // Pin analógico donde está conectado el sensor ACS712
#define NUM_LECTURAS 200  // Cantidad de mediciones para hacer el promedio

float offset = 2.49;  // Offset del ACS712 (2.5V para señales DC)

void setup() {
  Serial.begin(9600);
}

void loop() {
  float sumLecturas = 0;

  // Realizar múltiples lecturas y sumarlas
  for (int i = 0; i < NUM_LECTURAS; i++)
  {
    int bits = analogRead(ACS712_PIN);
    float voltage = (bits / 1023.0) * 5.0;  // Convertir el valor analógico a voltaje (0-5V)
    sumLecturas += voltage;
  }

  // Calcular el promedio de voltaje
  float voltaje_prom = sumLecturas / NUM_LECTURAS;

  // Calcular el amperaje en base al voltaje promedio
  float corriente = (voltaje_prom - offset) / Sensibilidad_20A;

  // Mostrar el valor de corriente en el monitor serie
  Serial.print("Corriente: ");
  Serial.print(corriente,4);
  Serial.println(" A");

  delay(500);  // Esperar un poco antes de la siguiente lectura
}

No hay comentarios: