Arduino Forum

International => Español => Topic started by: daviten on Aug 22, 2017, 04:11 pm

Title: Problema Con Modulo Rele
Post by: daviten on Aug 22, 2017, 04:11 pm
Estoy haciendo un proyecto para mi casa Domotica, tengo 2 arduino 1 mega como master y un uno como esclavo comunicados entre si por Wire, los alimentos de la siguiente manera, al mega con una fuenta de 7.5v de 1.5 a, y al uno con una fuente de 9v 1a, probe con varias fuentes de varias formas pero sigo teniendo el problema , detallo un poco mas en arduino uno solo tengo conectado un sensor ultrasonio jnst04, y en el mega un modulo rele de 16 canales , mas 1 sensor de humedad y temperatura dht22, mas un sensor de movimientos infrarojo. Manejo todo por Socket TCP , Server Chat, tengo una app en C# para Windows una app para Android con app inventor y otra app en c# para raspberry con una pantalla.

El problema es que al estar encendido al rato de estar todo funcionando los rele cada tanto se vuelven locos o se prenden 2 rele siempre solos, siempre son los mismos. Probe subiendo un codigo limpio al arduino y no hace falla, sera el codigo o problemas de ruido o corriente? Gracias.
Title: Re: Problema Con Modulo Rele
Post by: Naruto128 on Aug 22, 2017, 04:17 pm
Proba con una fuente externa paea alimentar a los rele.
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Aug 22, 2017, 04:33 pm
El módulo de RELES consume 65mA x RELE activado, asi que si tienes los 8 al mimos tiempo estas en 8x65=520mA que supera los 350mA máximos que puede entregar el Arduino via su pin de 5V

Asi que sigue la recomendación de Naruto.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Aug 22, 2017, 04:34 pm
Si me olvide de aclarar que los tengo con una fuente externa de 5v 5a, probe tmb con fuentes de 5v 2a, probe de todo, puse gnd de la fuente al gnd de arduino despues saque el gnd y puse el positivo de arduino a vcc de la parte de los pines aparte de la fuente externa.
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Aug 22, 2017, 04:37 pm
Postea tu código, ahora si me suena a problema de código.

Lee las normas y postealo como ellas lo piden o sea usando etiquetas (tags).
Title: Re: Problema Con Modulo Rele
Post by: daviten on Aug 22, 2017, 04:50 pm
Llego a casa y te paso el codigo.

Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 21, 2017, 12:55 am
bueno vuelvo al tema que mencione , compre una super fuente de 5v de 40a, para alimentar todo el proyecto, pero sigo teniendo problemas lo que vi es que cuelga el ethernet shield cuando mando muy rapido prender y apagar un rele.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 21, 2017, 01:19 am
Code: [Select]
#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"
#include <Wire.h>
#define DHTPIN 2     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
int medida = 0;
int temp = 0;
int hum = 0;
int distancia = 0;
char dis[10];
char mensaje1;
char mess[15];
char tem[10];
int estadopin3 = 0;
int estadopin4 = 0;
int estadopin5 = 0;
int estadopin8 = 0;
int estadopin31 = 0;
int estadopin33 = 0;
int estadopin35 = 0;
int alarma = 0;
int estadoalarma = 0;
int voz = 0;
int estadovoz = 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(23);
EthernetClient client;
void setup() {

  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(31, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(22, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(35, OUTPUT);
  Ethernet.begin(mac, ip, myDns, gateway, subnet);
  server.begin();
  dht.begin(); 
  Wire.begin(1);
  Wire.onReceive(reciboEvent);
}
void loop() {   
  if(digitalRead(37) == HIGH && alarma == 1)
  {
      server.print("ala");
      alarma = 0;   
  }     
EthernetClient client = server.available();
      int h = dht.readHumidity();
      int t = dht.readTemperature();     
  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%i%i%i",digitalRead(3),digitalRead(4),digitalRead(5),digitalRead(8),digitalRead(31),digitalRead(33),alarma,voz,digitalRead(35));       
      server.print(mess);
      sprintf(dis,"tin%i  ",115 - medida);
      server.print(dis);
      sprintf(tem,"tem%i  %i  ",t,h);
      server.print(tem);
      }
      //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(5, HIGH);
      if(c == '6')
      digitalWrite(5, LOW);
      //PIN8
      if(c == '7')
      digitalWrite(8, HIGH);
      if(c == '8')
      digitalWrite(8, LOW);
      //PIN31
      if(c == '9')
      digitalWrite(31, HIGH);
      if(c == 'm')
      digitalWrite(31, LOW);
      //PIN33
      if(c == 'n')
      digitalWrite(33, HIGH);
      if(c == 'b')
      digitalWrite(33, LOW);
      if(c == 'q')
      alarma = 1;
      if(c == 'w')
      alarma = 0;
      if(c == 'c')
      voz = 1;
      if(c == 'v')
      voz = 0;
      if(c == 'z')
      digitalWrite(35, HIGH);
      if(c == 'x')
      digitalWrite(35, LOW);
    }
 
  }     
