Partage
  • Partager sur Facebook
  • Partager sur Twitter

LCD 1x16 adressage arduiono

Sujet résolu
    26 août 2013 à 8:57:22

    Bonjour,

    J'utilise un afficheur LCD 16x1 connecté à une carte arduino UNO.
    L'écran n'affiche que les 8 1ers caractères. D'après mes recherches, ça vient du fait que les 8 1ers caractères sont sur l'adresse 00 à 07 et les 8 derniers de l'adresse 40 à 47 dans la DDRAM de l'écran

    Ma question est la suivante :
    Au niveau du code, comment dire au LCD d'aller chercher les 8 derniers caractères à l'adresse 40 à 47 afin que je puisse afficher mes 16 caractère à la suite ? 
    Merci


    Mon code actuel :

    #include "LiquidCrystal.h"
    LiquidCrystal lcd(11,10,5,4,3,2);
    void setup()
    {
    lcd.begin(16,1);
    lcd.print("123456789012345");
    }
    void loop() {}
    • Partager sur Facebook
    • Partager sur Twitter
      21 octobre 2013 à 16:27:18

      J'ai tenter d'utiliser la fonction lcd.setCursor et de positionner le curseur sur la 9ème colonne mais rien à faire. J'ai également regarder dans la librairie LiquidCrystal, je ne voit pas où on peut demander au lcd d'écrire à l'adresse 41 de sa DDRAM lorsqu'on arrive au 9ème caractère.

      lcd.print("12345678");
      delay(10);
      lcd.setCursor(8,0);
      lcd.print("9ABCDEF0");

      L'écran lcd n'affiche toujours que :

      "12345678" au lieu de "123456789ABCDEF0"

      • Partager sur Facebook
      • Partager sur Twitter
        21 octobre 2013 à 23:17:15

        Je ne peux en aucun cas te garantir que ça va marché mais tu devrais essayer ça :

        #include "LiquidCrystal.h"
        LiquidCrystal lcd(11,10,5,4,3,2);
        
        void setup() {
            delay(10);
            lcd.begin(48,1);        // On déclare le LCD comme ayant 48 caractères
            delay(10);
            lcd.print("12345678");  // On affiche les 8 premiers caractères
            delay(10);
            lcd.setCursor(40, 0);   // On se place en 40,0 en espérant que ça donne bien les adresse 41 à 47
            delay(10);
            lcd.print("9ABCDEF0");  // On affiche les 8 derniers caractères
            delay(10);
        }
        
        void loop() {} 



        -
        Edité par lorrio 21 octobre 2013 à 23:17:35

        • Partager sur Facebook
        • Partager sur Twitter
          22 octobre 2013 à 8:48:48

          Merci mais j'avais essayé cette méthode et malheureusement rien à faire.

          J'ai également déclarer le lcd comme un lcd 2 ligne 8 caractères :

          LiquidCrystal lcd(11,10,5,4,3,2); //liaison 4 bits de données

          void setup()
          {
          lcd.begin(8,2);
          delay(10);
          lcd.print("12345678");
          delay(10);
          lcd.setCursor(0,1);
          delay(10);
          lcd.print("9ABCDEF0");
          delay(10);
          }

          Dans ce cas, la partie "9ABCDEF0" écrase la 1ère partie et se mets sur les 8 1ers caractères

          • Partager sur Facebook
          • Partager sur Twitter
            22 octobre 2013 à 9:05:23

            C'est bon, ça fonctionne avec la méthode que j'ai décrit au dessus (lcd.begin(8,2).

            Ce qui m'a trompé c'est que le contraste était tellement faible que je ne voyais pas les caractères. Pourtant en écrivant le code avec lcd.begin(16,1) et donc en ayant que les 8 1ers caractères, je voyais bien les lettres. Je n'explique pas ce phénomène mais ça fonctionne en tout cas.

            • Partager sur Facebook
            • Partager sur Twitter
              22 octobre 2013 à 15:57:05

              Arf, j'aurais essayé au moins :)

              Si ton sujet est résolu, je t'invites à cliquer sur le bouton "résolu".

              • Partager sur Facebook
              • Partager sur Twitter

              LCD 1x16 adressage arduiono

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown