Go Down

Topic: Relé afecta a funcionamiento de sensor LM35 (Read 192 times) previous topic - next topic

santiagomalet12

Estoy realizando un proyecto escolar junto a unos compañeros sobre un jardín inteligente con arduino, tenemos varios sensores que arrojan diferentes datos. Uno de ellos es una resistencia LDR que al bajar de ciertos valores enciende una lampara que esta conectada a un relé de 8 canales, mi problema es el siguiente: Al energizarse la bobina y activarse el relé los datos que muestra el sensor de temperatura LM35 son demasiados altos e inestables (Superando lo 35°C) pero cuando la bobina se apaga muestra valores que considero mas cercanos a la realidad y mas estables (Se mantiene en los 18° aprox)

Como puedo solucionar esto?

Este es el codigo:




Code: [Select]


#include <LiquidCrystal.h>

LiquidCrystal lcd (7,6,5,4,3,2);


#include <DHT.h>
#include <DHT_U.h>
int SENSORHUMEDAD = 12;
int HUMEDADAMBIENTE;
DHT dht(SENSORHUMEDAD, DHT11);

int RELE = 11;
int VALOR;
int VALOR2;
int VALOR3;
float TEMPERATURA;
int PORCENTAJELUZ;
int PORCENTAJEHUMEDAD;
int BOMBA = 1;
int LED = 13;

void setup() {
 
  lcd.begin(16,2);
  pinMode(BOMBA,OUTPUT);
  pinMode(RELE,OUTPUT);
  pinMode(LED, OUTPUT);
  dht.begin();
  Serial.begin(9600);
}

void loop() {
 
 
 lcd.setCursor(0,0);
 lcd.print("LUZ ");
 lcd.print(PORCENTAJELUZ);
 lcd.print(" %");
 lcd.setCursor(0,1);
 lcd.print("TEMP ");
 lcd.print(TEMPERATURA,1);
 lcd.print("C");

 
 Serial.print("La iluminación es del: " );
Serial.print(PORCENTAJELUZ );
Serial.print("%");
Serial.print("      La temperatura es de ");
Serial.print(TEMPERATURA,1);
Serial. print(" C");
Serial.print("      La humedad del suelo es del: ");
Serial. print(PORCENTAJEHUMEDAD);
Serial.print("%");
Serial.print("      La humedad ambiente es de ");
Serial.print(HUMEDADAMBIENTE);
Serial.println();



VALOR = analogRead(A1);
PORCENTAJELUZ = map (VALOR, 0, 1023, 0, 100);
if (PORCENTAJELUZ <= 20  ){
  digitalWrite (RELE, LOW);
  delay(100);
}
else {
  digitalWrite (RELE,HIGH);
}

VALOR2 = analogRead(A0);
PORCENTAJEHUMEDAD = map (VALOR2, 1023, 0, 0, 100);
if (PORCENTAJEHUMEDAD <= 10){
  digitalWrite(BOMBA, HIGH);
}
else {
  digitalWrite (BOMBA,LOW);
}
 VALOR3 = analogRead(A2);
TEMPERATURA = ((VALOR3 * 5000.0) /1023) / 10;
 delay (1000);
 
 
HUMEDADAMBIENTE = dht.readHumidity();

digitalWrite (LED, HIGH);
delay(1000);
digitalWrite(LED,LOW);



}

tauro0221

Hi,
Si apagas el relay y el problema se resuelve puede ser que sea ruido de los Relays. Posiblemente si el cable analogo del LM35 esta cerca de los relays. Un diagrama de como esta alanbrado incluyendo como los esta alimento seria ideal para poder darte consejos.Incluir como esta instalado es una cosa que la mayoria no lo incluye. Algunas veces anadiendole un condensador de 10ufd con otro de 0.1ufd en paralelo conctado al Vcc y ground  puede solucionar el problema. El condensador de 10uf elimina las interferencia de baja frecuencia y el de 0.1ufd eleimina las fracuencia altas. Algunas veces trenzandos los cables ayuda a eliminar la interferencia. Aqui primero anadeles lo condesadores y despues trenza los cables.

PeterKantTropus

#2
Aug 27, 2020, 07:45 pm Last Edit: Aug 27, 2020, 08:00 pm by PeterKantTropus
¿Como estas alimentando los relays? Estos módulos poseen un jumper entre los pines Vcc y JVcc, que si esta cerrado anula la ventaja del tener un modulo optoacoplado, pero permite utilizar como fuente el Arduino (solo para pruebas). Si esta colocado el jumper , levántalo y alimenta por los pines, de ese mismo peine, GND y JVCC   (también puede llamarse RY-Vcc ) con una fuente externa de 5V.
Saludos.
//-----------------------******------------------------
if (Codigo_con_delay==True) {
Proyecto=Fracaso;
 } 
//-----------------------******-----------------------

Go Up