Está en la página 1de 2

float Sensibilidad=0.066; //sensibilidad en Voltios/Amperio. 5A=0.185, 20A=0.100, 30A=0.

66,
int relay = 2; //desactivador del motor,
int pulsadorPin = 4; //puertas activadas,
int valorPulsador = 0; //valor inicial de entrada,
int ledPin = 13;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(relay, OUTPUT); // Configurar relay como salida o OUTPUT
pinMode(pulsadorPin, INPUT); // Configurar reley como entrada o INPUT
Serial.begin(9600);
}

void loop() {

float Idc=calculoCorriente(500); //obtenemos la corriente promedio de 500


muestras
valorPulsador = digitalRead(pulsadorPin);
Serial.print("Corriente: ");
Serial.println(Idc,2);

if (valorPulsador == HIGH) {
digitalWrite(ledPin, HIGH);
delay (100);
digitalWrite(relay, LOW);

if (Idc >=2.0||Idc <= -3.0) {


digitalWrite(relay, HIGH);
delay (9000);//RELE ENCENDIDO
}}//LED ENCENDIDO
else {

digitalWrite(relay, HIGH);//RELE APAGADO.


digitalWrite(ledPin, LOW);//LED APAGADO

}
delay(100);

float calculoCorriente(int numeroMuestras)


{
float leerAcs712 = 0;
float intensidad = 0;
for(int i=0;i<numeroMuestras;i++)
{
leerAcs712 = analogRead(A0) * (5.02 / 1023.0); // Lee tension en sensor en A0.
intensidad=intensidad+(leerAcs712-2.5)/Sensibilidad; //Calculamos corriente y sumamos.
}
intensidad=intensidad/numeroMuestras;
return(intensidad);

También podría gustarte