TPBD1 : Partie 4 Chapitre 2 – Écrans Alpha numériques

Accueil/TPBD1 : Partie 4 Chapitre 2 – Écrans Alpha numériques
TPBD1 : Partie 4 Chapitre 2 – Écrans Alpha numériques 2016-12-20T11:38:34+00:00

Project Description

Niveau: Débutant

Le matériel

Pour réaliser ce tutoriel, vous aurrez besoin de :

Un écran LCD?

Voici ce qu’est un écran LCD :

Mais celui la n’a rien a voir avec l’arduino , non non , moi je vous parle de ces écrans LCD :

Cela sont plus petits oui , mais c’est déjà pas mal , en arduino ( en plus évolué ) on trouve aussi des LCD couleurs et tactiles (pour un futur tuto?) :

Dans ce tutoriel nous allons travailler avec le LCD de base. Celui ci est capable d’afficher du texte et bien plus encore!

Branchements

A) Comment relier son LCD à sa carte Arduino et l’initialiser?.

L’afficheur LCD utilise 6 à 10 broches de données ((D0 à D7) ou (D4 à D7) + RS + E) et deux d’alimentations (+5V et masse). Les 10 broches de données peuvent être placées sur n’importe quelles entrées/sorties numériques de l’Arduino.

Le montage à 8 broches de données :

hookuplcd

 

Le potentiomètre que vous voyez ci dessus permet de régler le contraste du LCD , pratique!

Pour utiliser le LCD nous devons utiliser la librairie Liquid Crystal.

Petit code pour tester :

//https://tutoarduino.wordpress.com
#include "LiquidCrystal.h" //ajout de la librairie

LiquidCrystal lcd(11,10,9,8,7,6,5,4,3,2); //liaison 8 broche de données /! n'oubliez pas de modifier!!!
LiquidCrystal lcd(11,10,5,4,3,2); //liaison 4 broche de données /! n'oubliez pas de modifier!!!

void setup()
{
lcd.begin(16,2); //uniquement pour LCD 16*2 si vous utilisez un 8*2 remplacer cette ligne par lcd.begin(8,2);
lcd.write("Coucou !"); //petit test pour vérifier que tout marche
}

void loop() {}

// Vérifiez les branchements !

si « coucou » s’affiche c’est que tout fonctionne sinon laissez un message sur notre forum : arduino.leforum.eu

B) Hello world!

Ceux qui font de la programmation le savent bien , hello world est le premier programme qu’ils ont pour la plupart écrits.

Pour écrire du texte, puis sauter une ligne vous devez utiliser cette ligne de code :

lcd.println("votre texte");
  • Sans sauter de ligne:
lcd.print("votre texte");
  • pour faire disparaitre le texte (« effacer l’ecran »):
lcd.clear();

Maintenant écrivez hello world sur votre lcd !

Applications avancés

A) Se déplacer à l’écran.

Déjà nous allons voir comment faire apparaitre et disparaitre le texte à l’écran ( mais le garder en mémoire)!

  • noDisplay() : fait disparaître le texte
  • display() : fait apparaître le texte (s’il y en a un évidemment)
//
#include <LiquidCrystal.h> //on inclut la librairie

// initialise l'écran avec les bonnes broches

LiquidCrystal lcd(8,9,4,5,6,7);

void setup() {
// règle la  taille du LCD
lcd.begin(16, 2);
lcd.print("Hello World !");
}

void loop() {
lcd.noDisplay();
delay(500);
lcd.display();
delay(500);
}
Et voilà le texte clignote sur le LCD!
Maintenant nous allons voir comment le déplacer !
Pour mettre votre texte sur la deuxième ligne de l’écran et faire un petit espace :

  • lcd.setCursor(2,1); //place le curseur aux coordonnées (2,1) 2 = ligne , 1 = l'espace

Et maintenant pour faire partir votre texte vers la droite :

  • lcd.scrollDisplayRight();
Et vers la gauche :
  • lcd.scrollDisplayLeft();
Cela peut être pratique avec des boutons ! À vous de jouer!

B) Créer un caractère

Une fonction très intéressante pour les smiley cœur … ! Je vais faire un cœur <3

Pour créer notre cœur , il faut utiliser la technique du tableau à cases :

 byte coeur
[8] = { B00000, B00000, B01010, B10101, B10001, B01010, B00100, B00000 };
Il n’est pas très réussi mais bon… Dans l’exemple nous allons l’utiliser :
Voici le code qui vous permet d’afficher le cœur (très moche) , ou le caractère que vous avez créé :
//
#include <LiquidCrystal.h> //on inclut la librairie

LiquidCrystal lcd(8,9,4,5,6,7);

byte coeur[8] = {
B00000,
B00000,
B01010,
B10101,
B10001,
B01010,
B00100,
B00000};

