bonjour,
nous travaillons actuellement sur un projet qui est une station météo.
nous avons bien toutes nos valeurs qui apparaissent sauf pour une "page" où 4 caractères bizarres apparaissent.
on utilise arduin 1.0.6 avec un dht22 pour mesurer la température et l'humidité avec un bmp085 pour la pression atmosphérique.
le problème semble venir du bmp pour la pression / altitude
avez vous une idée d'où cela peut il venir ?
merci d'avance
nous travaillons actuellement sur un projet qui est une station météo.
nous avons bien toutes nos valeurs qui apparaissent sauf pour une "page" où 4 caractères bizarres apparaissent.
on utilise arduin 1.0.6 avec un dht22 pour mesurer la température et l'humidité avec un bmp085 pour la pression atmosphérique.
le problème semble venir du bmp pour la pression / altitude
avez vous une idée d'où cela peut il venir ?
merci d'avance
code: [select]
#include <wire.h>
#include <adafruit_bmp085.h>
#include <liquidcrystal.h> //librairie pour l'écran lcd
#include <dht.h> //librairie pour le capteur dht
adafruit_bmp085 bmp;
liquidcrystal lcd(12, 11, 5, 4, 3, 2); //initialisation de l'écran lcd avec les numéros des pins utilisés
#define dhtpin 8 //pin auquel est connecté le capteur dht
#define dhttype dht22 //si vous utiliser le dht 11
//#define dhttype dht22 //si vous utiliser le dht 22 (am2302)
//#define dhttype dht21 //si vous utiliser le dht 21 (am2301)
const int inttimepause = 1000; //par défaut on actualise les valeures toutes les 5 secondes
float flthumidity; //pourcentage d'humidité mesuré
float flttemperature; //température mesurée en celsius
dht dht(dhtpin, dhttype); //on initialise le capteur dht
const int lumipin = a0; //on définit le pin de la photorésistance
int lumivalue = 50; //on définit la variable qui va retenir la valeur de la photorésistance
int lumilcdvalue = 0;
byte soleil[8] = {
b00100,
b10101,
b01110,
b11111,
b01110,
b10101,
b00100,
};
byte hum[8] = {
b00100,
b01010,
b01010,
b01010,
b01110,
b11111,
b11111,
b01110,
};
void setup()
{
lcd.createchar(0, soleil);
lcd.createchar(1, hum);
lcd.begin(20, 4); //on indique le nombre de colonnes et de lignes de l'écran
lcd.clear(); //on efface tout ce qui se trouve sur l'écran
bmp.begin();
}
void loop()
{
flthumidity = dht.readhumidity(); //on lit le pourcentage d'humidité
flttemperature = dht.readtemperature(); //on lit la température en degrés celsuis
if (isnan(flttemperature) || isnan(flthumidity)) //si les valeures retournées ne sont pas des nombres :
{
lcd.setcursor(0, 1); //positionnement du curseur
lcd.print(dhttype); //on affiche le type de capteur
lcd.setcursor(5, 1);
lcd.print(" illisible"); //on affiche l'erreur
}
else
{
//mise en forme et affichage des informations sur l'écran lcd
lcd.setcursor(0, 0); //positionnement du curseur
lcd.print("temperature : ");
lcd.setcursor(7, 1);
lcd.print(flttemperature); //affichage de la température
lcd.setcursor(13, 1);
lcd.print((char)223); //affiche le caractère ° (degrés)
lcd.setcursor(14, 1);
lcd.print("c"); //en degrés celsuis
lcd.setcursor(0, 2);
lcd.print("humidite : ");
lcd.setcursor(7, 3);
lcd.print(flthumidity); //affichage de l'humidité
lcd.setcursor(13, 3);
lcd.print("%");
}
lcd.setcursor(4,1);
lcd.write((uint8_t) 0);
lcd.setcursor(4,3);
lcd.write((uint8_t) 1);
lcd.nodisplay();
delay(500);
lcd.display();
delay(3000);
lcd.clear();
lcd.setcursor(0, 0);
lcd.print("pression");
lcd.setcursor(7, 1);
lcd.print(bmp.readpressure()/100);
lcd.println(" hpa");
lcd.setcursor(0, 2);
lcd.print("altitude :"); // readaltitude() peut prendre un argument : la pression
lcd.setcursor(7, 3);
lcd.print(-bmp.readaltitude(101325)); // actuelle au niveau de la mer, en pascals.
lcd.println(" metres"); // par exemple : 1015 millibars = 101500 pa
lcd.nodisplay();
delay(500);
lcd.display();
delay(3000);
lcd.clear();
delay(500);
lumivalue = analogread(lumipin); //on lit la valeur de la photorésistance
/* pour utiliser la valeur de la photorésistance, il faut faire un peu de math.
la photorésistance fournit un nombre à 10-bits.
mais analogwrite() utilise des chiffres à 8-bits.
il faut diviser la valeur par 10 pour ramener celle-ci à un % */
lcd.setcursor(0, 0);
lcd.print("luminosite :");
lcd.setcursor(8,1);
lcd.print (lumilcdvalue = lumivalue);
lcd.setcursor(9, 1);
lcd.print("%");
lcd.nodisplay();
delay(500);
lcd.display();
delay(3000);
lcd.clear();
delay(500);
}
bonjour,
boule de cristal en panne.
comment veux-tu que l'on sache ce qui se passe, on n'a pas ton soft, ton montage et encore moins les caractéristique du matériel utilisé.
avec les éléments fournis, le comportement de votre montage parait normal.
boule de cristal en panne.
comment veux-tu que l'on sache ce qui se passe, on n'a pas ton soft, ton montage et encore moins les caractéristique du matériel utilisé.
avec les éléments fournis, le comportement de votre montage parait normal.
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Caractères spéciaux écran LCD
arduino
Comments
Post a Comment