Como reducir tiempos de respuesta al activar reles en la programación adjunta

La cuestión que planteo es "Como reducir tiempos de respuesta al activar reles en la programación adjunta" ya que me tarda como 6 segundos en actuar en el rele una vez pulso el boton correspondiente en la pantalla Nextion.


#include "OneWire.h"
#include "DallasTemperature.h"
#include "Arduino.h"
#include "Nextion.h"
#include "EasyNextionLibrary.h"

OneWire datos(2); // Pin de datos
DallasTemperature sensors(&datos);
#define RELE1 3
#define RELE2 4
#define RELE3 5
#define RELE4 6
char dato;
String cadena;
String d1, d2, d3, d4;
bool R1, R2, R3, R4;
byte p1, p2, p3, p4;
byte temp1[]={0x28, 0xFF, 0x20, 0xCE, 0xA4, 0x16, 0x05, 0x8D};
byte temp2[]={0x28, 0xFF, 0x74, 0xDA, 0xA2, 0x16, 0x04, 0xBE};
byte temp3[]={0x28, 0xFF, 0xD6, 0xBD, 0xA4, 0x16, 0x04, 0xC9};
byte temp4[]={0x28, 0xFF, 0x03, 0xDC, 0xA2, 0x16, 0x04, 0x8B};

float t1,t2,t3,t4;


void setup(void) 
{
pinMode(RELE1, OUTPUT);
pinMode(RELE2, OUTPUT);
pinMode(RELE3, OUTPUT);
pinMode(RELE4, OUTPUT);

Serial.begin(9600);
sensors.begin();

}

void loop(void) 
{
if (Serial.available() > 0) {
    dato = Serial.read();
    cadena = cadena + dato;
    if (dato == '*') {
      p1 = cadena.indexOf('|');
      p2 = cadena.indexOf('|', p1 + 1);
      p3 = cadena.indexOf('|', p2 + 1);
      p4 = cadena.indexOf('|', p3 + 1);
      d1 = cadena.substring(0, p1);
      d2 = cadena.substring(p1 + 1, p2);
      d3 = cadena.substring(p2 + 1, p3);
      d4 = cadena.substring(p3 + 1, p4);
      R1 = d1.toInt();
      R2 = d2.toInt();
      R3 = d3.toInt();
      R4 = d4.toInt();

digitalWrite(RELE1, R1);
digitalWrite(RELE2, R2);
digitalWrite(RELE3, R3);
digitalWrite(RELE4, R4);
cadena = "";
}
}
 sensors.requestTemperatures();
 while(!sensors.isConversionComplete())
 {
  delay(1);
 }
 t1=sensors.getTempC(temp1);
 t2=sensors.getTempC(temp2);
 t3=sensors.getTempC(temp3);
 t4=sensors.getTempC(temp4);

//Serial.print(t1);
//Serial.print("C,");
//Serial.print(t2);
//Serial.print("C,");
//Serial.print(t3);
//Serial.print("C,");
//Serial.print(t4);
//Serial.println("C,");

Serial.print("t11.txt=");
Serial.print("\"");
Serial.print(t1);
Serial.print("\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t12.txt=");
Serial.print("\"");
Serial.print(t2);
Serial.print("\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t13.txt=");
Serial.print("\"");
Serial.print(t3);
Serial.print("\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t14.txt=");
Serial.print("\"");
Serial.print(t4);
Serial.print("\"");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(1);

//if(Serial.available() > 0){
//  boton1= Serial.read();
 // Serial.print(boton1);
//  if(boton1 == "a") {
 //   digitalWrite(Rele1, HIGH);
//  }
 // if(boton1 == "b") {
 //   digitalWrite(Rele1, LOW);
 // }


}

@diegoing
Intente eliminar la lectura de los sensores de temperatura del código (temporalmente, para realizar pruebas): ¿responderá el relé más rápido?

Su publicacion se MUEVE a su ubicacion actual ya que es mas adecuada.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.