void setup()
{
lcd.createChar(0, coeur); //apprend le caractère à l'écran LCD
lcd.begin(16, 2);
lcd.write((uint8_t) 0); //affiche le caractère de l'adresse 0
}

// Vérifiez les branchements !
Voilà ce tutoriel est à présent terminé!

Share This Story, Choose Your Platform!

8 Commentaires

  1. artragis 16 mars 2015 à 22 h 29 min␣- Répondre

    Bonjour,
    le tutoriel que vous mettez en avant et notamment les schémas sont ceux de Eskimon qui publie ce tutoriel sur http://eskimon.fr et https://zestedesavoir.com sous licence CC BY-NC-SA, vous êtes priés de mettre les mentions adéquates sur le site afin de respecter la loi française.

    Merci d’avance

  2. ad 19 octobre 2015 à 18 h 29 min␣- Répondre

    relax, une seule shema on est d’accord, mais relax mec on partage le savoir, en plus, il explique avec une maniere completement differente, y’a aussi des tutos qui n’existe pas chez eskimon.fr, en plus le mec de eskimon.fr ne faut plus à jour ses tutos on a donc besoin de quelqu’un active qui fait agrandi le nombre des tutos d’arduino et essaye d’expliquer tout ce qu’on peut faire avec l’arduino, les limites, c’est l’imagination, donc il n’y a aucun loi francaise en ca, l’etude et le savoir c’est pour tout le monde

  3. arnaud39 8 novembre 2015 à 16 h 49 min␣- Répondre

    L’article est un contenu tout à fait original : ce n’est pas parce que vous faite un article sur Paris que tout ceux qui feront par la suite un article sur notre capitale devront vous mentionner, inutile de chercher la petit bête.
    Le schéma en question est extrêmement basique et réalisé sous le logiciel le plus populaire de schématisation électronique. Je doute très fortement que nous ayons un quelconque droit d’auteur sur une capture d’écran. Il n’y a donc aucun droit dessus; puisque n’importe qui peut le refaire de lui même en 30 secondes. Je citerai plutôt le logiciel Fritzing en conséquent ou cette fois-ci la notion de droits d’auteur(s)/d’image est plus discutable. De plus, bien que nous admettons par bonne foi avoir repris son image, comment pouvez vous savoir que nous avions prit son image et que nous n’avions pas refait ce schéma sur l’un de nos ordinateurs ?
    Donc, au final est-ce bien grave de reprendre un bien maigre travail afin d’utiliser ce temps gagner sur une autre des nombreuses tâches que nous demande chaque jour ce site ?
    Bien à vous.

  4. Jean 17 janvier 2016 à 19 h 45 min␣- Répondre

    Et malheureusement si. La capteur d’écran est de la propriété d’eskimon. S’il lui prenait l’envie de porter plainte vous devriez au mieux enlever cette photo jusqu’à lui verser des dédommagements. S’il est faisable en 30 secondes vous n’aviez qu’à le refaire vous même.

    « De plus, bien que nous admettons par bonne foi avoir repris son image, comment pouvez vous savoir que nous avions prit son image et que nous n’avions pas refait ce schéma sur l’un de nos ordinateurs ? » ==> Tout simplement car les métadonnées concernant l’image sont exactement les mêmes.

    Pour résumer :
    Vous avez les droits de copier, de modifier et de publier le contenu de ce blog aux conditions :
    – de citer la source, et de ne pas utiliser le contenu à des fins commerciales.

  5. arnaud9212 17 janvier 2016 à 21 h 32 min␣- Répondre

    Bonjour à vous,

    Décidement même les avocats se mettent à l’électronique! Je viens de remplacer l’image fautive par une image de ma création. Puisque vous tenez tant aux droits d’auteurs, j’ai même pris soins de garder le logo du logiciel ui m’a permis de faire ce jolis montage.

    De plus, au vu du grand interret que vous portez à notre site internet, je vous invite à le parcourir et nous signaler tout autre aberation que vous pourrez y trouver

    Très coordialement,
    Arnaud

  6. jean christophe 12 mars 2016 à 15 h 33 min␣- Répondre

    OUPS!!! Ai je le droit de citer la marque arduino dans mon commentaire ? ne connaissant pas le droit français je préfère demander afin d’éviter de déranger mes avocats .

  7. jakie michel 28 novembre 2016 à 12 h 28 min␣- Répondre

    Oups oups

  8. Stromgarde 1 mars 2017 à 13 h 56 min␣- Répondre

    Bonjour,

    En utilisant la fonction: lcd.setCursor(x,y); Je me suis rendu compte que mes lignes et colonnes étaient inversées.
    J’ai pensé à un problème de branchement, toutefois j’ai tout branché comme sur le schéma.
    Quelqu’un saurait-il me dire comment résoudre mon problème ?

    Merci d’avance

    PS: merci pour les tuto =)

Laisser un commentaire