Go Down

Topic: Problema Con Modulo Rele (Read 12413 times) previous topic - next topic

daviten

Cuando llego lo subo y vemos como queda, pero te aclaro que yo deje el codigo lumpio solo con ethernet y el modulo rele , y me fallaba igual cada tanto se resetea el ethernet onarduino, se apagan todas las luces y vuelven a encender , y por ahi cuando resetea como que le cuesta volver a arrancar las lucez prenden y apagan un rato hasta que quedan prendidas, y hay veces que me llamo la arencion que esto pasaba sin prender ningun rele...

surbyte

#46
Oct 19, 2017, 09:06 pm Last Edit: Oct 19, 2017, 10:36 pm by surbyte
No cambia nada lo que hice... no esperes maravillas. Solo lo puse de tal modo que sea entendible para mi.
Buscando alguna falla. No la encontré, pero veo que envias datos por I2C desde el otro Arduino.

Y eso es algo que no tenia en cuenta. Tal vez eso tenga alguna responsabilidad colgando el sistema.
Vamos a agregarle a ambos arduinos el watchdog y ademas vamos a vigilar el nivel o consumo de SRAM.

daviten


surbyte

Asi resuelves lo del watchdog tutorial.
Veo que aun no sabes buscar por tu cuenta, solo busca en google: Arduino watchdog y tienes la respuesta que te acabo de dar.

Lo de la SRAM requiere que estes vigilando el sistema o esperar que el monitor serie se congele con algun fallo y éste sea visible

Arduino MemoryFree

daviten


daviten

Acabo de desconectar el arduino uno que estaba con Wire pasando datos al Mega, y solo deje funcionando el Mega sin ningun sensor solo con los reles, con este codigo limpio...