//Cambio de estado de pin3 me manda el aviso

      if(estadopin3 != digitalRead(3) || estadopin4 != digitalRead(4) || estadopin5 != digitalRead(5) || estadopin8 != digitalRead(8) || estadopin31 != digitalRead(31) || estadopin33 != digitalRead(33) || alarma != estadoalarma || voz != estadovoz || estadopin35 != digitalRead(35))
      {
      sprintf(mess,"pin%i%i%i%i%i%i%i%i%i",digitalRead(3),digitalRead(4),digitalRead(5),digitalRead(8),digitalRead(31),digitalRead(33),alarma,voz,digitalRead(35));       
      server.print(mess);
      estadopin3 = digitalRead(3);
      estadopin4 = digitalRead(4);
      estadopin5 = digitalRead(5);
      estadopin8 = digitalRead(8);
      estadopin31 = digitalRead(31);
      estadopin33 = digitalRead(33);
      estadoalarma = alarma;
      estadovoz = voz;
      estadopin35 = digitalRead(35);
      }
//Mando cambio de distancia tanque sensor
      if(distancia != medida)
      {
      sprintf(dis,"tin%i  ",115 - medida);
      server.print(dis);
      distancia = medida;
      }
//Mando cambio de temperatura
      if(temp != t || hum != h)
      {
      sprintf(tem,"tem%i  %i  ",t,h);
      server.print(tem);
      temp = t;
      hum = h;
      }
//Fin Loop
}
void reciboEvent(int howMany)
{
   while (Wire.available()) { // slave may send less than requested
     int c = Wire.read();
     if(medida != c)
     {
     medida = c;
     }
  }
}
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Sep 21, 2017, 01:20 am
Quote
compre una super fuente de 5v de 40a, para alimentar todo el proyecto
Pero no me vas a decir que le has puesto una fuente de 5V 40A a que? Al módulo RELE, al Arduino.
Nosotros no podemos imaginar lo que estas haciendo asi que si no lo explicas estaremos dando vueltas.

Mira el tiempo que llevas desde tu pregunta inicial, esperaba un esquema pero voy a imaginarme la situación.

No se donde tienes el Ethernet Shield.
Supongamos que lo has conectado al MEGA, entonces te digo que lo que uses para alimentar el MEGA mas el SHield ya no da para mas. O sea.. de los 5V de salida de ese MEGA no cargues nada porque no tolera mas carga. Esa es mi experiencia con el Ethernet Shield que es para mi una placa dinosaurio.. o sea del pasado.

Por otro lado, el UNO parece que lo usas con la placa modulo de 8 reles. Esa placa debe alimentarse con 5V externos... no uses el UNO para alimentar el modulo.

Asi que tendras fuente para el UNO, fuente para los reles
Fuente para el MEGA + Ethernet Shield.

Todas mejor que 500mA y para los reles supongamos que todos activos a 65*8 = 520mA una fuente que entregue mas que eso.

Espero te sirva.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 21, 2017, 01:41 am
Mestro, si es asi como decis, solo una cosa al modulo de 16 rele lo manejo con el mega que tiene el shield y tengo un sensor ultrasonido al mega tmb y un sensor dht22 de temperatura estos 2 los alimentos con los 5v de el mega, voy a probar alimentarlos con el uno. otra cosa compre la fuente de 40a para alimentar todo tiene 3 salidas con borneras, entonces podria usar una salida para el mega y el shield, otra para el modulo rele, y otra para el 1, lo que pasa es que es 5v la fuente si lo conecta por el puerto jack el regulador me saca un poco no?¿ lo puedo poner directo a la salida 5v de los arduinos? Sino la otra opcion es regular la fuente 1v mas tiene un regulador para disminuir o aumentar los v -1 o 1+ , y lo conecto por el jack.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 21, 2017, 01:25 pm
Anoche lo deje funcionando al sistema, hoy me levanto para ir a trabajar y cuando quiero mandar una orden , pum shield colgado o arduino nose cual de los 2 se cuelga, tengo que reniciarlo y a veces no levante con un reset, tengo que sacarle el cqble utp del shield volver a reniciar y vuelve a levantar.
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Sep 21, 2017, 03:13 pm
El shield es bobo no hace nada sin el procesador que lo comanda, así que el colgado es el MEGA.
Estas usando una fuente de 7.5V 1.5A para el mega y el shield. Eso debería ser suficiente.

Dos sugerencias, no se si sirvan:

