4x3 4x4 Clavier matricé Interface avec Atmel Microcontrôleurs AVR
Comment tout faire avec AVRs
Chaque i / o port AVR dispose de trois registres connexes PortX, DDRx et pinx. Par exemple le port A a
- PORTA Port Driver - lorsqu'un bit est réglé sur 1, il apparaît comme HIGH à savoir 5v. Mais c'est le cas seulement si ce bit est SORTIE. Si elle est entrée, la mise en un bit à 1 permet au pullup interne sur ce bit.
- DDRAD ATA D RIENTATION R REGISTRE - Faire une broche sur que le port comme IN ou OUT. Lorsque le bit est 1, on représente la sortie. Lorsque le bit est 0 représente entrée. état d'entrée est aussi appelé tristate ou de l'état à Z élevé.
- PINA - Lire pour obtenir le niveau (HAUT ou BAS) à la broche i / o réelle. Il est lu lorsque la broche est fait d'entrée.
Alors maintenant, vous savez
- Comment faire tout i / o ligne d'entrée (Z élevé) ou de sortie.
- Comment activer registre pullup interne sur les lignes d'entrée.
- Comment lire la valeur qui est présente sur les lignes d'entrée.
S'il vous plaît voir le tutoriel suivant pour plus de précisions.
Pourquoi nous faisons d'autres colonnes à haute impédance tandis qu'une colonne est aplanie?
Supposons que nous le numéro de colonne sélectionnée C0, de sorte que nous faisons LOW (i.e.. GND ou 0 logique), dans le même temps on fait toutes les autres colonnes d'impédance élevée (à savoir en entrée). Si nous ne faisons pas d'autres lignes haute impédance (ou entrée à trois états), ils sont en mode de sortie. Et en mode de sortie, ils doivent être soit LOW (GND ou 0 logique) ou HIGH (5v ou logique 1). Nous ne pouvons pas faire d'autres lignes LOW comme on peut sélectionner une seule ligne à la fois et C0 est déjà faible que par hypothèse. Donc, le seul autre état possible est toutes les autres colonnes sont élevées. Ceci est illustré dans la figure ci-dessous. La couleur rouge sur la colonne indique l'état haut tandis que le vert est à l'état bas.
Voilà pourquoi toutes les autres colonnes sont maintenues à trois états (ni bas, ni HIGH), mais l'impédance d'entrée très élevée qui empêchent source ou puits de courant d'eux. Donc, si nous avons gardé C1 à l'état haute impédance, il permettra pas le passage du courant à la masse sur C0.
avr-gcc code C pour 4 × 3 Clavier à matrice
Le code ci-dessus de faire usage de la bibliothèque LCD. Vous pouvez obtenir plus d'informations sur Bibliothèque LCD ici: -
Matériel pour 4 × 3 Clavier à matrice et de l'interface AVR.
Le circuit de test sera construit autour ATmega32microcontroller. Le dispositif de sortie est un 16 × 2 lcd modul e. Nous avons donc mis en place un circuit ATmega32 de base. Le circuit aura les éléments suivants: -
- ATmega32 MCU
- 16MHz cristal
- Circuit de réarmement.
- 5v Circuit d'alimentation.
- ISP (Pour la programmation)
- Module LCD.
- Module LCD Réglage du contraste pot.
ATmega32 + LCD + clavier Interface.
Nous avons construit le circuit ci-dessus sur un conseil Low Cost AVR développement. mais il ne possède un connecteur intégré du module LCD de sorte que vous devez souder vous-même à la zone de libre (et aussi faire le câblage).
Compiler le programme ci-dessus en utilisant AVR Studio (compilateur est-gcc AVR). Et enfin brûler le programme en utilisant ISP programmeur au ATmega32. Les bits de fusibles doivent être définis comme suit pour activer cristal externe en tant que source d'horloge.
- Haut fusible = C9 (valeur hexadécimale)
- Fusible bas = FF (valeur hexadécimale)
Après avoir brûlé le fichier HEX à MCU, enfin, vous êtes prêt à alimenter la configuration. Une fois sous tension, l'écran LCD Si vous montrer le code d'activation de la touche enfoncée sur le clavier. Ce compléter notre test.
Dépannage
- NO affichage sur l'écran LCD
- Assurez-vous que l'AVR Project Studio est mis en place pour la fréquence d'horloge de 16 MHz (16000000Hz)
- Réglez le contraste Adj Pot.
- Appuyez sur reset quelques fois.
- Marche / Arrêt plusieurs fois.
- Connectez l'écran LCD uniquement comme indiqué par le schéma ci-dessus.
- Pas de réponse à appuyer sur la touche.
- Vérifiez que le clavier est connecté sur PORTA uniquement.
- Si vous souhaitez attacher le clavier sur le port différent, modifiez la ligne 80 sur le code source (keypad.c)
- A // #define PAVÉ PAVÉ EST FIXÉ SUR PORTA
- Erreurs de compilation
- Beaucoup de gens ces jours-ci a fait un bond à la programmation embarquée sans un concept solide de la science informatique et de la programmation. Ils ne connaissent pas les bases du compilateur et manquent d'expérience. Pour en savoir de base des compilateurs et leur PC de travail / MAC / Linux (je veux dire un ordinateur de bureau ou portable) sont une grande plate-forme. Mais le système embarqué est pas bon pour l'apprentissage de compilateurs et les bases de la programmation. Il est pour ceux qui ont déjà ces compétences et que vous voulez juste l'appliquer.
- Assurez-vous que tous les fichiers appartenant à la bibliothèque LCD sont « ajoutés » au « Projet ».
- -gcc est AVR installé. (La distribution binaire de Windows est appelé WinAVR)
- Le type de projet AVR Studio est AVR GCC.
- Bases de l'installation et l'utilisation de l'AVR Studio avec gcc est-AVR décrit dans ce tutoriel
- Comment ajouter des fichiers au projet est décrit dans ce tutoriel.
- Conseils généraux pour les débutants
- Utilisez des planches de développement et prêtes à l'emploi des programmeurs.
- Essayez de suivre la série AVR Tutorial dès le début. (Rappelez-vous la liste couvre quatre pages, page 1 est plus récent ainsi la plus avancée)
Vidéo Pour 4 × 3 Clavier Interfacing.
Vidéos de l'utilisateur
J'apprécie vraiment l'approche de Brendin sur l'obtention de son problème résolu et le portage avec succès la démo à ATmega48. Ce que je recommande aux utilisateurs est d'obtenir vos bases solides. Vous avez besoin d'une compréhension complète du concept de langage C et tous les détails de l'appareil que vous programmez, cela vous permettra d'économiser beaucoup de temps. Alors, s'il vous plaît aller lire le bon livre sur C et la fiche technique de AVRs avant de vous plonger dans! - Avinash
aussi vite que nous le pouvons, nous essayons de publier des tutoriels débutants amical pour les sujets plus récents dans le système embarqué. Si vous aimez ces tutoriels et ils vous ont aidé à résoudre des problèmes, s'il vous plaît nous aider en retour. Vous pouvez faire un don de tout montant que vous le souhaitez en toute sécurité avec carte de crédit ou de débit ou Paypal.
Nous serions très reconnaissants pour votre aide genre.
Face à un problème de votre projet embarqués, l'électronique ou la robotique? Nous sommes ici pour aider!
Publier une demande d'aide.
Le programme fonctionne sans aucun doute à cet égard.
Mais, vous pouvez rencontrer des problèmes importants rencontrés dysfonctionnements si vous ne pas ajouter un délai 1ms ou 2ms avant de lire les entrées surtout lorsque vous exécutez à 16MHz.
Il est toujours conseillé d'ajouter un délai 1ms ou 2ms après avoir modifié l'état des broches du port avant de lire.
Si quelqu'un rencontre un problème avec l'interface avec le programme ci-dessus, ajouter de bien vouloir « _delay_ms (1); » dans la ligne 122 et entre les lignes 123 et 124. Si le problème persiste augmenter le délai à 2ms.
Articles récents
Facebook Like Box

CDPWD3436 Baldor - Fourniture MRO




