Cours:InfoS2 tdInput : Différence entre versions
(6 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | + | {{EnTeteTdInfoS2|InfoS2_tdInput_corrige}} | |
− | [[Cours: | + | On utilisera à bon escient la page : [[Cours:CoursM2103#Lire_l'état_d'une_entrée]] |
− | |||
− | |||
− | |||
− | |||
=Exercice : scrutation des entrées= | =Exercice : scrutation des entrées= | ||
Ligne 26 : | Ligne 22 : | ||
fichier pour simuler avec simulIDE : [[Media:microc_td2-scrutation.sim1|microc_td2-scrutation.sim1]] | fichier pour simuler avec simulIDE : [[Media:microc_td2-scrutation.sim1|microc_td2-scrutation.sim1]] | ||
− | |||
− | + | =Exercice : utilisation d'un clavier matriciel= | |
− | * | + | [[Cours:InfoS2_tdClavierMatriciel_corrige|{{Vert|<big>'''Éléments de correction'''</big>}}]] |
− | * | + | |
− | * | + | [[Image:ClavierMatricielPrincipe.png|vignette]] |
− | ** | + | |
− | ** | + | 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 : [[Media:progmicroc_Digicode.sim1|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 | + | **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 |
Version actuelle datée du 14 février 2024 à 11:20
Pensez à mettre sur la 1ère ligne de votre code : // Compiler: Avrgcc device: nomDuMicrocontroleur
On utilisera à bon escient la page : Cours:CoursM2103#Lire_l'état_d'une_entrée
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