Cours:InfoS2 tdInput
Révision datée du 6 février 2024 à 10:03 par Bjacquot (discussion | contributions) (→Travail à réaliser)
Pensez à mettre sur la 1ère ligne de votre code : // Compiler: Avrgcc device: nomDuMicrocontroleur
Sommaire
Exercice : scrutation des entrées
2 leds et 2 bps sont connectés sur un attiny13.
- une led rouge sur la broche PB2
- une led verte sur la broche PB0
- le bouton A sur la broche PB5
- le bouton B sur la broche PB4
Ecrire les programmes pour répondre aux questions suivantes :
- allumer la led rouge tant que le bouton A est allumé
- allumer la led verte tant que le bouton B est allumé
- faire clignoter la led verte tant que les 2 boutons sont appuyés
fichier pour simuler avec simulIDE : microc_td2-scrutation.sim1
Exercice : utilisation d'un clavier matriciel
Afin de limiter le nombre de broches nécessaires, les claviers matriciels sont organisés en ligne et colonne.
Connections
- connexions dans le clavier :
- les boutons sur une même ligne sont tous reliés ensemble (même côté du bouton)
- les boutons sur une même colonne sont tous reliés ensemble (le côté non utilisé pour les lignes)
- connexions sur le µcontrôleur :
- toutes les lignes sont reliées sur le même PORT
- toutes les colonnes sont reliées sur le même PORT
- il peut y avoir 2 PORT différents pour ligne et colonne
Principe
Afin de détecter le bouton sur lequel on appuie, il faudra :
- trouver sur quelle ligne un bouton est appuyé
- trouver sur quelle colonne un bouton est appuyé
Le principe est symétrique pour ligne et colonne.
On décrira le principe pour détecter le numéro de ligne :
- on place les colonnes en sortie à l'état 0
- on active les résistances de pull-up sur les entrées (les lignes)
- on observe l'état des entrées (les lignes)
Travail à réaliser
fichier pour simuler avec simulIDE : progmicroc_Digicode.sim1
- écrire un programme qui détecte l'appui sur la touche 3
- configurer de façon adéquate les broches en e/s
- activer la résistance de pull-up
- allumer/éteindre une led suivant l'état de la touche
- étendre le principe en détectant l'appui sur une touche de la ligne 1
- trouver le numéro de la ligne sur laquelle on appuie
- trouver le numéro de colonne sur laquelle on appuie
- indiquer la touche appuyée
Exercice : événement d'une entrée par interruption
Soit le système µcontrôleur avec les caractéristiques suivantes :
- atmega328 à 1MHz
- 4 leds sur les broches
- PC4
- PC0
- PB5
- PB1
- 2 boutons sur les broches
- PD2 (INT0) avec résistance de tirage câblée
- PD3 (INT1) sans résistance de tirage
fichier pour simuler avec simulIDE : microc_tdBpsInterruption.sim1
On utilisera les interruptions INT0 et INT1 associées aux broches PD2 et PD3 pour observer les changements d'état des boutons. Se référer à cette page au besoin
- change l'état de la led PC4 à chaque appui sur le bouton PD2
- change l'état de la led PC0 à chaque appui sur le bouton PD3
- allumer la led PB5 à l'appui sur PD2 et l'éteint lors de l'appui sur PD3
- met en route/arrête le clignotement de la led PB1 à chaque appui sur PD2