Modifications

Sauter à la navigation Sauter à la recherche
7 320 octets ajoutés ,  9 juillet 2016 à 16:59
Ligne 1 : Ligne 1 :  
== Qu'est ce qu'un KeyPad ==
 
== Qu'est ce qu'un KeyPad ==
Un KeyPad est typiquement un petit
+
Un KeyPad est typiquement un clavier de saisie numérique, il existe sous différente forme, en clavier/membrane souple ou clavier solide (en ABS).
    +
Le plus courant ne comporte que des chiffres (de 0 à 9 avec les caractères * et #).
 +
 +
Il en existe également quelques-uns peu plus évolués proposant une colonne supplémentaire pour que vous puissiez y placer vos propres fonctions.
 +
 +
[[Fichier:KeyPad.jpg|250px]]  [[Fichier:KeyPad-PVC.jpg|250px]]
 +
 +
Ce qui est sympathique avec les KeyPad, c'est que si vous n'avez pas besoin de la colonne complémentaire, il vous suffit simplement de l'ignorer (de ne pas la raccorder).
 +
 +
== Principe de fonctionnement ==
 +
 +
=== Principe électrique ===
 +
Le principe de fonctionnement d'un KeyPad est excessivement simple.
 +
 +
Un keypad n'est qu'une matrice de contact (de boutons). Quand un utilisateur appuie sur une touche il met une colonne en contact avec une ligne.
 +
C'est aussi simple que cela.
 +
 +
[[Fichier:KeyPad-schema.jpg]]
 +
 +
Dans le schéma ci-dessus, lorsque l'utilisateur presse:
 +
* la touche 9, il met en contact la ligne 3 et la colonne 3.
 +
* la touche B, il met en contact la ligne 2 et la colonne 4.
 +
* la touche 1, il met en contact la ligne 1 et la colonne 1.
 +
 +
'''Un autre exemple''' est celui du clavier PVC.
 +
 +
[[Fichier:KeyPad-PVC-schema.jpg|480px]]
 +
 +
Dans le cas de ce KeyPad, lorsque l'on presse la touche '''"6"''', la colonne 3 est mise en contact avec la ligne 2. Cela signifie que les contacts/broches 3 et 6 sont mises en contact.
 +
 +
=== Détection de la touche pressée ===
 +
Le principe est tout aussi simple mais avant ces quelques explications, vous devez savoir qu'Arduino dispose d'une librairie permettant d'utiliser facilement un KeyPad.
 +
 +
Pour effectuer la détection de touche sur un keyPad, le programme de votre microcontrolleur doit:
 +
# Initialiser toutes les broches colonnes sorties (et les mettre en niveau BAS).
 +
# Initialiser toutes les broches ligne en entrée (et les mettre en niveau HAUT).
 +
 +
Le processus de détection se fait comme suit:
 +
# Activer la colonne 1 (HAUT)
 +
## Lire ligne 1 --> Si Haut TOUCHE 1 pressée
 +
## Lire ligne 2 --> Si Haut TOUCHE 2 pressée
 +
## Lire ligne 3 --> Si Haut TOUCHE 3 pressée
 +
## Lire ligne 4 --> Si Haut TOUCHE A pressée
 +
# Désactiver la colonne 1 (BAS)
 +
# Activer la colonne 2 (HAUT)
 +
## Lire ligne 1 --> Si Haut TOUCHE 4 pressée
 +
## Lire ligne 2 --> Si Haut TOUCHE 5 pressée
 +
## Lire ligne 3 --> Si Haut TOUCHE 6 pressée
 +
## Lire ligne 4 --> Si Haut TOUCHE B pressée
 +
# Désactiver la colonne 2 (BAS)
 +
# Activer la colonne 3 (HAUT)
 +
## ... et ainsi de suite jusqu'à la colonne 4. 
 +
 +
=== Une librairie c'est mieux ===
 +
Pas besoin de développer un logiciel permettant de faire la lecture des KeyPad.
 +
 +
Arduino dispose de la librairie [[http://www.arduino.cc/playground/Code/Keypad KeyPad]].
 +
 +
Pour plus d'information sur cette librairie, vous pouvez vous rendre sur [http://www.arduino.cc/playground/Code/Keypad www.arduino.cc/playground/Code/Keypad].
 +
 +
L'exemple ci-dessous est basé sur la librairie KeyPad.
 +
 +
=== Librairie pour Arduino 1.0 ===
 +
 +
Il semblerait que la librairie KeyPad d'origine ne soit plus compatible avec Arduino 1.0.
 +
Si une version plus récente n'est pas encore disponible, vous pouvez facilement remédier au problème.
 +
 +
Voici la marche à suivre pour Arduino 1.0:
 +
* Téléchargez la librairie depuis [http://arduino.cc/fr/Main/LibrairieKeypad arduino.cc/fr/Main/LibrairieKeypad].
 +
* Installer le contenu de l'archive (du fichier ZIP) dans le répertoire librairies de votre Arduino IDE. Assurez-vous que les source de la librairie soit dans un sous répertoire /Keypad/ .
 +
* Localiser le fichier Keypad.h, ouvrez le et remplacez "#include <WProgram.h>" par "#include <Arduino.h>"
 +
* Rechargez votre Arduino IDE, recompilez et le tour est joué.
 +
 +
== Exemple ==
 +
L'exemple suivant fait la détection de la touche pressée et renvoi son nom sur la connexion série (Arduino IDE).
 +
 +
Il est basé sur le KeyPad proposé chez MC Hobby. Keypad dont le raccordement électrique correspond à ce qui suit.
 +
 +
=== Détail du brochage du KeyPad ===
 +
 +
[[Fichier:Keypad-detail.jpg|350px]] [[Fichier:KeyPad-PVC-schema.jpg|350px]]
 +
 +
=== Montage ===
 +
 +
En plus d'utiliser le keypad, nous avons aussi profité de l'occasion pour exploiter notre {{pl|82|assortiment de câble pour Breadboard}} (simple, pratique et efficace).
 +
 +
[[Fichier:Keypad-montage.jpg]]
 +
 +
Raccordement:
 +
{| class="wikitable" border="1"
 +
|-
 +
| align="center" | Keypad
 +
| align="center" | Arduino
 +
|- style="font-size: 90%"
 +
| align="left" | L1
 +
| align="left" | Pin 9
 +
|- style="font-size: 90%"
 +
| align="left" | L2
 +
| align="left" | Pin 8
 +
|- style="font-size: 90%"
 +
| align="left" | L3
 +
| align="left" | Pin 7
 +
|- style="font-size: 90%"
 +
| align="left" | L4
 +
| align="left" | Pin 6
 +
|- style="font-size: 90%"
 +
| align="left" | C1
 +
| align="left" | Pin 5
 +
|- style="font-size: 90%"
 +
| align="left" | C2
 +
| align="left" | Pin 4
 +
|- style="font-size: 90%"
 +
| align="left" | C3
 +
| align="left" | Pin 3
 +
|- style="font-size: 90%"
 +
| align="left" | C4
 +
| align="left" | Pin 2
 +
|}
 +
 +
=== Programme ===
 +
Chargez le programme suivant sur votre Arduino et ouvrez le moniteur série.
 +
 +
Il est prévu pour le KeyPad à Membrane mais vous pourrez facilement le modifier l'autre KeyPad
 +
 +
Lorsque vous pressez une touche, cette dernière est affichée dans le moniteur série.
 +
<syntaxhighlight lang="c">
 +
//  FR: Exemple d'utilisation de la librairie KeyPad - Compatible Arduino V1.0
 +
//  EN: Sample of use of the KeyPad library - Compatible Arduino V1.0
 +
//
 +
// FR: Si vous voulez utiliser ce programme sur un Arduino V1.0 vous aurez probablement
 +
//    besoin de télécharger la librairie Keypad et de la modifier (une seule ligne) pour
 +
//    pouvoir la compiler sans erreur.
 +
//    Pour plus de détail, voir cet article sur le Wiki de MC Hobby.
 +
//        http://mchobby.be/wiki/index.php?title=KeyPad#Librairie_pour_Arduino_1.0
 +
//
 +
// EN: If you want to compile this program under Arduino V1.0, you will probably need to
 +
//    download the Keypad library and to modify it (only one line). After the modification
 +
//    The program will compile without error.
 +
//      For more details, please see this article on the MC Hobby Wiki
 +
//        http://mchobby.be/wiki/index.php?title=KeyPad#Librairie_pour_Arduino_1.0
 +
//
 +
// Source: http://arduino.cc/fr/Main/LibrairieKeypad
 +
// License: CC-BY-SA for source
 +
// License: CC-BY-SA for modification (by MC Hobby, http://www.mchobby.be )
 +
//
 +
#include <Keypad.h>
 +
 +
const byte ROWS = 4; //4 Lignes (4 Lines, 4 rows)
 +
const byte COLS = 4; //4 Colonnes (4 columns)
 +
char keys[ROWS][COLS] = {
 +
  {'1','2','3', 'A'},
 +
  {'4','5','6', 'B'},
 +
  {'7','8','9', 'C'},
 +
  {'*','0','#', 'D'}
 +
};
 +
 +
// FR: Connecté sur les lignes du KeyPad (L1, L2, L3, L4)
 +
// EN: Connect to the row pinouts of the keypad
 +
byte rowPins[ROWS] = {9, 8, 7, 6};
 +
 +
// FR: Connecté sur les colonnes dy KeyPad (C1, C2, C3, C4)
 +
// EN: connect to the column pinouts of the keypad
 +
byte colPins[COLS] = {5, 4, 3, 2};
 +
 +
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
 +
 +
void setup(){
 +
  Serial.begin(9600);
 +
}
 +
 +
void loop(){
 +
  char key = keypad.getKey();
 +
 +
  if (key != NO_KEY){
 +
    Serial.println(key);
 +
  }
 +
}
 +
</syntaxhighlight>
 +
 +
Voici le résultat que nous obtenons avec un Arduino R3 & Arduino 1.0
 +
  <nowiki>*
 +
1
 +
5
 +
2
 +
4
 +
7
 +
A
 +
5
 +
B
 +
8
 +
C
 +
</nowiki>
    
== Où Acheter ==
 
== Où Acheter ==
MC Hobby propose à la vente un KeyPad 16 touches, ce qui permet d'avoir les touches numérique habituelle ainsi qu'une colonne de complémentaire avec les lettres A,B,C & D.
+
* {{pl|83|un KeyPad 16 touches à Membrane}}, ce qui permet d'avoir les touches numérique habituelle ainsi qu'une colonne de complémentaire avec les lettres A,B,C & D.
 +
* {{pl|910|un KeyPad 16 touche en PVC}}
 +
* {{pl|489|un KeyPad 4 touches à Membrane}}
 +
 
 +
{{MCH-Accord}}
29 917

modifications

Menu de navigation