1.
Code: [Select]
if (digitalRead(37) == HIGH && alarma == 1)  {
    server.print("ala");
    alarma = 0;   
}     
    int h = dht.readHumidity();
    int t = dht.readTemperature();     
  EthernetClient client = server.available();
  if (client) {


Cambia esto o sea, EthernetClient luego de que lea el sensor DHT que demora 2 segundos en responder si mal recuerdo.

2. Me preocupa (no se si está fundamentada) la interrupción I2C reciboEvent para leer datos enviados por el UNO.
Prueba no usarlo para ver la estabilidad del sistema sin I2C y luego vemos si tiene o no responsabilidad.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 21, 2017, 04:46 pm
Cuando llego a casa lo pruebo, el problema en el codigo no lo veo, por que poniendo un simple codigo de ejemplo chatserver, desconectando todo, se tilda igual el ethernet shield, osea que lo veo mas por el lado de la corriente , cuando mando muy rapido datos al arduino por ehternet como que cuelga y hayu que resetearlo, tengo el cable de red que pasa por el mismo caño de los cables de 220, estaria haciendo ruido ahi? o no afecta? por las dudas pruebo poniendo otro cable de red directo al router por fuera de la instalacion, y el tema de las fuentes probe con un monton, de 5v 40a, 7.5v 1.5a , 5v 5a, 12v 2.5a, lo unico que tmb puedo pensar es que esta jodido el mega o el ethernet shield... nose.
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Sep 21, 2017, 06:15 pm
Me llama la atención que la placa ethernet falle.
Yo tuve ese problema hasta que alimenté externamente, es decir, me pasaba cuando lo tenía alimentado por USB.
Luego use fuente externa y reprogramaba por USB sin problemas.
Igualmente como tengo un MEGA clon, nunca se portó muy bien que digamos el MEGA. Muchas fallas de comunicación USB al punto que por un tiempo lo di por muerto y un dia revivió solo, lo que me hace pensar que la actualización de nuestros drivers muchas veces no juegan mal.

En tu caso no se que decirte pero coincido en retirar los cables de la proximidad de los de energía.
Aunque en el peor de los casos tendería a pensar que por un lado los cables trenzados estan por algo, y por otro, debería aumentar la tasa de error pero no colgar al dispositivo.

Prueba con el cable directo al Router y veamos.
Si no tienes estabilidad ahí... difícil seguir.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 21, 2017, 08:51 pm
Bueno ahora llego a casa y sigo testeando...
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 22, 2017, 12:05 am
Bueno saque todo deje solo ethernet usando el modulo de rele con una sola salida, y al mandar muy rapido prender y apagar desde la app empieza a colgar. Se apagan todas las luces del ethernet shield y vuelven a prender cuando vuelven a prender sigue funcionando... nose que sera.
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Sep 22, 2017, 03:14 am
No se cuelga, el problema es la lectura del DHT que demora 2 segundos.
es posible que escuche algunos solicitudes pero cuando necesita leer el sensor, no responderá hasta ser liberado.

Es como tener un delay.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 22, 2017, 03:42 am
pero ahora le saque todo y hace igual al mandar muy rapido muchos caracteres por tcp al arduino, pero ahora deje todo desconectado solo ethernet para probar si mañana cuando me levanto sigue funcionando o se vuelve a colgar.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 22, 2017, 01:48 pm
Bueno , hoy me levante y todavia sigue funcionando sin colgarse, ahora tendria que ir testeando de donde viene el problema si es el Arduino Uno conectado con Wire, o si es el DHT22.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 24, 2017, 03:52 pm
bueno volvi a conectar todo al sistema y sigue colgando el arduino o el ethernet shield nose que sera, estaba andando bien agrege 2 rele mas , osea de los 16 del modulo solo tenia 1 solo funcionando , ahora puse 2 mas a funcionar y vuelve a colgar todo.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 24, 2017, 06:22 pm
Esta es la fuente que estoy usando para alimentar todo el proyecto : los 2 arduino y el modulo 16 rele a los arduinos los alimento por la salida 5v.

(https://http2.mlstatic.com/fuente-switching-5v-40a-con-bornera-D_NQ_NP_372301-MLA20292738654_052015-F.webp)

FUENTE SWITCHING GRALF 5 V 40A


CARACTERISTICAS:
Entrada: 100 - 240 V CA 50/60 Hz
Salida: 5 VCC 40A
Medidas: 50x110x198mm
Temperatura de funcionamiento: 0 - 40C
Temperatura de almacenamiento: -20 - 60C

Humedad: 0 - 95 sin condensacion
De aluminio desplegado para mayor ventilacion homologada.
Con sello de Seguridad Electrica
Protecciones: de sobrecarga/sobre voltaje/ de corto circuiorto
de enfriamiento por conveccion de aire
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 24, 2017, 11:17 pm
Bueno quiero aclarar que alimentando toda con esta fuente no se me cuelga mas arduino , el problema es que el sensor ultrasonido que tengo en el tanque de agua al usar el modulo rele me genera ruido en el sensor, si desconecto el modulo me funciona todo perfecto.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Sep 29, 2017, 02:04 pm
Puede ser que si un sensor esta en falla, me esta colgando el arduino? porque tengo un ultrasonido en la terraza y el otro dia con la lluvia se me mojo, probablemente este quedo en corto y me este colgando el arduino puede ser esto? El sensor funciona , pero me tira datos erroneos.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 05, 2017, 03:22 am
Sin dudas es el modulo rele que me genera el cuelgue al arduino , lo resetea cuando mando prender y apagar algun pin que maneja el rele, se resetea, puede ser falta de amperios? problema electrico? tengo el modulo con una fuente de 5v-5a , y comparto el gnd con arduino. QUe puede ser?
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 05, 2017, 04:50 am
Como va a ser falta de amperios (corriente) con una fuente de 40A?

Tu problema es que vas dando información con cuenta gotas y ahora con esta pregunta vamos a desayunarnos de algo.

Todo el hilo es que tienes un modulo de 8 reles. Pero nunca dijiste que conectas a esos Relés?

Si conectas bobinas, motores, o elementos que generen ruido claro que tu arduino va a fallar.

Espero respuesta.
Title: Re: Problema Con Modulo Rele
Post by: steel_series on Oct 05, 2017, 05:38 am
Aprovecho para preguntar porque me interesa el tema. Se podría solucionar eso con un diodo en inversa?
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 05, 2017, 02:52 pm
El diodo en inversa (en paralelo con la carga no en serie) se usa cuando con un MOSFET o transistor de otro tipo controlas una carga en DC (corriente contínua). Si la carga es inductiva (rele, solenoide, motor) entonces la carga se opone al cambio de estado y genera una FEM que puede provocar problemas. La solución es como tu dices un diodo en inversa conectado en paralelo con la carga para que cuando esta FEM este presente se cierre por la misma bobina.
Ahora si estas usando RELES y con los contactos controlas DC o AC ya el panorama cambia. Aunque el metodo del diodo sigue funcionando. Para AC debes usar snubber o sea una Resisencia mas Capacitor que baja el dV/dT o sea la velocidad de crecimiento de la tensión para disminuir los efectos que provocaría no tenerlo.

Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 05, 2017, 04:01 pm
la fuente esa de 40a, la tuve que sacar porque estaba funcionando mal, la probe alimentando un parlante usb y como que no tenia fuerzas para alimentarlo, me parece que la fuente se daño al mover tanto el regulador que trae para ajustar el voltaje, por otro lado el modulo es de 16 reles, y estoy usando solo 3 por el momento con 3 lamparas led de 9wats, no creo que venga por ahi el ruido, puede que tmb este jodido el modulo por que sin darme cuenta le eh metido una fuente de 12v siendo unmodulo que trabaja con 5v, pero funcionar funciona, o tmb puede ser la fuente que estoy usando para alimentarlo ahora es una de 5v-5a. no se donde vendra el problema.

Ahora tengo conectados los 2 arduinos uno y mega (mega con ethernet shield) con una fuente de 7.5v-1.5a, por las entradas jacks, y no tengo conectado ningun sensor, solo el modulo rele con 3 reles. funcioana pero como que al jugar prender y apagar muy seguidos se resetea el arduino mega el que tiene el shield.

(https://forum.arduino.cc/index.php?action=dlattach;topic=503670.0;attach=228430)
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 11, 2017, 07:55 pm
Nadie sabe que puede ser? ya probe de alimentarlo de todas las maneras posibles , pero cuando me voy a dormir y me levanto el arduino ya se encuentra tildado, no puedo conectarme mas con mi app, tengo que resetearlo para que vuelva a funcionar :@ Que puedo hacer? Pongo PerroGuardian? es problema de alimentacion? es problema del router que haga caer la conexion con el ethernet? sera que se cuelga cuando mando muchos paquetes al arduino mdiente tcp/ip? por que todo lo que lee arduino lo envia por socket tcp , a mis app. Pero ya nose que mas hacer...
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 17, 2017, 02:46 pm
Me compre un tester para ir probando todo, tambien compre otro Arduino Mega Otro Ethernet Shield y otro Arduino UNO, por que cuando compre la fuente de 5v 40a que viene con un ajustador de voltaje no usaba tester y hoy midiendo con el tester me di cuenta que la fuente esta tira hasta 6v. Aclaro que cambie el modulo de 16reles 5v, por uno de 16reles de 12v, este lo alimento con una fuente de 12v-2a, y tengo unido el gnd con arduino. Solo estoy usando 4 reles de ese modulo para encender 4 lamparas de 15 wats,(Lamparas LED, en 1 de las lamparas tengo el Rele 220VAC).

1)Pude haber dañado algo de arduino metiende 6v por el pin 5v?
2)Ahora con los nuevos Arduinos puedo alimentarlos por el pin 5v?
3)En que voltaje ajusto la fuente para alimentar todo ? (los 2 Arduinos y los sensores)

De la fuente conecto directo a la protoboard y de ahi saco alimentacion para todo los sensores y para los 2 arduinos. Lo que veo es que al medir en la protoboard baja un poco el voltaje que mide a la salida de la fuente, lo mismo que en la salidas cuanto estan en HIGH.

Ejemplo: Si la fuente la regulo en 5.20v, en la protoboard me tira 4.99v 5.00v , y en la salidas digitales un poquito menos 4.88 4.90 , varia...

4)Que rangos tengo que ajustar, la salida de la fuente que no supere los 5v? o que lleguen 5v a la salidas digitales? lo mismo con los sensores.

Gracias por su ayuda.
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 17, 2017, 03:12 pm
Quote
1)Pude haber dañado algo de arduino metiende 6v por el pin 5v?
claro que si.

Quote
2)Ahora con los nuevos Arduinos puedo alimentarlos por el pin 5v?
Yo no estoy de acuerdo con alimentarlos por 5V. Para ello tienes jack externo y VIn. Porque no usarlos?
PEro bueno es el debate de siempre, tengo una fuente no quiero poner dos fuentes. Ok.. no respondas.

Yo te respondo lo que yo hago. No conecto nada por 5V.

Quote
3)En que voltaje ajusto la fuente para alimentar todo ? (los 2 Arduinos y los sensores)
A esta altura preguntar a que valor ajustas? 6.5V es lo minimo.
Pero los sensores requieren 5V siempre o a menos que sean de 3.3V pero estoy hablando en el aire porque no se de que sensores hablas. Ya he perdido el hilo en su conjunto.

Quote
Ejemplo: Si la fuente la regulo en 5.20v, en la protoboard me tira 4.99v 5.00v , y en la salidas digitales un poquito menos 4.88 4.90 , varia...
la fuente 5.20 okay.
Luego cables hasta el protoboard de que diametro? los cables si son finos tienen gran resistencia por metro y al alimentar todo, se siente esa caida de tensión. Tienes algo de 0.20V de caída.
Las salidas digitales nada tienen que ver con lo que mencionas porque de nuevo, se debe a cuanto saturan los mosfet Canal P de dichas salidas.
Son cosas diferentes.

Quote
4)Que rangos tengo que ajustar, la salida de la fuente que no supere los 5v? o que lleguen 5v a la salidas digitales? lo mismo con los sensores.
No entiendo la pregunta
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 17, 2017, 04:42 pm
Claro, pero si alimento por puerto jack tiene que ser una fuente superior a los 6.5v, y la fuente que tengo tira hasta 6v, por eso alimento por los 5v de arduino, los cables que uso de la fuente a la protoboard son de 0.25mm ,  lo mismo uso para encender las lamparas de 220vac (lamparas led de 15wats) que las tengo combinadas (interuptor y rele), todo con cable de 0.25mm, despues la cuarta pregunta te preguntaba si con 5.20 que tire la fuente estaba bien, o lo baja un poco o la subo, para ajustar el voltaje en la protoboard, a eso me referia, si subo la tension hasta llegar a los 5v en la protoboard, los sensores que uso son un ultrasonido JSNSR04 , un DHT22 de temperatura y humedad y un PIR de movimientos, nada mas.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 17, 2017, 04:54 pm
Que me recomendas de estos items?

1)Alimentar ArduinoMega con EthernetShield Con una fuente 9v-1a, o Una fuente de 7.5v-1.5a, y Arduino Uno con otra fuente de las mismas caracteristicas, todo por jack. y Los sensores con la fuente esta que te dije antes que tiene para ajustar el voltaje.

2)Con una de las 2 fuentes que te mencione unir 2 fichas jack para alimentar los 2 arduinos? y Los sensores con la fuente esta que te dije antes que tiene para ajustar el voltaje.

Vuelvo aclarar el modulo de 16 rele lo sigo alimentando con una fuente de 12v-2a, y tengo el gnd que sale de los pines INO al Gnd de Arduino MEGA. Funciona pero el mismo problema de siempre se resetea Arduino aveces al encender y apagar reles, Para mi esta roto el ethernet shield o el mega, hoy voy a probar todo con los Arduinos Nuevos que compre y te cuento. Aconsejame cual de los 2 metodos que te mencione uso.
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 17, 2017, 06:07 pm
Quote
1)Alimentar ArduinoMega con EthernetShield Con una fuente 9v-1a, o Una fuente de 7.5v-1.5a, y Arduino Uno con otra fuente de las mismas caracteristicas, todo por jack. y Los sensores con la fuente esta que te dije antes que tiene para ajustar el voltaje.
Yo uso siempre 7.5 sea por Vin o por jack externo.
Los sensores los alimento por 5V del arduino. Son poca carga (consumo).

