Problème sur le traceur série

Bonjour à tous,

je souhaite afficher la valeur de l'humidité et de la température sur un afficheur LCD, en parallèle je souhaite également récupérer les données prélevées sur un graphique.

Le problème étant qu'il faut pour ça que j'entre les données que je souhaite afficher sur le graphique dans le Moniteur Série, j'ouvre donc la communication et j'ai ceci à l'infini:

Que faire ?

Voici le code:

#include <LiquidCrystal.h>
#include "DHT.h"

DHT dht(0, DHT11);
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() 
{
 dht.begin(); 
 analogWrite(8,15);
}

void loop() 
{
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 
 lcd.begin(16, 2);
 
 lcd.print(" Temps: ");  
 lcd.print(t); 
 Serial.println(t);
 
 lcd.setCursor(0, 1);
 
 lcd.print(" Humidite: ");
 lcd.print(h);
 Serial.println(h);

 delay(500);
}

Et merci beaucoup à ceux qui se seront penchés sur mon problème.

Ne utilisez pas le pin 0 quand vous écrire via Serial. Il est reservé pour le serial communication (aussi le #1)

Qu’est-ce le analogWrite(8,15) faire?

Après avoir remplacé le pin 0 par le pin 8, tout fonctionne, merci de votre aide, voici le code final pour les intéressés:

#include <LiquidCrystal.h>
#include "DHT.h"

DHT dht(8, DHT11);
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() 
{
 Serial.begin(9600);
 dht.begin(); 
 analogWrite(8,15);
}

void loop() 
{
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 
 lcd.begin(16, 2);
 
 lcd.print(" Temps: ");  
 lcd.print(t); 
 
 lcd.setCursor(0, 1);
 
 lcd.print(" Humidite: ");
 lcd.print(h);
 
 Serial.print(h);
 Serial.print(',');
 Serial.println(t);
 
 delay(250);
}

Merci beaucoup de votre aide!

On ne comprend toujours pas ce que cette ligne vient faire là. Elle vient appliquer un signal PWM sur la broche 8.
Probablement que la librairie remet les choses en ordre à la première lecture.

Il semble que cette ligne soit le reste d'un ancien bout de code, en l'enlevant, cela ne change rien au fonctionnement et déroulement de ce dernier.
Mais merci de l'aide!

ce bout là va dans le setup

je suppose que votre souci ce sont les valeurs erronées et l'écriture sur la console série
image

ça doit venir de votre bibliothèque DHT.h, regardez dans le code source comment désactiver le mode bug

Comme vous ne nous avez pas dit quelle bibliothèque vous utilisez ni à quoi ressemble le montage, ni quelle est vraiment votre question, c'est un peu le jeu des devinettes..

➜ Il n'aura sans doute pas de réponse super pertinente tant que vous n'aurez pas pris en compte et mis en application les recommandations listées dans "Les bonnes pratiques du Forum Francophone”

Oublies Serial.begin(9600), c'était le débit utilisé au Moyen Age.
Remplace 9600 par 115200.
Pourquoi : le jour où tu affichera un texte long trop rapidement tu ne videra pas assez rapidement la mémoire tampon.
C'est le genre de bug auquel on pense en dernier. Autant prendre de bonnes habitudes.
Attention il faudra aussi modifier la valeur dans le moniteur sinon les caractères seront incompréhensibles.

Ok je note, merci du conseil!

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