Go Down

Topic: ecran lcd 16*2 (Read 3328 times) previous topic - next topic

khallal

#include <OneWire.h>
#include <LiquidCrystal.h>
const int RS=2; //declaration constante de broche
const int E=3; //declaration constante de broche

const int D4=4; //declaration constante de broche
const int D5=5; //declaration constante de broche
const int D6=6; //declaration constante de broche
const int D7=7;
OneWire ibutton (1); // I button connected on PIN 2.

byte buffer[20]; //array to store the Ibutton ID.
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
void setup(){
  lcd.begin(16,2);
 
   
if (!ibutton.search (buffer)){//read attached ibutton and asign value to buffer
    ibutton.reset_search();
    delay(200);
    return;
}
 
  for (int x = 0; x<8; x++){ 
    lcd.print(buffer
  • ,HEX);
       }
     

         
    }
    void loop(){}

    quelqu'un peut m'aider ce programme n'affiche rien

XavierMiller

Bonjour,

1. Est-ce que tu arrives à afficher "hello" sur l'écran LCD ?
2. est-ce que le résultat de iButton.search est OK ? Si la méthode search retourne false (ou zéro), rien n'est affiché.

khallal

#2
Aug 07, 2013, 01:16 pm Last Edit: Aug 07, 2013, 01:18 pm by khallal Reason: 1
oui j'ai affiché un texte au debut du programme et le test est bon  mais j'ai un probleme avec la fonction lcd.print ( buffer (x) ,HEX);
est ce qu'elle est correcte ???

XavierMiller

la syntaxe est buffer

  • pas buffer(x)

khallal

je suis d'acord mais pas de resultat

XavierMiller

je suis d'accord, mais sans ton aide, on n'avancera pas.

Essaie en envoyant des messages dans la console série à différents points de ton code pour voir ce qui se passe.

khallal

le problème d'affichage et réglé
mais j'ai un autre problème concernant le code HEX normalement il faut afficher 090004 mais il affiche 904

XavierMiller

pour formater, passe par une fonction de formatage, genre sprintf (%02x va afficher en hexa sur 2 chiffres significatifs)
http://en.cppreference.com/w/c/io/fprintf

khallal

mais lcd.sprintf() ca passe pas

XavierMiller

c'est une fonction qui n'est pas dans lcd, mais stdio.h (#include <stdio.h>)
il faut définir un buffer (char hexbuf[3] par exemple), et d'abord convertir le résultat de ton autre tampon en chaîne hexa, puis passer le hexbuf via lcd.print

khallal

merci beaucoup tu peut détailler

XavierMiller

je peux, mais je ne veux pas ;)
Je n'ai pas envie de tout te mâcher à l'avance : le but d'un Arduino est aussi éducatif : il faut vouloir apprendre, se casser la tête et chercher un peu.

khallal


XavierMiller

;)

N'hésite pas à montrer ton code si ça ne marche pas.

Go Up