Quote
2)Con una de las 2 fuentes que te mencione unir 2 fichas jack para alimentar los 2 arduinos? y Los sensores con la fuente esta que te dije antes que tiene para ajustar el voltaje.
Tmb es posible pero los sensores de nuevo los alimentaría con arduino.


Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 17, 2017, 06:53 pm
Vos me habias dicho que donde tengo ethernet shield no ponga nada en la salida de 5v. Por eso te preguntaba.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 17, 2017, 08:32 pm
LLego a mi casa en 2 horas, voy a conectar los nuevos arduinos, con la fuente 7.5v-1.5a, poniendo 2 fichas jack, una para cada arduino, El Arduino Uno , y el Arduino Mega + Ethernet Shield, y los sensores los voy alimentar con la salida 5v del Arduino Uno. Conecto todo y te cuento como me fue...

1) Los cables de 0.25mm estan bien para el proyecto?
2) El GND del Modulo Rele, es lo mismo que una el GND de 12v, o saco el GND del GND que esta al lado de los pines de entrada?
3) Tiene algo que ver que para los rele estoy usando los pines del 3 al 7, que esos pasan por el ethernet shield, le afecta algo? Puede que haga ruido eso? o no tiene nada que ver? sino los conecto en los pines del Mega. Sin pasar por los del Ethernet.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 17, 2017, 11:50 pm
Bueno, llegue a casa y cargue los sketch en los Arduinos nuevos puse todo nuevo, alimento los 2 arduinos con la fuente de 7.5v-1,5a , le puse 2 fichas jacks, y desde el Arduino uno en la salida de 5v alimento los sensores, me sigue pasando lo mismo, al encender y apagar reles cada tanto se renicia el ethernet o el mega no se, y ahi me queda colgada la app, cuando vuelven a encender los led del ethernet ahi sigue funcionando....

ya no se que mas probar...
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 18, 2017, 04:10 pm
Cuando me levante a la madrugada tenia 2 reles prendidos , por ahi se vuelven locos...
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 18, 2017, 05:11 pm
Ok. vamos a parar la rotativa Daviten.

Dejame reveer lo conversado porque realmente me he perdido en el seguimiento de idas y vueltas de este problema.

Seguramente te recomenderá algo simple e iremos viendo.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 19, 2017, 12:53 am
bueno, esta funcionando ahora... pero cada tanto se apagan las luces del ethernet todas solo queda la roja , y vuelven a encender mientras esten apagadas deja de funcionar la conexion con las app que uso para controlar el arduino. Cuando mando mandar y prender los rele suele pasar eso, como que por ahi queda congelado y trabaja con delay los rele, y ahora lo que noto que por ahi se ponen en high los pines de salida que manejan los rele, pero no se si es problema de alguna app , y de energia.
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 19, 2017, 01:23 am
Y a todo esto, verificaste alguna vez el cable Ethernet o lo cambiaste por otro?
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 19, 2017, 01:52 am
Si lo cambie, no es ese el problema.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 19, 2017, 01:56 am
Mira estoy aca sentado y recien, escuchew como que se volvio loco el modulo rele, y se encendieron 3 reles, en realidad no se si es el modulo el arduino que pone en alto los pines...
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 19, 2017, 03:59 am
Dejo mi codigo como quedo ahora con el Bounce, y dejo 2 fotos de la instalacion del proyecto, llevo semanas horas y horas tratando de hacerlo funcionar sin errores, pero siemnpre el mismo problema se resetea el ethernet o el mega nose cual de los 2, y se me quedan colgadas las app, no vuelven a conectarse sino reseteo arduino.

CODIGO:

