Interferencias/Ruido en los pines digitales

Hola,
Estoy en un proyecto que uso reles y también unos sensores que van a pines digitales de tal manera que a cada sensor le corresponde un rele. Todo funciona perfecto para un rele y un sensor.

El problema viene cuando conecto varios. Si pongo 4 reles y 4 sensores todo a pines digitales se crean interferencias entre los pines y los sensores y la cosa se vuelve loca. (Cuando se activa un sensor se activan 2 reles, etc.)

Estoy probando con arduino uno (justo de pines... y da interferencias) y mega2560 (que aunque deje pines entre medio de las conexiones da interferencias también).

Alimento el arduino por un lado y los reles y los sensores por otro circuito. Con 2 alimentadores de 12V. No se calienta.

Alguna idea para que no se creen interferencias? Es tema del alimentador?
Como puede ser que la resistencia pull-up del arduino no de para 4 reles? Para que tiene entonces 52 pins...? algo debo estar haciendo mal

Gracias

No entiendo que tiene que ver la resistencia Pull up del arduino QUE SE USA PARA ENTRADAS con activar un RELE?

Alimento el arduino por un lado y los reles y los sensores por otro circuito. Con 2 alimentadores de 12V. No se calienta.

Quien no se calienta? Arduino?
Nunca debes alimentar con los 5V del arduino los RELES!! Eso es básico. A menos que sean 1 o 2. Algo limitado y controlado con consumos conocidos.

No dudo de tu código (de todos modos incluye en tu respuesta tu código USA TAGS!!) pero sería bueno que hagas un esquema mano alzada o con freezing para ver como has conectado todo. Fotos no porque no se entienden las conexiones.
Un esquema. De paso lo revisas.

Veamos. Fuente para el arduino de 12V me pareció entender. Bien.
Fuente para los relés aparte. Bien. Supongo que los jumpers estan donde deben o sino no esta viendo tu fuente externa y sigue alimentándose con el Arduino.

Veamos como es el esquema y conversamos.

Hola, gracias por la respuesta.

Vaya, pues lo del pull-up nada, disculpa.
Digo que no se calienta mas de la cuenta jajaj.

El circuito es bastante trivial.

Se trata de un sistema de riego en el que hay una bomba de agua principal con su relé y varios sensores cada uno con su relé y el relé se encarga de accionar unos solenoides.
Los sensores tienen un pin digital y otro analógico y uso el digital por lo que ajusto el parámetro con el potenciómetro que tiene el modulo del sensor.

Incluyo un esquema basico. Simplemente de momento necesitaria 4 sensores y 5 relés (4 de los sensores y uno de la bomba de agua general).

el sensor de humedad es este:

y uso módulos dobles de relés que ya vienen con su diodo.

Lo que debería hacer el circuito es leer los sensores de agua, high o low y en función de eso accionar el relé correspondiente. Por otro lado, si cualquiera de los sensores esta low (no hay agua), se debe activar la bomba de agua.

Incluyo el código

#define rele_1_1 26
#define rele_1_2 22
#define rele_2_1 30
#define rele_2_2 40

#define sensor_1_1 47
#define sensor_1_2 53
#define sensor_2_1 44
#define sensor_2_2 51

#define bomba 45 //bomba principal de agua


void setup() {
  pinMode(rele_1_1, OUTPUT);
  pinMode(rele_1_2, OUTPUT);
  pinMode(rele_2_1, OUTPUT);
  pinMode(rele_2_2, OUTPUT);
  pinMode(bomba, OUTPUT);
  pinMode(sensor_1_1, INPUT);
  pinMode(sensor_1_2, INPUT);
  pinMode(sensor_2_1, INPUT);
  pinMode(sensor_2_2, INPUT);
}
void loop() {

  if (digitalRead(sensor_1_1) == LOW) {
    digitalWrite(rele_1_1, HIGH);
  }
  else {
    digitalWrite(rele_1_1, LOW);
  }

  if (digitalRead(sensor_1_2) == LOW) {
    digitalWrite(rele_1_2, HIGH);
  }
  else {
    digitalWrite(rele_1_2 , LOW);
  }
  if (digitalRead(sensor_2_1) == LOW) {
    digitalWrite(rele_2_1 , HIGH);
  }
  else {
    digitalWrite(rele_2_1, LOW);
  }


  if (digitalRead(sensor_2_2) == LOW) {
    digitalWrite(rele_2_2, HIGH);
  }
  else {
    digitalWrite(rele_2_2, LOW);
  }

//Control de la bomba general
  if (digitalRead(sensor_1_1) == LOW|| digitalRead(sensor_1_2) == LOW|| digitalRead(sensor_2_1) == LOW|| digitalRead(sensor_2_2) == LOW) {

    digitalWrite(bomba, HIGH);
  }
  else {
    digitalWrite(bomba, LOW);
  }


}

Si hay un sensor va perfecto, cuando no hay agua se enciende el relé y cuando hay se desactiva.
Per cuando pongo 4 sensores con sus relés, los sensores se interfieren y los relés también.
A veces cuando se acciona un sensor se accionan dos a la vez y los relés no se acaban de accionar bien.

En anteriores pruebas llegaba a tal nivel de interferencia que se reiniciaba el arduino

He leido que quizás ayude poner condensadores de desacoplo de 0,1uF y VK200?

Gracias de antemano

Vayamos por pasos.

  1. ¿Porqué alimentas los módulos a 12 voltios? El módulo sensor de humeda lo desconozco, pero sin dudarlo mucho pienso que va a 5v. El módulo de relé, si es el de la foto, no tengo duda es de 5 voltios. Por lo tanto 12 voltios nada.

  2. En el caso hipotetico de que fueran de 12 voltios. ¿Has conectado el GND de arduino con el GND de la fuente? Si no lo haces, no hay una referencia común entre tensiones y no puede funcionar nunca bien.