This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
codigo arduino
#1
hola, soi nuevo por aqui.haber si me podeis ayudar con este codigo. soi novato.

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

#define ONE_WIRE_BUS 10
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int temp=27;

int rele1 =6;
int rele2 =7;
int rele3 =8;
int rele4 =9;
int rele5 =14;


void setup() {
pinMode(rele1,OUTPUT);
pinMode(rele2,OUTPUT);
pinMode(rele3,OUTPUT);
pinMode(rele4,OUTPUT);
pinMode(rele5,OUTPUT);
digitalWrite(rele1,HIGH);
digitalWrite(rele2,HIGH);
digitalWrite(rele3,HIGH);
digitalWrite(rele4,HIGH);

lcd.begin(20, 4);
pinMode(13,OUTPUT);
digitalWrite(13, HIGH);
sensors.begin();
lcd.setCursor(4, 1);
lcd.print("HOLA ");

lcd.setCursor(4, 2);
lcd.print("CARGANDO ");
lcd.setCursor(4, 3);
lcd.print(" SISTEMA ");

delay(5000);
digitalWrite(rele5,LOW);
}

void loop() {
sensors.requestTemperatures();
lcd.setCursor(0, 0);
lcd.print("Deposito 1: ");
lcd.print(sensors.getTempCByIndex(0));
lcd.print("C");

lcd.setCursor(0, 1);
lcd.print("Deposito 2: ");
lcd.print(sensors.getTempCByIndex(1));
lcd.print("C");

lcd.setCursor(0, 2);
lcd.print("Deposito 3: ");
lcd.print(sensors.getTempCByIndex(2));
lcd.print("C");

lcd.setCursor(0, 3);
lcd.print("Deposito 4: ");
lcd.print(sensors.getTempCByIndex(3));
lcd.print("C");
if (sensors.getTempCByIndex(0)>temp)
{
digitalWrite(rele1,LOW);

}

else
{
digitalWrite(rele1,HIGH);

}
/////////////////////////////////////////////////////////////////

if (sensors.getTempCByIndex(1)>temp)
{
digitalWrite(rele2,LOW);

}

else
{
digitalWrite(rele2,HIGH);

}
/////////////////////////////////////////////////////////////////

if (sensors.getTempCByIndex(2)>temp)
{
digitalWrite(rele3,LOW);

}
else
{
digitalWrite(rele3,HIGH);

}
/////////////////////////////////////////////////////////////////


if (sensors.getTempCByIndex(3)>temp)
{
digitalWrite(rele4,LOW);

}
else

{
digitalWrite(rele4,HIGH);

}

/////////////////////////////////////////////////////////////////
if (rele1 && rele2 == HIGH);
digitalWrite(rele5,LOW);

if (rele1 && rele3 == HIGH);
digitalWrite(rele5,LOW);

if (rele1 && rele4 == HIGH);
digitalWrite(rele5,LOW);

if (rele2 && rele3 == HIGH);
digitalWrite(rele5,LOW);

if (rele3 && rele4 == HIGH);
digitalWrite(rele5,LOW);

if (rele3 && rele4 == HIGH);
digitalWrite(rele5,LOW);


/////////////////////////////////////////////////////////////////////
if (rele1 && rele2 && rele3 == LOW);
digitalWrite(rele5,HIGH);

if (rele1 && rele2 && rele4 == LOW);
digitalWrite(rele5,HIGH);

if (rele4 && rele3 && rele2 == LOW);
digitalWrite(rele5,HIGH);

if (rele4 && rele3 && rele1 == LOW);
digitalWrite(rele5,HIGH);

if (rele4 && rele2 && rele1 == LOW);
digitalWrite(rele5,HIGH);

if (rele1 && rele2 && rele3 == LOW);
digitalWrite(rele5,HIGH);

}
en la pantalla funciona bien y los reles tan bien pero el rele5 no.
Gracias de antemano.
  Responder
#2
Código:
/////////////////////////////////////////////////////////////////
if (rele1 && rele2 == HIGH);
digitalWrite(rele5,LOW);

if (rele1 && rele3 == HIGH);
digitalWrite(rele5,LOW);

if (rele1 && rele4 == HIGH);
digitalWrite(rele5,LOW);

if (rele2 && rele3 == HIGH);
digitalWrite(rele5,LOW);

if (rele3 && rele4 == HIGH);
digitalWrite(rele5,LOW);

if (rele3 && rele4 == HIGH);
digitalWrite(rele5,LOW);


/////////////////////////////////////////////////////////////////////
if (rele1 && rele2 && rele3 == LOW);
digitalWrite(rele5,HIGH);

if (rele1 && rele2 && rele4 == LOW);
digitalWrite(rele5,HIGH);

if (rele4 && rele3 && rele2 == LOW);
digitalWrite(rele5,HIGH);

if (rele4 && rele3 && rele1 == LOW);
digitalWrite(rele5,HIGH);

if (rele4 && rele2 && rele1 == LOW);
digitalWrite(rele5,HIGH);

if (rele1 && rele2 && rele3 == LOW);
digitalWrite(rele5,HIGH);

Posiblemente tengas el error en esa logica ya que se pueden dar varios casos afectado a los siguientes, y tienes condiciones repetidas, posiblemente te este pasando el rele de LOW a HIGH en cuestion de milisegundos y el rele al ser tan lento ni cierra el circuitopor eso no "funciona", te falta algun que otro delay y revisar esa logica utilizando un case o un elseif.

Mi recomendacion que pongas delay y escribas en la pantalla la condicion asi sabras por que condicion esta pasando siempre, y poder depurarlo.

PD: si explicas un poco el proyecto o lo que quieres consegir a lo mejor te podemos orientar con el codigo.
  Responder
#3
Hola, muchas gracias por comtestar. el proyecto es para enfriar unas depositos, con un sensor de temperatura y unas valvulas que hacen que pase agua fria. el quinto rele es para una quinta valvula que hace baipass. cuando uno o varios reles esten activados que el quinto se apage y cuando esten apagados que el quinto encienda. Eso es la idea.(tengo que mirar el caudal de la bonba, que a lo mejor hay activar o dessactivar con un rele o dos). gracias otra vez por tu tiempo. un saludo.
  Responder
#4
hola, alguien me puede ayudar, gracias de todos modos, sigo con las pruebas
  Responder
#5
buenaas jhony, lo que intentas hacer es a nivel bit, prueba con un sólo &

Por otro lado, elimina parte de los casos ya que tienes casos repetidos en distinto orden
  Responder
#6
Hola gracias por responder. Pero ya dí con la solución, lo estoi probando. Ya colgare el código aquí.
  Responder
#7
hola. Aqui os dejo el codigo por si alguno le interesa.


Archivos adjuntos
.rar   sensor_.rar (Tamaño: 1.14 KB / Descargas: 62)
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  CONSULTA Saludos - Problema con código Alexeim56 2 797 29-03-2021, 09:59 PM
Último mensaje: asesorplaza1
  CONSULTA ¿como uno dos codigos en un solo codigo? laurangcard 1 943 18-11-2020, 10:03 PM
Último mensaje: asesorplaza1
  CONSULTA problemas en codigo kuro 1 802 13-10-2020, 11:06 PM
Último mensaje: asesorplaza1
  error al compilar el código homer32 4 1,984 23-09-2019, 01:29 PM
Último mensaje: homer32
  CONSULTA Codigo pluviometro balancin Dieseldj1 0 943 01-09-2019, 10:43 PM
Último mensaje: Dieseldj1