| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| fr:examples:digi:switch [2010/03/09 13:25] – sdeniaud | fr:examples:digi:switch [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
|---|
| Les interférences rendent l'utilisation des interrupteurs plus compliquée. Une des méthodes principales pour éviter des résultats indéterminés est de connecter l’entrée du micro-contrôleur à la terre ou au potentiel d’entrée au travers d'une résistance. Une résistance remplissant cette fonction est appelée résistance de rappel vers le niveau bas (//pull-down//) ou vers le niveau haut (//pull-up//). Habituellement la résistance d’une résistance //pull-down// ou //pull-up// varie de 1 kΩ à 1 MΩ. Quand l’interrupteur est ouvert, l'entrée est à la charge de la tension de la résistance. Quand l’interrupteur est fermé, l'entrée reôit la tension de l'interrupteur puisque la résistance de ce dernier est bien plus faible (proche de zéro) que celle de la résistance. C’est typiquement ce qu’on appelle une //volt-box//. | Les interférences rendent l'utilisation des interrupteurs plus compliquée. Une des méthodes principales pour éviter des résultats indéterminés est de connecter l’entrée du micro-contrôleur à la terre ou au potentiel d’entrée au travers d'une résistance. Une résistance remplissant cette fonction est appelée résistance de rappel vers le niveau bas (//pull-down//) ou vers le niveau haut (//pull-up//). Habituellement la résistance d’une résistance //pull-down// ou //pull-up// varie de 1 kΩ à 1 MΩ. Quand l’interrupteur est ouvert, l'entrée est à la charge de la tension de la résistance. Quand l’interrupteur est fermé, l'entrée reôit la tension de l'interrupteur puisque la résistance de ce dernier est bien plus faible (proche de zéro) que celle de la résistance. C’est typiquement ce qu’on appelle une //volt-box//. |
| |
| [{{ :examples:digi:switch:switch_input_pull-up.png?200|Schéma de connexion d’un interrupteur avec une résistance pull-up }}] | [{{ :examples:digi:switch:switch_input_pull-up.png?200|Schéma de connexion d’un interrupteur avec une résistance //pull-up//}}] |
| |
| Avec une résistance //pull-up// ou //pull-down//, un simple interrupteur à deux contacts peut être utilisé comme capteur, l’interrupteur connecte l’entrée avec un potentiel et la résistance à l’autre potentiel. Habituellement, les micro-contrôleurs ont une option intégrée de résistance //pull-up// ou //pull-down//, il n’y a donc pas besoin d’ajouter de résistance au circuit. Par exemple, les micro-contrôleurs AVR ont des résistances //pull-up// de 20 kΩ – 50kΩ sur leurs broches d'E/S. | Avec une résistance //pull-up// ou //pull-down//, un simple interrupteur à deux contacts peut être utilisé comme capteur, l’interrupteur connecte l’entrée avec un potentiel et la résistance à l’autre potentiel. Habituellement, les micro-contrôleurs ont une option intégrée de résistance //pull-up// ou //pull-down//, il n’y a donc pas besoin d’ajouter de résistance au circuit. Par exemple, les micro-contrôleurs AVR ont des résistances //pull-up// de 20 kΩ – 50kΩ sur leurs broches d'E/S. |
| |
| |
| ===== Entrainement ===== | ===== Pratique ===== |
| |
| |
| Sur le module entrée-sortie du //home laboratory//, il y a trois interrupteurs de type bouton poussoir. Ces interrupteurs connectent les barrettes du microcontrôleur à la terre, mais pas directement par l’intermédiaire de la résistance, la raison pour cela est d’éviter d’avoir un petit circuit en appuyant sur le bouton lorsque la barrette est configurée comme une sortie. L’interrupteur a aussi une résistance pull-up, mais celle-ci a une plus grande résistivité que les résistances de protection, ainsi en appuyant sur le bouton, il y a approximativement une tension de 0V dans la barrette correspondante. | Sur le module entrée-sortie du //HomeLab//, il y a trois interrupteurs de type bouton poussoir. Ces interrupteurs connectent les broches du micro-contrôleur à la terre, mais pas directement par l’intermédiaire d'une résistance, afin d’éviter d’avoir un petit circuit en appuyant sur le bouton lorsque les broches sont configurées comme des sorties. L’interrupteur a aussi des résistances //pull-up//, mais celle-ci a une plus grande résistance que les résistances de protection. Ainsi en appuyant sur le bouton, il y a approximativement une tension de 0V dans la broche correspondante. |
| |
| Les interrupteurs sont sur les barrettes PC0, PC1 et PC2. Pour lire le statut des interrupteurs, les barrettes correspondantes du microcontrôleur peuvent être configurées comme des entrées. Il n’est pas nécessaire de mettre la résistance pull-up interne de l’AVR, parce que la barrette est déjà équipée d’une résistance externe. Lorsque le bouton est appuyé vers le bas, la barrette correspondante est à la valeur 0, lorsque le bouton est relâché, cette valeur passe à 1, l’utilisation de LED d’indication est possible. | Les interrupteurs sont sur les broches PC0, PC1 et PC2. Pour lire le statut des interrupteurs, les broches correspondantes du micro-contrôleur doivent être configurées comme des entrées. Il n’est pas nécessaire de mettre la résistance //pull-up// interne de l’AVR en fonctionnement, parce que la broche est déjà équipée d’une résistance externe. Lorsque le bouton est enfoncé, le bus de la broche correspondante est à la valeur 0, lorsque le bouton est relâché, cette valeur passe à 1. L’utilisation de LED est possible. pour voir si le micro-contrôleur comprend l'action sur le bouton. |
| |
| Le code source suivant permettant l’utilisation des boutons est basé sur la librairie //home lab//, qui a été présentée précédemment dans l’exemple des LED. | L'exemple de code source suivant permettant l’utilisation des boutons est basé sur la bibliothèque de broches du //HomeLab//, qui a été présentée précédemment dans l’exemple des LED. |
| |
| <code c> | <code c> |
| |
| |
| Dans l’exemple donné les LEDs et les boutons sont définis dans une liste – cela permet des les utiliser dans une boucle //for//. En commençant ce programme, les barrettes des LEDs sont configurés comme des sorties et les boutons comme des entrées. Puis dans le programme, une boucle sans fin récupère l’état des boutons et détermine l’état des LEDs correspondantes. Le premier bouton allume la LED verte, le deuxième la jaune et le troisième la rouge. | Dans cet exemple, les LEDs et les boutons sont définis comme des listes – cela permet des les utiliser dans une boucle ''For''. Lors du lancement du programme, les broches des LEDs sont configurées comme des sorties et les boutons comme des entrées. Puis dans le programme, une boucle sans fin récupère constamment l’état des boutons et détermine l’état des LEDs correspondantes. Le premier bouton allume la LED verte, le deuxième la jaune et le troisième la rouge. |
| |
| /* | /* |