dimanche 2 mars 2014

Arduino et les afficheurs

Je propose des montages avec des afficheurs LCD ou autre, voici une petite explication concernant leur mise en œuvre. Avec les librairies qu'on peut télécharger, c'est très simple, mais il faut parfois en modifier suivant l'afficheur et le brochage.

Afficheur LCD standard

On trouve dans le commerce pour quelques euros des afficheur de 1 a 4 lignes et de 4 a 20 caractères par lignes.

Lorsqu'on utilise un simple afficheur, pas besoin de télécharger la librairie "LiquidCrystal", elle est déjà incluse dans l'IDE Arduino.


Le programme comportant un afficheur doit commencer par ces lignes.

#include <LiquidCrystal.h>  // librairie pour l'afficheur LCD

LiquidCrystal lcd( 7, 8, 9, 10, 11, 12);   // définition des broches RS/E/D4/D5/D6/D7
, elles seront toujours dans cet ordre coté afficheur, il faut vérifier le doc du constructeur mais en général c'est identique a l'image ci-dessous


Vous constaterez que lors de la définition des broches, on utilise pas toutes les bornes de l'afficheur, celles-ci seront mise a la masse.

Après les déclaration, on configure l'afficheur

void setup()   { 

 lcd.begin(20,4); // initialisation de l'afficheur type soit ici 20 caractères et 4 lignes
  delay(10); // délai 10 ms pour l'initialisation
  lcd.clear(); // rafraichissement de l'afficheur
  delay(10); // délai de rafraichissement
  }


Viens ensuite l'affichage proprement dit

void loop(void) {

lcd.setCursor(0,0); // on positionne le curseur caractère 0 ligne 0 cela aurait également put être 10,3
 lcd.print ("Bonjour"); // le texte a afficher on appel l'afficheur "lcd" puis on lui demande d'écrire "print" soit afficheur.écris "Bonjour"

}

Si vous écrivez ces quelques lignes de programme ( sans mes commentaires), votre afficheur vous dira bonjour.

Le schéma de base



Un petit code simple



#include <LiquidCrystal.h> 
LiquidCrystal lcd( 1, 2, 3, 4, 5, 6);   // définition des broches RS/E/D4/D5/D6/D7



void setup()   { 

 lcd.begin(16,2); // initialisation de l'afficheur type soit ici 16 caractères et 2 lignes
  delay(10); // délai 10 ms pour l'initialisation
  lcd.clear(); // rafraichissement de l'afficheur
  delay(10); // délai de rafraichissement
  }

void loop() {

lcd.setCursor(0,0); // on positionne le curseur caractère 0 ligne 0
 lcd.print ("Bonjour"); 

lcd.setCursor(0,1);
lcd.print("je m appel joel");
}

Affichage de l'appui sur un bouton poussoir

On garde le même schéma, on rajoute simplement un bouton poussoir









Vous noterez que le BP est raccordé a la masse et non a +, simplement parce que j'utilise la résistance interne de l'arduino.


Le sketch


#include <LiquidCrystal.h> 
LiquidCrystal lcd( 1, 2, 3, 4, 5, 6);   // définition des broches RS/E/D4/D5/D6/D7

int BP = 7; // broche sur laquelle est raccordée le BP

void setup()   { 

 lcd.begin(16,2); // initialisation de l'afficheur type soit ici 16 caractères et 2 lignes
  delay(10); // délai 10 ms pour l'initialisation
  lcd.clear(); // rafraichissement de l'afficheur
  delay(10); // délai de rafraichissement

pinMode(BP,INPUT_PULLUP); // déclaration du Bouton en entrée avec résistance interne
  }

void loop() {

lcd.setCursor(0,0); // on positionne le curseur caractère 0 ligne 0
 lcd.print ("Bonjour");  // on conserve la première ligne

lcd.setCursor(0,1);
if (digitalRead (BP) == HIGH) // si BP appuyé
{
lcd.print("Bouton appuye"); // texte affiché
}
else // ou si BP non appuyé
{
lcd.print("Bouton relache");
}


A bientôt pour la suite affichage d'une valeur !!!





10 commentaires:

  1. pas mal du tout, allez j'essaie

    RépondreSupprimer
    Réponses
    1. Merci!! En cas de problème, n'hésitez pas a demander!!

      Supprimer
  2. Merci, c'est très intéressant. Sauriez vous réalisez (sur le même principe lcd/push button) un système à incrémentation et décrémentation ? :)

    RépondreSupprimer
    Réponses
    1. Bonjour,

      C'est possible, cela dépend de ce que vous voulez faire

      Supprimer
  3. Bonjour,
    Je remercie Jojo de m avoir aide pour mon projet alarme technique (arduino-relais-afficheur)et c est avec efficacité et rapidité que Jojo m'a remis: plan et programme
    Blog a recommander A TOUS
    Cordialement
    WR


    RépondreSupprimer
    Réponses
    1. Salut,

      Merci pour le commentaire,c'était avec plaisir.

      Supprimer
  4. Bonjour,
    Votre programme Arduino (alarme technique) fonctionne très bien
    Merci
    Cordialement
    WR

    RépondreSupprimer
  5. vous pouvez m'aider à ajouter un afficheur à mon programme pour tester la continuité et le court circuit

    RépondreSupprimer
  6. Bonjour,
    Désolé pour cette réponse tardive mais je reviens après un cancer.
    Quel est ton programme?

    RépondreSupprimer