Al añadir biblioteca DHT.h deja de funcionar mi programa (o al menos la OLED)

Buenos días grupo.
Escribo de nuevo ya que me he encontrado con un problema que no sé a que se debe. Cuando añado la librería DHT.h a mi código de sistema de riego automático, la pantalla oled deja de funcionar. La solución que he encontrado es manejar los datos recibidos del DHT sin librería alguna, pero me gustaría saber por qué motivo esta creando discordancia el añadir dicha biblioteca. He querido adjuntar el código, pero la restricción de 9000 caracteres no me ha dejado. Espero que con esta información alguien me pueda echar una mano. Aparte de estas librerías, tengo incluidas: keypad.h , SPI.h , Adafruit_GFX.h , Adafruit_SSD1306.h, RTClib.h

Comprime tu código en un archivo zip y adjúntalo a tu mensaje a ver si le podemos dar una mirada.

No debería darte conflictos esa combinación. SPI y DHT pueden convivir sin problemas

Gracias por responder ¡TFTLCDCyg. Adjunto el código.

RIEGO_KEYPAD_RTC_SENSADO1.zip (3.42 KB)

Buenos días grupo. Estoy desarrollando un sistema de riego automático usando arduino. El caso es que me funciona perfectamente lo que tengo de código hasta ahora. El problema es que cuando trato de hacer una lectura del LDR y mostrarla por pantalla, deja de funcionar la pantalla OLED y entra en un bucle en el que no para de entrar y salir en la función menu_principal (esto lo he podido comprobar haciendo uso del led interno de arduino como depurador.
Este problema se da cuando en la función opcion_sensado (), incluyo las líneas comentadas:

     /* ilum = ((long)V*A*10)/((long)B*Rc*(1024-V));
      escribir_texto(0, 0, "La cantidad de luz es: ", 1);
      display.println(ilum);
      display.display();*/

Si alguien me pudiese decir que está causando ahí el conflicto me sería de gran ayuda, ya que no sé que más puedo hacer para que esto no ocurra. Ocurre también con otras cosas, como por ejemplo dejar un espacio en blando de más cuando escribo algo por pantalla, por ejemplo: “El sistema se ha programado a las:”.
Adjunto el archivo .ino a este mensaje. Gracias de antemano y un saludo.

RIEGO_KEYPAD_RTC_SENSADO.zip (3.83 KB)

Moderador:
Un doble posteo es una de las peores faltas en este foro.
La razón es que alguien que te responda en tu otro hilo se tomará el tiempo de darte una buena respuesta sin saber lo que se ha escrito en el otro sitio. Lo que consituye una perdida de tiempo para ambos foreros.
Por respeto a ellos es que te pido que no lo vuelvas a hacer y que leas las normas.
2 de 3 preguntas que has hecho estan unidas por esa razón.

Normas del foro

Buenos días,
Disculpa pero no entiendo dónde está el error. No entiendo a que te refieres con doble posteo, ya que solamente (que yo sepa) he publicado una vez este post. Soy nuevo en el foro y me he leído las normas. Si he cometido una falta a sido totalmente sin querer. Si me hace el favor de indicarme dónde está el otro post, lo borraré sin problemas.
Si se refiere al post "Al añadir biblioteca DHT.h deja de funcionar mi programa (o al menos la OLED)" debo de decir que la problemática no es la misma, ya que en este post preguntaba acerca de por qué una librería en concreto (DHT.h) hacía que no funcionase la pantalla OLED.
En este post ya he solucionado el problema de la librería añadiéndole otra que no me provoca (a priori) fallo en la OLED. He podido usar la pantalla OLED para imprimir muchas cosas, pero al añadirle una en concreto más, deja de funcionar.
Para mí, aunque los temas tengan la misma base (al fin y al cabo versan del mismo proyecto), son preguntas diferentes. Aún así, si he cometido una falta me disculpo. Hágamelo saber y borraré el post "Al añadir biblioteca DHT.h deja de funcionar mi programa (o al menos la OLED)".
Un saludo.

Moderador.
Pregunta por privado, no voy a desvirtuar el tema en un debate que no suma.

Luego que anaiice tu código te responderé.

He encontrado el posible error, aunque no tengo idea de por qué se da. Al parecer mi biblioteca SDHT.h es la que causa conflicto. Comentando todas la líneas que se relacionan con dicha biblioteca y no teniendo en cuenta las lecturas del DHT11, he conseguido que imprima correctamente y que en principio no tenga problema. Antes de ello traté de sustituir la biblioteca SDHT.h por la biblioteca DHT.h y tampoco imprimía correctamente la OLED. ¿Alguien tiene idea de a que se debe esto? ¿Que biblioteca debería usar? Me estoy planteando seriamente no usar ninguna biblioteca y tratar directamente con el DHT.

La biblioteca SDHT.h no se de donde la has obtenido. Es bueno que cuando hagas consultas por problemas aportes siempre la ubicación de la biblioteca en tu mismo código de esta forma

#include <SDHT.> // https://de donde la descargaste o 
                            // si fue del Administrador de bibliotecas como se llama y a quien pertence

Respecto a que bibliote usar, te diré la que uso ultimamente y es la de Adafruit. Esta en el Administrador de bibliotecas y funciona sin problemas.
Haz todos los ajustes correspondientes, los llamados serán diferentes.

Buenos días Surbyte,
La biblioteca SDHT.h la he obtenido del administrador de bibliotecas del propio IDE de arduino. Usé la de Adafruit pero me daba problemas también (no me imprimía bien en la OLED). Por eso la sustituí por SDHT.h
Estoy haciendo comprobaciones para ver que es lo que puede estar pasando.
He realizado el diagrama en proteus y funciona a la perfección. No entiendo dónde puede estar el problema.

Sube tu simulación a ver si podemos reproducir el problema.
Adjuntalo.

Buenas tardes,
finalmente resolví el problema cambiando la librería de la pantalla OLED por la librería lcdgtx.h
Con esta librería se solucionaron todos los problemas.
Gracias por la ayuda, Surbyte.

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