hace 8 años
Hola Amigos !
Estoy haciendo un controlador para controlar el consumo de corriente de dos motores de CC , si este consumo esta dentro de los 6 A una lampara se debe apagar y si esta por debajo de 3 o encima de 7 A se debe encender.
Utilizo un arduino nano y dos sensores de corriente de 20 A
Lo he hecho y anda bien cuando lo pruebo con una lampara pero al probarlo con un motor no anda debido al ruido electrico que se genera en el sensor de corriente, he tratado de eliminarlo y no he podido.
Leyendo por ahi he visto que se puede hacer un promedio de las entradas analogicas pero no me doy cuenta com hacerlo.
Pongo el programa que he hecho para que alguin me ayude.
A modo decorativo y para saber si esta corriendo el programa hice destellar el led interno pin 13
Muchas gracias
const int sensorbomba1 = A4; //pin de entrada para el sensor de corriente de bomba 1
int sensorvalue1; //pin de entrada para el sensor de corriente de bomba 2
const int sensorbomba2 = A3;
int sensorvalue2;
int memoria = true;
int lamparachek = 13; //pin de salida para la led de chequeo
int estado_lampchek = LOW;
long millis_anteriores2 = 0;
long intervalo2 = 150;
int lambombas = 3; //pin de salida para la lampara de la bomba 1 y 2
int sencor = 0; // estado_led usado para configurar el LED
void setup()
{
pinMode(lambombas, OUTPUT); //declara lampbombas como salida
pinMode(sensorbomba1, INPUT);
pinMode(sensorbomba2, INPUT);
}
void loop()
{
if (memoria == true) // Hace una pausa para el chequeo
{
memoria = false;
delay (3000);
}
if (memoria == false) // Hacemos destelar el led del pin 13 en la plaqueta para saber que corre el programa de pic
{
unsigned long millis_actuales2 = millis();
if(millis_actuales2 - millis_anteriores2 > intervalo2){
millis_anteriores2 = millis_actuales2;
if (estado_lampchek == LOW) {
estado_lampchek = HIGH;
}
else {
estado_lampchek = LOW;
}
digitalWrite(lamparachek, estado_lampchek);
}
}
else
{
digitalWrite(lamparachek, LOW);
}
sensorvalue1 = analogRead(sensorbomba1); // realizar la lectura del sensor1
sensorvalue2 = analogRead(sensorbomba2); // realizar la lectura del sensor2
if ((memoria == false) and (sensorvalue1 < 573))
{
digitalWrite(lambombas, HIGH);
}
else
{
digitalWrite(lambombas, LOW);
}
if ((memoria == false) and (sensorvalue2 < 573))
{
digitalWrite(lambombas, HIGH);
}
else
{
digitalWrite(lambombas, LOW);
}
}
¿Realmente quieres cerrar esta reparación?
Sí
No
¿Realmente quieres reabrir esta reparación?
Sí
No
¿Realmente quieres borrar este post?
Sí
No