Dans ce tutoriel, nous allons interfacer un clavier 4x4 (16 touches) avec le microcontrôleur ATMEGA32A. Nous savons que le clavier est l'un des périphériques d'entrée les plus importants utilisés dans les projets électroniques. Le clavier est l'un des moyens les plus simples de donner des commandes ou des instructions à un système électronique.
Composants requis
Matériel: ATMEGA32, alimentation (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), condensateur 100uF, condensateur 100nF, résistance 10KΩ (8 pièces).
Logiciel: Atmel studio 6.1 ou Atmel studio 6.2, progisp ou flash magic.
Schéma de circuit et explication de fonctionnement
Dans le circuit PORTB de ATMEGA32 est connecté au port de données LCD. Ici, il faut se rappeler de désactiver la communication JTAG dans PORTC ou ATMEGA en changeant les octets de fusible, si l'on veut utiliser le PORTC comme port de communication normal. Dans l'écran LCD 16x2, il y a 16 broches sur tout s'il y a un rétro-éclairage, s'il n'y a pas de rétro-éclairage, il y aura 14 broches. On peut alimenter ou laisser les broches du rétroéclairage. Or, dans les 14 broches, il y a 8 broches de données (7-14 ou D0-D7), 2 broches d'alimentation en énergie (1 et 2 ou VSS et VDD ou GND et + 5v), 3 ème broches de la commande de contraste (VEE-contrôle l'épaisseur des caractères doivent être illustré) et 3 broches de commande (RS & RW & E).
Dans le circuit, vous pouvez observer que je n'ai pris que deux broches de contrôle, cela donne de la flexibilité, le bit de contraste et READ / WRITE ne sont pas souvent utilisés afin qu'ils puissent être court-circuités à la masse. Cela met l'écran LCD en mode de contraste et de lecture le plus élevé. Nous avons juste besoin de contrôler les broches ENABLE et RS pour envoyer des caractères et des données en conséquence.
Les connexions effectuées pour l'écran LCD sont indiquées ci-dessous:
PIN1 ou VSS à la terre
Alimentation PIN2 ou VDD ou VCC à + 5v
PIN3 ou VEE à la masse (donne le meilleur contraste pour un débutant)
PIN4 ou RS (sélection de registre) à PD6 de uC
PIN5 ou RW (lecture / écriture) à la terre (met l'écran LCD en mode lecture facilite la communication pour l'utilisateur)
PIN6 ou E (Activer) à PD5 de uC
PIN7 ou D0 à PB0 de uC
PIN8 ou D1 à PB1 de uC
PIN9 ou D2 à PB2 de uC
PIN10 ou D3 à PB3 de uC
PIN11 ou D4 à PB4 de uC
PIN12 ou D5 à PB5 de uC
PIN13 ou D6 à PB6 de uC
PIN14 ou D7 vers PB7 de uC
Dans le circuit, vous pouvez voir que nous avons utilisé la communication 8 bits (D0-D7) mais ce n'est pas obligatoire, nous pouvons utiliser la communication 4 bits (D4-D7) mais avec le programme de communication 4 bits devient un peu complexe. Donc, à partir de la simple observation du tableau ci-dessus, nous connectons 10 broches de l'écran LCD au contrôleur dans lequel 8 broches sont des broches de données et 2 broches pour le contrôle.
Parlons maintenant du clavier, le clavier n'est rien d'autre que des touches multiplexées. Les boutons sont connectés sous une forme multiplexée pour réduire l'utilisation des broches du système de contrôle.
Considérez que nous avons un clavier 4x4, dans ce clavier, nous avons 16 boutons, dans les cas normaux, nous avons besoin de 16 broches de contrôleur pour interfacer 16 boutons, mais ce n'est pas bon du point de vue du système de contrôle. Cette utilisation des broches peut être réduite en connectant les boutons sous forme de multiplex.
Par exemple, considérons que nous avons 16 boutons et que nous voulons l'attacher à un contrôleur pour former un clavier, ces touches sont disposées comme indiqué sur la figure:
Ces boutons sont reliés par des colonnes communes comme indiqué sur la figure:
Comme le montre la figure, les extrémités non marquées de tous les quatre boutons sont glissées pour former une colonne, et donc pour 16 clés, nous avons quatre colonnes.
Si nous oublions les connexions des colonnes ci-dessus et connectons les extrémités marquées communes de tous les quatre boutons ensemble pour former une ligne:
Comme le montre la figure, pour 16 touches, nous aurons quatre lignes comme indiqué sur la figure.
Maintenant, quand ils sont tous les deux vus ensemble, nous obtenons quelque chose comme le circuit ci-dessous:
Ici, nous avons connecté 16 touches sous une forme multiplexée afin de réduire l'utilisation des broches du contrôleur. Par rapport au premier cas de 16 clés connectées, nous avions besoin de 16 broches sur le contrôleur, mais maintenant, après le multiplexage, nous avons simplement besoin de 8 broches de contrôleur pour connecter 16 clés.
Normalement, c'est ce qui est présenté à l'intérieur d'un clavier:
Comme le montre la figure ci-dessus, il y a 16 touches dans le clavier ci-dessus et chacune de ces touches représente un bouton dans la configuration de bouton multiplexé. Et il y a aussi des connexions à 8 broches comme indiqué dans la figure ci-dessus symbolisant une connexion multiplexée.
Maintenant pour travailler:
Le clavier comporte ici quatre colonnes et quatre lignes, pour l'identification du bouton enfoncé, nous allons utiliser la méthode de référence croisée. Ici, nous allons d'abord connecter toutes les colonnes ou toutes les lignes à vcc, donc si les lignes sont connectées au vcc commun, nous allons prendre les colonnes comme entrées pour le contrôleur.
Maintenant, si le bouton un est enfoncé comme indiqué sur la figure:
Après cela, un courant traverse le circuit comme indiqué dans la figure ci-dessous:
Nous avons donc C1 haut, pour une pression sur un bouton. En ce moment même, nous allons déplacer les ports d'alimentation et d'entrée, c'est-à-dire que nous allons alimenter les colonnes et prendre des lignes comme entrées, Par cela, il y aura un flux de puissance comme indiqué dans la figure ci-dessous:
Donc, pour la ligne, nous avons R1 élevé.
A partir de maintenant, nous avons C1 haut dans le premier cas et R1 haut dans le second cas, donc nous avons la position de la matrice du bouton d'où le nombre «un».
Si le deuxième bouton est enfoncé, nous aurons C1 comme colonne mais la logique haute que nous obtenons dans la colonne commune sera «R2». Nous aurons donc C1 et R2, donc nous aurons la position de la matrice du deuxième bouton.
C'est ainsi que nous allons écrire le programme, nous allons connecter huit broches du clavier à huit broches du contrôleur. Et pour commencer, nous alimentons quatre broches du contrôleur pour alimenter quatre rangées de clavier, à ce moment les quatre autres broches sont prises comme entrées. Lorsque le bouton est enfoncé, la broche de la colonne correspondante est tirée vers le haut et que la broche du contrôleur est tirée vers le haut, cela sera reconnu pour changer l'entrée en alimentation et l'alimentation en entrée, nous aurons donc des lignes comme entrées.
Par cela, nous obtenons le bouton pressé par l'utilisateur. Les adresses de cette matrice sont dirigées vers le numéro correspondant, et ce numéro est affiché sur l'écran LCD.
Le fonctionnement de l'interfaçage du clavier avec le microcontrôleur avr est expliqué étape par étape dans le code C donné ci-dessous. Vous pouvez également vérifier: l'interfaçage du clavier avec le microcontrôleur 8051.