Hello tout le monde,
un peu nouveau dans le monde de l'arduino et surtout du codage lol j'ai un petit problème
Je suis actuellement sur la mise au point d'une station météo et je me retrouve un petit peu bloqué sur l'utilisation de l'afficheur 16x2 et du placement du curseur.
En effet, mon setCursor est placé sur (9,1) il reste donc assez de place pour afficher 4 caractères que le capteur me fourni ainsi que l'unité (hPa).
Mais lorsque la valeur de mon capteur passe à 3 caractères je me retrouve avec le dernier caractère vide et donc laisse un espace entre mon "hPa" et le bord de l'écran, ce que je ne veux pas.
J'aimerais donc savoir comment faire bouger le curseur en fonction du nombre de caractères ou quelque chose du genre.
Je vais mettre ici des schémas pour expliquer plus précisément ce que je veux ahah.
Ce que je ne veux pas (espace entre le dernier caractère et le bord)
Ce que je désire.
Tout en gardant la possibilité d'afficher un caractère en plus sans faire passer le "a" à la trappe.
Et voici mon code.
#include <Adafruit_BMP085.h>
#include <DHT.h>
#include <DHT_U.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>//Constants
#define DHTPIN 7 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino
const int buttonPin = 8;
int buttonState = 0;
Adafruit_BMP085 bmp;LiquidCrystal_I2C lcd(0x27,16,2);
//Variables
int chk;
float hum; //Stores humidity value
float temp; //Stores temperature valuevoid setup()
{
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
bmp.begin();}
void loop()
{
delay(5000);
hum = dht.readHumidity();
temp = dht.readTemperature();
Serial.print("Humidity: ");
Serial.print(hum);
Serial.print(" %, Temp: ");
Serial.print(temp);
Serial.println(" Celsius");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");lcd.clear();
lcd.setCursor(0,0);
lcd.print(temp);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print(hum);
lcd.print("%");
lcd.setCursor(9,1);
lcd.print(bmp.readPressure()/100);
lcd.print("hPa");
delay(5000);
}
Merci d'avance à tous ceux qui vont m'aider
bonne journée.
Basile