Code: [Select]
#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"
#include <Wire.h>
#include <Bounce2.h>
#define DHTPIN 2     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
Bounce debouncer = Bounce();
int medida = 0;
int temp = 0;
int hum = 0;
int distancia = 0;
char dis[10];
char mess[15];
char tem[10];
int estadopin3 = 0;
int estadopin4 = 0;
int estadopin5 = 0;
int estadopin6 = 0;
int estadopin7 = 0;
int estadopin31 = 0;
int estadopin33 = 0;
int estadopin35 = 0;
int alarma = 0;
int estadoalarma = 0;
int voz = 0;
int estadovoz = 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(9, INPUT_PULLUP);
  debouncer.attach(9);
  debouncer.interval(100); // interval in ms
  pinMode(8, INPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(31, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(22, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(35, OUTPUT);
  Ethernet.begin(mac, ip, myDns, gateway, subnet);
  server.begin();
  dht.begin();  
  Wire.begin(1);
  Wire.onReceive(reciboEvent);
}
void loop() {  
int t = dht.readTemperature();
int h = dht.readHumidity();
int value1 = debouncer.read();  
debouncer.update();    
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%i%i%i%i",value1,digitalRead(4),digitalRead(5),digitalRead(7),digitalRead(31),digitalRead(33),alarma,voz,digitalRead(35),digitalRead(6));        
      server.print(mess);
      sprintf(dis,"tin%i  ",115 - medida);
      server.print(dis);
      sprintf(tem,"tem%i  %i  ",t,h);
      server.print(tem);
      }
      //PIN3
      if(c == '1')
      {
      if(digitalRead(3) == LOW && value1 == 1)
      digitalWrite(3, HIGH);
      else if(digitalRead(3) == HIGH && value1 == 1)
      digitalWrite(3, LOW);
      }
      if(c == '2')
      {
      if(digitalRead(3) == LOW && value1 == 0)
      digitalWrite(3, HIGH);
      else if(digitalRead(3) == HIGH && value1 == 0)
      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);
      //PIN8
      if(c == '7')
      digitalWrite(33, HIGH);
      if(c == '8')
      digitalWrite(33, 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(c == 'c')
      voz = 1;
      if(c == 'v')
      voz = 0;
      if(c == 'z')
      digitalWrite(35, HIGH);
      if(c == 'x')
      digitalWrite(35, LOW);
    }
  
  }      
//Cambio de estado de pin3 me manda el aviso

      if(estadopin3 != value1 || estadopin4 != digitalRead(4) || estadopin5 != digitalRead(5) || estadopin6 != digitalRead(6) || estadopin7 != digitalRead(7) || estadopin31 != digitalRead(31) || estadopin33 != digitalRead(33) || alarma != estadoalarma || voz != estadovoz || estadopin35 != digitalRead(35))
      {
      sprintf(mess,"pin%i%i%i%i%i%i%i%i%i%i",value1,digitalRead(4),digitalRead(5),digitalRead(7),digitalRead(31),digitalRead(33),alarma,voz,digitalRead(35),digitalRead(6));        
      server.print(mess);
      estadopin3 = value1;
      estadopin4 = digitalRead(4);
      estadopin5 = digitalRead(5);
      estadopin6 = digitalRead(6);
      estadopin7 = digitalRead(7);
      estadopin31 = digitalRead(31);
      estadopin33 = digitalRead(33);
      estadoalarma = alarma;
      estadovoz = voz;
      estadopin35 = digitalRead(35);
      }
//Mando cambio de distancia tanque sensor
      if(distancia != medida)
      {
      sprintf(dis,"tin%i  ",115 - medida);
      server.print(dis);
      distancia = medida;
      }
//Mando cambio de temperatura
      if(temp != t || hum != h)
      {
      sprintf(tem,"tem%i  %i  ",t,h);
      server.print(tem);
      temp = t;
      hum = h;
      }
  if(digitalRead(8) == HIGH && alarma == 1)
  {
      server.print("ala");
      alarma = 0;  
  }        
//Fin Loop
}
void reciboEvent(int howMany)
{
   while (Wire.available()) { // slave may send less than requested
     int c = Wire.read();
     if(medida != c)
     {
     medida = c;
     }
  }
}


