//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:
Publicar un comentario