Code: [Select]
#include <SPI.h>
#include <Ethernet.h>
char mess[15];
int estadopin3 = 0;
int estadopin4 = 0;
int estadopin5 = 0;
int estadopin6 = 0;
int estadopin7 = 0;
int alarma = 0;
int estadoalarma = 0;
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 200);
IPAddress myDns(192,168, 1, 1);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server(28);
EthernetClient client;
void setup() {
  pinMode(8, INPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  Ethernet.begin(mac, ip, myDns, gateway, subnet);
  server.begin();
}
void loop() {   
 
EthernetClient client = server.available();       
  if (client) {
    if (client.available() > 0) {
      char c = client.read();
      //Mandar estados al iniciar app
      if(c == '*'){
      sprintf(mess,"pin%i%i%i%i%i%i",digitalRead(3),digitalRead(4),digitalRead(5),digitalRead(7),digitalRead(6),alarma);       
      server.print(mess);
      }
      //PIN3
      if(c == '1')
      digitalWrite(3, HIGH);
      if(c == '2')
      digitalWrite(3, LOW);
      //PIN4
      if(c == '3')
      digitalWrite(4, HIGH);
      if(c == '4')
      digitalWrite(4, LOW);
      //PIN5
      if(c == '5')
      digitalWrite(6, HIGH);
      if(c == '6')
      digitalWrite(6, LOW);
      //PIN31
      if(c == '9')
      digitalWrite(5, HIGH);
      if(c == 'm')
      digitalWrite(5, LOW);
      //PIN33
      if(c == 'n')
      digitalWrite(7, HIGH);
      if(c == 'b')
      digitalWrite(7, LOW);
      if(c == 'q')
      alarma = 1;
      if(c == 'w')
      alarma = 0;
    }
 
  }     
      if(estadopin3 != digitalRead(3) || estadopin4 != digitalRead(4) || estadopin5 != digitalRead(5) || estadopin6 != digitalRead(6) || estadopin7 != digitalRead(7) || alarma != estadoalarma)
      {
      sprintf(mess,"pin%i%i%i%i%i%i",digitalRead(3),digitalRead(4),digitalRead(5),digitalRead(7),digitalRead(6),alarma);       
      server.print(mess);
      estadopin3 = digitalRead(3);
      estadopin4 = digitalRead(4);
      estadopin5 = digitalRead(5);
      estadopin6 = digitalRead(6);
      estadopin7 = digitalRead(7);
      estadoalarma = alarma;
      }
     
  if(digitalRead(8) == HIGH && alarma == 1)
  {
      server.print("ala");
      alarma = 0;   
  }       
}


Y por ahora funciona todo sin delay, no se cuelga... los prendo y apago todos rapido y va barbaro...

daviten

Bueno quiero aclarar lo que voy hacer, visto que los sensores me generan delay en el loop para prender y apagar las luces, voy a usar 2 arduinos con ethernet, 1 solo para relay, y otro para sensores, y con las app voy a recibir datos de los 2 arduinos.

Otra cosa asi como deje el arduino para los rele, al apagar y prender muy rapido sin parar en un momento se renicia arduino, para mi es normal por ruido del rele, esto se puede evitar? o simplemente lo dejo asi?

daviten

No, se resetea igual, por mas que lo haga lento se cae igual... nose ya me estoy volviendo loco...

daviten

Acabo de comprar un Ethernet Shield 2, para ver que pasa...

daviten

Si yo hago esto sacando el ethernet shield, funciona todo el tiempo sin colgarse perfecto sea cual sea el delay va barbaro. El problema es cuando uso el Ethernet... El ruido me lo hace en el ethernet shield....

Code: [Select]
#include <SPI.h>
int x = 500;
void setup() {
  pinMode(8, INPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
}
void loop() {   
 
digitalWrite(3, HIGH);
delay(x);
digitalWrite(4, HIGH);
delay(x);
digitalWrite(5, HIGH);
delay(x);
digitalWrite(6, HIGH);
delay(x);
digitalWrite(7, HIGH);
delay(x);
digitalWrite(7, LOW);
delay(x);
digitalWrite(6, LOW);
delay(x);
digitalWrite(5, LOW);
delay(x);
digitalWrite(4, LOW);
delay(x);
digitalWrite(3, LOW);
delay(x);
   
}

daviten

Bueno descubri que el ruido me lo hacia el cable utp que conecta el ethernet shield con el router, que pasaba por dentro del corrugado junto con cables de 220, lo saque de ahi y lo puse por fuera sin tocar nada y anda bien, ahora cuando volvi a conectar el rele 220vac, para leer el estado vuelve a caer cada tanto cuando uso el rele que prende la luz que tiene conectado el rele220. AL tener mas consumo el rele se tilda arduino se resetea.

daviten

Se soluciona todo si pongo reles de estado solido?

surbyte

La ventaja de usar reles SSR es que el momento de conmutación es cuando la AC pasa por 0. Asi que se minimizan los problemas de ruidos electricos.
Eso no quita que tu tengas otros dispositivos en tu casa que generes ruido y tilde Arduino.

Los cuelguies derivados del accionamiento de tus arduinos deberian cesar. No los que venga por otras fuentes de ruido.
Se comprende?

ENGRAL

Hola amigos

Una pequeña e inocente sugerencia.

Habéis probado anular posibles parásitos eléctricos, situando un condensador de 100nF/400v.en serie con una resistencia de 47ohm entre los contactos activos del relè ??.

En muchas oportunidades me han solucionado problemas.

Saludos

.

lw1ecp

No sé si alguien leerá esto tras haber pasado 8 meses. Pudiste solucionar el problema? A mí me pasó algo parecido al venir transitorios por la red eléctrica. La solución (en mi caso al menos) fue usar cable USB con blindaje entre la PC y el Arduino. Tiene que ser una malla más o menos cerrada como en un buen cable coaxil, no unos pelitos bajo la cubierta plástica. Y el módulo de relés se debe alimentar con una fuente distinta de la del Arduino, como en tu imagen. Pero no sólo deben estar desconectados los pines VCC y JD-VCC sino que tampoco hay que unir el GND del módulo con el GND del Arduino para que no se cuelen pulsos por las conexiones de masa.

Go Up