(https://forum.arduino.cc/index.php?action=dlattach;topic=496264.0;attach=230183)

(https://forum.arduino.cc/index.php?action=dlattach;topic=496264.0;attach=230181)
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 19, 2017, 05:40 am
Hice unos cambios menores, fundamentalmente las variables relacionadas con DHT deben ser float y no int.

Code: [Select]
#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"
#include <Wire.h>
#include <Bounce2.h>

#define DHTPIN 2     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
Bounce debouncer = Bounce();

int medida    = 0;
float temp    = 0.0;
float hum     = 0.0;
int distancia = 0;
char dis[10];
char mess[15];
char tem[10];

const byteestadopin3 = 0;
const byteestadopin4 = 0;
const byteestadopin5 = 0;
const byteestadopin6 = 0;
const byteestadopin7 = 0;
const byteestadopin31 = 0;
const byteestadopin33 = 0;
const byteestadopin35 = 0;
int alarma = 0;
int estadoalarma = 0;
int voz = 0;
int estadovoz = 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(9, INPUT_PULLUP);
  debouncer.attach(9);
  debouncer.interval(100); // interval in ms
  pinMode(8, INPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(31, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(22, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(35, OUTPUT);

  Ethernet.begin(mac, ip, myDns, gateway, subnet);
  server.begin();
  dht.begin(); 
  Wire.begin(1);
  Wire.onReceive(reciboEvent);
}

void loop() {
    float t = dht.readTemperature();
    float h = dht.readHumidity();

    debouncer.update();     
   
    bool value1 = debouncer.read();   
    EthernetClient client = server.available();       
   
    if (client) {
        if (client.available() > 0) {
            char c = client.read();
            //Mandar estados al iniciar app
            switch(c) {
               case '*':  sprintf(mess,"pin%i%i%i%i%i%i%i%i%i%i",value1,digitalRead(4),digitalRead(5),digitalRead(7),digitalRead(31),digitalRead(33),alarma,voz,digitalRead(35),digitalRead(6));       
                          server.print(mess);
                          sprintf(dis,"tin%i  ",115 - medida);
                          server.print(dis);
                          sprintf(tem,"tem%i  %i  ",t,h);
                          server.print(tem);
                          break;
               case '1': //PIN3
                          if (value1 == 1)
                              if (!digitalRead(3))
                                  digitalWrite(3, HIGH);
                              else
                                  digitalWrite(3, LOW);
                          break;
               case '2':
                          if (value1 == 0)
                              if (!digitalRead(3))
                                  digitalWrite(3, HIGH);
                              else
                                  digitalWrite(3, LOW);
                          break;       
               case '3':  //PIN4
                          digitalWrite(4, HIGH);
                          break;
               case '4':
                          digitalWrite(4, LOW);
                          break;
               case '5':  // PIN5
                          digitalWrite(6, HIGH);
                          break;
               case '6':
                          digitalWrite(6, LOW);
                          break;
               case '7':  // PIN8
                          digitalWrite(33, HIGH);
                          break;
               case '8':  digitalWrite(33, LOW);
                          break;
                          //PIN31
               case '9':  digitalWrite(5, HIGH);
                          break;
               case 'm':  digitalWrite(5, LOW);
                          break;
                          //PIN33
               case 'n':  digitalWrite(7, HIGH);
                          break;
               case 'b':  digitalWrite(7, LOW);
                          break;
               case 'q':  alarma = 1;
                          break;
               case 'w':  alarma = 0;
                          break;
               case 'c':  voz = 1;
                          break;
               case 'v':  voz = 0;
                          break;
               case 'z':
                          digitalWrite(35, HIGH);
                          break;
               case 'x':
                          digitalWrite(35, LOW);
                          break;
          }

    }     
    //Cambio de estado de pin3 me manda el aviso

    if (estadopin3 != value1 || estadopin4 != digitalRead(4) || estadopin5 != digitalRead(5) || estadopin6 != digitalRead(6) || estadopin7 != digitalRead(7) || estadopin31 != digitalRead(31) || estadopin33 != digitalRead(33) || alarma != estadoalarma || voz != estadovoz || estadopin35 != digitalRead(35)){
        sprintf(mess,"pin%i%i%i%i%i%i%i%i%i%i",value1,digitalRead(4),digitalRead(5),digitalRead(7),digitalRead(31),digitalRead(33),alarma,voz,digitalRead(35),digitalRead(6));       
        server.print(mess);
        estadopin3    = value1;
        estadopin4    = digitalRead(4);
        estadopin5    = digitalRead(5);
        estadopin6    = digitalRead(6);
        estadopin7    = digitalRead(7);
        estadopin31   = digitalRead(31);
        estadopin33   = digitalRead(33);
        estadoalarma  = alarma;
        estadovoz     = voz;
        estadopin35   = digitalRead(35);
    }
    //Mando cambio de distancia tanque sensor
    if (distancia != medida) {
        sprintf(dis,"tin%i  ",115 - medida);
        server.print(dis);
        distancia = medida;
    }
    //Mando cambio de temperatura
    if (temp != t || hum != h) {
        sprintf(tem,"tem%i  %i  ",t,h);
        server.print(tem);
        temp = t;
        hum = h;
    }

    if (digitalRead(8) == HIGH && alarma == 1) {
        server.print("ala");
        alarma = 0;   
    }         
} //Fin Loop


void reciboEvent(int howMany)    {
    while (Wire.available()) { // slave may send less than requested
          int c = Wire.read();
          if (medida != c) {
              medida = c;
          }
    }
}
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 19, 2017, 06:44 pm
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...
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 19, 2017, 09:06 pm
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.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 19, 2017, 09:50 pm
Ok como hago eso...
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 20, 2017, 12:28 am
Asi resuelves lo del watchdog tutorial (http://blog.bricogeek.com/noticias/arduino/como-utilizar-watchdog-con-arduino/).
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 (https://playground.arduino.cc/Code/AvailableMemory)
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 20, 2017, 02:05 am
Ok ahora lo voy hacer.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 20, 2017, 03:34 am
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...
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 20, 2017, 03:47 am
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?
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 20, 2017, 04:29 am
No, se resetea igual, por mas que lo haga lento se cae igual... nose ya me estoy volviendo loco...
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 20, 2017, 05:06 am
Acabo de comprar un Ethernet Shield 2, para ver que pasa...
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 20, 2017, 03:47 pm
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);
   
}
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 24, 2017, 12:54 am
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.
Title: Re: Problema Con Modulo Rele
Post by: daviten on Oct 24, 2017, 02:01 am
Se soluciona todo si pongo reles de estado solido?
Title: Re: Problema Con Modulo Rele
Post by: surbyte on Oct 25, 2017, 12:46 am
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?
Title: Re: Problema Con Modulo Rele
Post by: ENGRAL on Nov 15, 2017, 05:41 pm
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

.
Title: Re: Problema Con Modulo Rele
Post by: lw1ecp on Jul 29, 2018, 05:37 am
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.