clavier I2C en utilisant le microcontrôleur PIC18F4550

clavier I2C

Cette instructable explique comment l'interface avec un clavier 4 × 4 sur un bus I2C.

J'ai commencé ce projet parce que je voulais une plug and play modules d'entrée et de sortie pour le prototypage facile et rapide de mes projets électroniques (surtout avec les microcontrôleurs PIC). Bien sûr, vous pouvez utiliser les LED et les commutateurs DIP mais ils nécessitent beaucoup de broches sur votre micro-contrôleur et vous avez seulement binaire E / S.

clavier I2C en utilisant le microcontrôleur PIC18F4550

Dans une prochaine version du projet, je vais passer les composants PCB.

Composants

-1x PCF8574 puce I2C (8-bit à distance d'extension I / O pour I2C-bus)
-1x 4 × 4 Clavier
-2x 2,2 kOhm résistances pull-up
-1x PIC18F4550 (ou un autre dispositif maître I2C programmable)

Les composants en option (dépend de sortie):

-1x puce I2C PCF8574
-1x affichage à 7 segments
-7x résistance 330 Ohm
-1x série dongle usb

clavier I2C en utilisant le microcontrôleur PIC18F4550

Du fait que le bus I2C utilise seulement 4 fils (puissance, au sol, d'horloge et de données), le circuit est très microcontrôleur simple.The (MCU) et la puce I2C sont tous deux connectés à la 5 V à partir de la source d'alimentation. Dans mon cas, le circuit est alimenté par mon programmeur MCU qui obtient l'alimentation du port USB de mon ordinateur.

La puce 8 broches I / O du I2C sont connectés aux broches 8 du clavier. Il est plus facile d'écrire le code si nous faisons les connexions dans un ordre logique. Je reliait les repères de la colonne d'un côté de la puce et les broches d'une rangée de l'autre côté de la puce.

Les données (SDA) et d'horloge (SCL) de la puce I2C sont connectés à la broche de données et d'horloge du microcontrôleur.

Les deux lignes SCL et SDA sont pilotes « open drain ». Ce que cela signifie est que la puce peut conduire sa sortie faible, mais il ne peut pas conduire élevé. Pour la ligne pour pouvoir aller haut, vous devez fournir des résistances pull-up à l'5v. Il devrait y avoir une résistance kOhm 2,2 de la ligne SCL à la ligne 5v et un autre de la ligne SDA à la ligne 5v. Vous avez seulement besoin d'un ensemble de résistances de traction pour l'ensemble du bus I2C.

3 bits de l'adresse à 8 bits du dispositif est fixé par la connexion des broches d'adresse à 5V ou à la terre.

La sortie série (UART / rs232) va à mon numéro de série dongle USB qui est connecté à mon pc.

La deuxième puce PCF8574 est connecté au bus I2C en connectant la ligne de données et d'horloge à la ligne de données et d'horloge à partir de la première puce.

Pour la deuxième puce nous avons besoin d'une adresse différente, donc je connecté la première broche d'adresse à 5 V au lieu du sol.

L'anode commune des afficheur 7 segments est reliée à la 5 V à partir de la source d'alimentation. Les autres broches sont reliées avec les broches d'E / S de la puce I2C (en utilisant un courant de 330 Ohm résistances de limitation).

Étape 3: Code

Le code met en œuvre la routine standard de balayage du clavier en lisant et en écrivant à la puce I2C. Le clavier est analysé par la sélection d'une colonne, puis en lisant les lignes pour voir wich l'un des boutons est enfoncé.

Articles Liés