IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Pas d'affichage de valeurs BME280 et Ecran TFT


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Par défaut Pas d'affichage de valeurs BME280 et Ecran TFT
    Bonjour à tous,

    Merci à ceux qui s'attarderont sur ce message et qui pourront m'apporter un élément de réponse.

    J'ai branché sur un Arduino Méga, un écran TFT et un capteur BME280.
    Je souhaite afficher, sur cet écran, les valeurs du BME280 (Température, Pression, Humidité, Altitude).

    Mon écran se divise en 4 rectangles pour chaque donnée (mesures).

    Le problème est que je n'arrive pas à afficher les valeurs du BME280 (testé avec le programme de la libraire, les valeurs s'affichent avec Serial.print dans le moniteur série).

    Voici le code ainsi que la photo de mon écran.
    De plus, je constate que dans le cadre ''Humidité'', des caractères majuscules s'affichent...

    Une nouvelle fois, merci à ceux qui pourront m'aider!

    Bonne journée à tous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    #include <Wire.h>
    #include <SPI.h>
    #include <Adafruit_Sensor.h>
    #include <Adafruit_BME280.h>
    #include "Adafruit_GFX.h" 
    #include "MCUFRIEND_kbv.h" 
    #include <Fonts/FreeSansBold12pt7b.h>
    #include <Fonts/FreeSerif9pt7b.h>
    MCUFRIEND_kbv tft;
     
    #define ROUGE 0xF800
    #define	NOIR 0x0000
    #define BLANC 0xFFFF
     
    #define BME_SCK 13
    #define BME_MISO 12
    #define BME_MOSI 11
    #define BME_CS 10
     
    #define SEALEVELPRESSURE_HPA (1013.25)
     
    String Jour[]={"Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"};
    int heure_date[6] = {10,34,18,18,10,2022}; //seconde minute heure jour mois année
    int mod[6] = {60,60,24,31,12,3000}; // limite d incrementation
     
    Adafruit_BME280 bme; // I2C
    //Adafruit_BME280 bme(BME_CS); // hardware SPI
    //Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
     
    unsigned long delayTime;
     
    void setup() {
      uint16_t ID = tft.readID();
      tft.begin(ID);
      tft.setFont(&FreeSansBold12pt7b);
      tft.fillScreen(NOIR);
      tft.setRotation(1);
      tft.setTextSize(2);
     
      bool status;
     
      tft.drawRect(0, 0, 240, 120, BLANC);
      tft.drawRect(1, 1, 238, 118, BLANC);
      tft.drawRect(2, 2, 237, 116, BLANC);
     
      tft.drawRect(240, 0, 240, 120, BLANC);
      tft.drawRect(241, 1, 238, 118, BLANC);
      tft.drawRect(242, 2, 236, 116, BLANC);
     
      tft.drawRect(0, 120, 240, 120, BLANC);
      tft.drawRect(1, 121, 238, 118, BLANC);
      tft.drawRect(2, 122, 236, 116, BLANC);
     
      tft.drawRect(240, 120, 240, 120, BLANC);
      tft.drawRect(241, 121, 288, 118, BLANC);
      tft.drawRect(242, 122, 266, 116, BLANC);
     
      tft.drawRect(0, 240, 480, 80, BLANC);
      tft.drawRect(1, 241, 478, 78, BLANC);
      tft.drawRect(2, 242, 476, 76, BLANC);
     
      // default settings
      status = bme.begin();  
      if (!status) {
        tft.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
      }
     
     
    }
     
     
    void loop() { 
     
     
     
     
     printValues();
      delay(delayTime);
    }
     
     
    void printValues() {
      tft.setCursor(10, 40);
      tft.write("Temp.");
      tft.println();
      tft.write(bme.readTemperature());
      tft.setCursor(185, 110);
      tft.write(" C");
     
      tft.setCursor(245, 40);
      tft.write("P atm");
      tft.println();
      tft.write(bme.readPressure() / 100.0F);
      tft.setCursor(376, 110);
      tft.println(" hPa");
     
      tft.setCursor(245,160);
      tft.write("Altitude") ;
      tft.println();
      tft.write(bme.readAltitude(SEALEVELPRESSURE_HPA));
      tft.setCursor(420, 230);
      tft.println(" m");
     
      tft.setCursor(10, 160);
      tft.write("Humidite");
      tft.println();
      tft.write(bme.readHumidity());
      tft.setCursor(178, 230);
      tft.println(" %");
     
     tft.println();
     
     
     
    }
    Nom : Ecran Tft.jpg
Affichages : 144
Taille : 157,4 Ko

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 915
    Par défaut
    au lieu de faire des write pour les nombres (ce qui va envoyer le premier octet du nombre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      tft.write(bme.readTemperature());
    essayez des print
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      tft.print(bme.readTemperature(),1); // 1 chiffre après la virgule

  3. #3
    Membre habitué
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Par défaut
    Merci beaucoup !
    Ce n'était pas grand chose, en fait.

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 915
    Par défaut
    non, pas grand chose en effet. ça marche comme vous voulez ?

    idéalement vous devriez dessiner l'écran une fois pour toute dans le setup (les lignes et les étiquettes) et dans la loop, uniquement quand une valeur change, effacer le rectangle qui contient l'ancienne valeur et écrire la nouvelle valeur.

Discussions similaires

  1. Pas d'affichage des valeurs de clé de fichier message
    Par Elwe31 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 27/12/2017, 15h34
  2. Pas d'affichage d'ecran
    Par clubinfo dans le forum Composants
    Réponses: 3
    Dernier message: 16/07/2008, 13h48
  3. [Écran] Pas d'affichage
    Par Dorval dans le forum Périphériques
    Réponses: 4
    Dernier message: 06/06/2007, 09h39
  4. Pas d'affichage des valeurs nulles avec un COUNT
    Par phoenixz22 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 30/05/2007, 18h39
  5. sub My_Sub : pas d'affichage écran ?
    Par kafifi dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2005, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo