Tutoriel 1 : L’arduino LCD Keypad Shield
Objectif : Réaliser pour Arduino un programme permettant d’afficher un message.
Niveau : débutant
Matériel nécessaire : – Une carte Arduino (peu importe le modèle, mais pouvant accepter des Shields), un câble USB – Le LCD Keypad Shield (procuré sur ebay, pour un total de 15$). Rappel : j’utilise le Kit de développement de l’Arduino téléchargeable sur cette page. Pour toute utilisation et configuration du logiciel, je vous conseille de parcourir le site http://arduino.cc sur lequel vous trouverez toutes les informations utiles.
Le LCD Keypad Shield Il s’agit d’un écran LCD de 16 caractères sur 2 lignes monté sur un Shield afin d’être très facilement inséré sur une carte Arduino. Il est retroéclairé (écritures blanches sur fond bleu) pour une meilleure lisibilité. Il est construit autour d’un contrôleur HD44780. Il dispose d’un clavier paramétrable comme on le souhaite de 6 touches. Le Shield est complet, il n’y a donc rien d’autre à faire que d’insérer le shield sur la carte Arduino et de lancer le programme. Pour l’insérer convenablement, je vous conseille de repérer les 0,+5V sur les deux cartes afin de ne pas vous tromper. Sur le modèle Mega que j’utilise, le Shield dépasse un peu et empiète sur la partie USB, mais ce n’est pas gênant.
Programmation de base Nous allons utiliser la librairie LiquidCrystal qui est disponible avec le Kit de développement. Pour ouvrir l’exemple HelloWorld, il suffit d’aller dans File–>Example–>LiquidCrystal et d’ouvrir l’exemple HelloWorld.CEla ne fonctionnera pas tel quel. Nous devons procéder à quelques modifications. Voyons déjà l’appel du constructeur LiquidCrystal, il doit avoir la forme : LiquidCrystal(rs, enable, d4, d5, d6, d7) L’exemple par défaut est : LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Il nous faut le changer par LiquidCrystal lcd(8, 9, 4, 5, 6, 7); car rs= pin 8, enable= pin 9 et les datas pins sont en (4,5,6,7) d’après la documentation. La librairie LiquidCrystal est très bien réalisée : elle permet d’effacer l’écran (commande clear(), de scroller en automatique ou non, etc.). Pour plus d’informations, je vous conseille d’aller voir cette page. Par exemple, si nous ajoutons la commande lcd.blink() dans Loop() nous obtenons un curseur qui clignote derrière notre texte. On peut aussi faire clignoter le texte en utilisant alternativement les fonctions lcd.display() et lcd.nodisplay() et en insérant un delay(500) entre les deux par exemple. Mais le mieux est d’étudier les exemples livrés avec.
Que faire sans LiquidCrystal (ou comment faisait-on avant) ? Si vous souhaitez juste apprendre à utiliser la librairie, vous pouvez passer cette partie. Mais si vous êtes curieux et souhaitez comprendre comme la librairie fonctionne, vous pouvez consulter les élément ci-dessous. Dans la doc du Shield (programme C livré avec), nous trouvons que les commandes des touches sont les suivantes:
#define CMD_CLR 0x01 #define CMD_RIGHT 0x1C #define CMD_LEFT 0x18 #define CMD_HOME 0x02
Cela signifie que pour effacer l’écran, on peut utiliser LiquidCrystal.clear() ou bien envoyer une commande manuellement par un : digitalWrite(RS, LOW); pushByte(value); Cette fonction détermine si la commande est supérieure ou non à 0x0F pourtransformer cela en une commande sur 4 bits (les 4 premiers bits ou les 4 suivants qui sont envoyés séquentiellement). Elle utilise ensuite une autre fonction pushNibble() qui va envoyer sur chacun des 4 pins correspondant la valeur suivi à chaque fois d’un pulseEnablePin(). Cette dernière met le pin « Enable » à high pendant une microseconde. Cela reste assez difficile d’accès, mais cela vous donne un indice si vous devez vous-même développer des fonctions qui seraient supportées par votre LCD, mais pas par LiquidCrystal. Essai des autres exemples Avec le kit de développement, vous pourrez tester les programmes suivants (n’oubliez pas d’initialiser la librairie avec les bons paramètres comme ci-dessus) :
- Autoscroll : Affichage au fur et à mesure de chiffres et scroll de droite à gauche de tout l’écran
- Blink : un helloWorld comme ci-dessus avec un curseur clignotant juste à coté
- Cursor : idem à Blink, mais le curseur est un « _ »
- Display : c’est tout le texte qui clignotte !
- Scroll : on fait bouger un texte de droite à gauche et vice et versa en continu
Vidéo du tutoriel n°1
Posted: octobre 20th, 2010 under Tutoriels et cours.
Tags: arduino, LCD, LCD Keypad Shield, LiquidCrystal, shield


