AYUDA con delays de una incubadora

Hola comunidad Arduino soy nuevo aquí, pero tengo una duda, estoy realizando una incubadora, probe el sensor y le ponía un delay de 500 y todo bien, pero conforme fui agregando procesos el sensor se va tardando mas en leer los datos ya intente hacer varias cosas pero no se que mas hacer para que el sensor me lea cada segundo mínimo los datos :frowning:

Este es el código que estoy realizando

#include <DHT.h>

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include<Servo.h>

Servo servo1;

LiquidCrystal_I2C lcd(0x27,16,2);

int sensor= 2;

int foco=3;

int ventilador=4;

int temperatura;

int humedad;

DHT dht(sensor, DHT11);

void setup() {

Serial.begin(9600);

Serial.println(“Temperatura,Humedad”); //Cabezales para mi grafica

dht.begin();

lcd.init();

lcd.backlight();

pinMode(foco,OUTPUT);

pinMode(ventilador,OUTPUT);

servo1.attach(5);

}

void pantalla(){

lcd.clear(); //Me elimina los simbolos que estan en el LCD

lcd.setCursor(0,0); //Posicion de la primer letra despues del segmento 5 en la linea 1

lcd.print("Humedad: ");

lcd.setCursor(8,0);

lcd.print(humedad);//Esctibira la humedad detectada

lcd.print("%");

lcd.setCursor(0,1);

lcd.print("Temperatura: ");

lcd.setCursor(12,1);

lcd.print (temperatura);

lcd.print (“C”);

retraso (2000);

}

void servo () {

servo1.write (0);

retraso (2000);

servo1.write (40);

retraso (5000);

}

lectura vacía () {

temperatura = dht.readTemperature (); // Lee la temperatura

humedad = dht.readHumidity (); // lee la humedad

Serial.print (temperatura);

Serial.print (",");

Serial.print (humedad);

Serial.println (",");

retraso (1); // Recomendacion para tomar datos para precision del dh11

}

control de vacío () {

si (temperatura> 38)

{

digitalWrite (ventilador, ALTA);

digitalWrite (foco, BAJO);

lcd.clear ();

lcd.setCursor (0,0);

lcd.print (“ventilador ENCENDIDO”);

retraso (100);

}

demás{

digitalWrite (foco, ALTO);

digitalWrite (ventilador, BAJO);

lcd.clear ();

lcd.setCursor (0,0);

lcd.print (“Ventilador APAGADO”);

retraso (100);

}

}

bucle vacío () {

lectura ();

pantalla ();

servo ();

control();

}

PD: tenia todos los procesos juntos y tratar de separarlos pero tampoco funciono, espero me puedan orientar gracias.

Welcome to the forum

No English? Try Espanol

Please read the How to get the best out of this forum

Please use code tags. Your code should look like this.

Example code

Using delay() is generally not a good idea. It is a waste of processing cycles and stops you from extending your sketch without breaking the code you already have.

Have a look at the following example

File -> Examples -> 02.Digital -> BlinkWithoutDelay

Moderador:
En el título no debe usarse la palabra Ayuda. Edita!!
Tu hilo fue movido del foro en inglés a este foro, seguramente porque tienes el traductor habilitado en tu Navegador.
Debes tener cuidado en respetar el idioma del foro donde posteas.
El código debe postearse usando etiquetas. Por favor lee las normas que dejo a continuación.

Lee las Normas del foro

Si ese es el código que estás utilizando te adelanto que el compilador no entiende spanglish.

Dejando de lado ese pequeñísimo detalle por el cual ese código tal como está ni siquiera compila...

¿Qué esperas si haces que el micro se "congele" 2 segundos cada vez que pones algo en el display y 7 segundos cuando mueves el servo? ¿Rapidez?

Saludos