Les entrées / sorties de la platine Arduino UNO
Les entrées / sorties de la platine Arduino UNO
Dans cette vidéo, je vous présente les différentes instructions pour interagir avec les entrées / sorties de la platine Arduino Uno. Vous y découvrirez les instructions pinMode(), digitalWrite(), digitalRead(), analogRead() et analogWrite().
Résumé
Configurer une broche en entrée/sortie.
Pour configurer une broche de l'Arduino en entrée ou sortie, on utilise l'instruction pinMode(); dans la partie Setup {} du programme.
pinMode (Paramètre1, Paramètre2); // permet de configurer une broche définie en entrée ou une sortie.
Paramètre1: Prend pour valeur le repère ou la variable déclaré de la broche que l'on souhaite configurer.
Paramètre2: Prend pour valeur INPUT ou OUTPUT et défini une broche en entée ou en sortie.
Exemple:
Conseil: il est préférable d’affecter des variables aux broches pour apporter plus de souplesse aux branchements de vos projets. Dans le cas ou vous devriez réaliser des modifications de branchements cela évite de rechercher et modifier à plusieurs points du programme.
Le PULL-UP / PULL-DOWN.
Le PULL-UP est un moyen de s'affranchir des parasites ou des dysfonctionnements anormale quant il y à absence de signale sur une broche d'entrée. Une lecture plus fiable et un maintient d'état bien définis haut ou bas. L'installation d'une résistance de 10kohm raccordé au +5 V permet de réaliser un PULL-UP. Pour le PULL-DOWN c'est l'inverse le raccordement de la résistance se fait au 0V GND.
Branchement PULL-UP.
La mise en place d'une résistance de PULL-UP implique une lecture inversé des entrées. Au repos l'état logique est 1 soit HIGH et activé 0 soit LOW.
Branchement PULL-DOWN.
En mode PULL-DOWN il n'y a pas d'inversion.
L'Arduino est équipé de résistances interne de PULL-UP que l'on peut activer en configurant a l'aide de l'instruction pinMode(); paramétré INPUT_PULLUP.
Exemple:
A savoir :
- Si vous avez besoin de sorties supplémentaires vous pouvez configurer les entrées analogiques de A0 à A5.
Lire une entrée.
La lecture d'une broche configurée en entrée se fait par l'instruction digitalRead();. Cette instruction ne lit que les états logiques 0 ou 1 soit HIGH ou LOW.
digitalRead(Paramètre); //Numéro de broche ou variable affectée.
Paramètre: Prend pour valeur le numéro de la broche à lire. Peut aller de 2 à 13.
Lorsque qu'une lecture est faite il faut mémoriser sont état logique lors du cycle programme et charger cette valeur dans une variable pour l'exploiter.
Exemple:
A savoir:
- Lorsque une entrée reçoit un signal inférieur à 1V ce signal équivaut à un état bas et lorsque l'entrée reçoit un signal supérieur à 3,5V cela équivaut à un état haut.
Piloter une sortie
Les broches configurées en sortie peuvent être pilotées de deux façon possible dans les fonctions Setup ou Loop.
- En TOUT ou RIEN de façon logique soit 0 ou 1, HIGH ou LOW.
- En PWM modulation de longueur d’impulsion (M.L.I.) soit de 0 à 255.
Tout ou rien.
Le pilotage de façon logique d'une broche configurée en sortie se fait à l'aide de l'instruction digitalWrite();.
digitalWrite (Paramètre1, Paramètre2); //Permet de piloter une sortie en digital.
Paramètre1: Prend pour valeur le numéro de la broche que l'on souhaite piloter.
Paramètre2: Prend pour valeur HIGH, LOW, 0 ou 1. Pour définir l'état que l'on souhaite appliquer à la broche sectionner HIGH ou 1 en état haut (5V) LOW ou 0 en état bas (0V).
Lorsque l'on a donné une instruction d'état haut ou bas à une sortie, celle-ci la conserve jusqu'à ce que l'instruction soit redéfinie pour un état inverse.
Exemple
P.W.M.-Modulation de longueur d'impulsion (M.L.I.)
PWM: signifie Pulse Width Modulation, Modulation de Largeur d'Impulsions MLI en français.
Le principe du PWM est de modifier la largeur de son impulsion à une fréquence fixe.
La modulation de cette impulsion est ce que l'on appelle le rapport cyclique qui s'exprime en pourcentage ou en ratio de 0 à 1.
Sur la platine Arduino Uno, cette fréquence est de 490Hz sur la plupart des broches et de 980 Hz sur les 5 et 6. Le rapport cyclique est exprimé sur un octet soit une valeur de 0 à 255.
Le pilotage de façon modulé d'une broche configurée en sortie se fait à l'aide de l'instruction analogWrite();.
analogWrite(Paramètre1, Paramètre2); //Permet de piloter une une sortie en digital.
Paramètre1: Prend pour valeur le numéro de la broche que l'on souhaite piloter.
Paramètre2: Prends une valeur comprise entre 0 et 255 pour un pilotage modulé. Permet une variation de tension entre 0 et 5V.
Exemple:
A savoir :
Calculer la valeur pour un rapport cyclique choisi:
- 256 * Rapport cyclique = Valeur en bit
- 256*50% = 128 bits
- 256*75%= 192 bits
Est-ce-que cette valeur est juste?! Je ne sais pas! j'aurais envie de soustraire 1 au résultat mais d'après ma conception du produit, je trouve plus juste de ne pas le faire. Jusqu'à preuve du contraire.
Lire une entrée analogique
La lecture d'une entrée analogique se fait par la l'instruction analogRead();.
analogRead(Paramètre); //Broche analogique ou variable affecté.
Paramètre: Prend pour valeur le numéro de la broche de A0 à A5 ou la variable affecté à la broches.
Tout comme la lecture d'état d'une entrée il faut mémoriser sa valeur lors du cycle programme et charger sa valeur dans une variable pour l'exploiter.
Exemple:
la valeur chargé dans la variable est comprise entre 0 et 1023 pour une variation de tension de 5v (max).
Pour convertir cette valeur retournée en tension, j'applique cette formule:
- Tension appliqué = Valeur lu* (5.0/1024). Le rapport tension / point de mesures nous donne un coefficient constant égale a 48,8*1e-4. (0.0048mV)
Exemple:
FIN.
Vous connaissez les bases d'exploitation des entrées sorties de L'Arduino. Amuser vous a les mettre en pratiques. MERCI.
Recevez gratuitement les codes sources de PlaisirArduino
Amusez-vous tout de suite avec les entrées/sorties de votre carte Arduino Uno
Vous y retrouverez : des scketchs, des schémas et des PDF