La section 2 de notre article sur les registres de contrôle du microcontrôleur Arduino est dédiée à l’utilisation des registres pour contrôler les broches d’entrée/sortie. Cette section est cruciale pour tout projet impliquant l’utilisation de périphériques externes. Nous allons expliquer les principales fonctions de programmation utilisées pour configurer les broches d’entrée/sortie, notamment pinMode, digitalWrite et digitalRead, et expliquer comment utiliser les registres pour accomplir les mêmes tâches.
- Configuration des broches d’entrée/sortie La première étape pour utiliser une broche d’entrée/sortie consiste à la configurer. Les broches d’entrée/sortie peuvent être configurées en entrée ou en sortie. Si une broche est configurée en entrée, elle peut être utilisée pour lire une valeur analogique ou numérique, tandis qu’une broche configurée en sortie peut être utilisée pour envoyer une valeur numérique.
La fonction pinMode est utilisée pour configurer les broches d’entrée/sortie. La syntaxe est la suivante : pinMode(nom_de_la_broche, mode). Le paramètre nom_de_la_broche doit être remplacé par le numéro de la broche (par exemple, 2, 3, 4, etc.) et le paramètre mode doit être remplacé par INPUT ou OUTPUT, selon que vous souhaitez configurer la broche en entrée ou en sortie.
- Envoi de données à une broche d’entrée/sortie Une fois que vous avez configuré une broche en entrée ou en sortie, vous pouvez envoyer des données à la broche. La fonction digitalWrite est utilisée pour envoyer des données à une broche configurée en sortie. La syntaxe est la suivante : digitalWrite(nom_de_la_broche, valeur). Le paramètre nom_de_la_broche doit être remplacé par le numéro de la broche, et le paramètre valeur doit être remplacé par HIGH ou LOW, selon que vous souhaitez envoyer une valeur numérique de 1 ou de 0.
- Lecture de données à partir d’une broche d’entrée/sortie Une fois qu’une broche est configurée en entrée, vous pouvez lire une valeur analogique ou numérique à partir de la broche. La fonction digitalRead est utilisée pour lire une valeur numérique à partir d’une broche configurée en entrée. La syntaxe est la suivante : digitalRead(nom_de_la_broche). Le paramètre nom_de_la_broche doit être remplacé par le numéro de la broche que vous souhaitez lire.
- Utilisation des registres pour contrôler les broches d’entrée/sortie L’utilisation des fonctions pinMode, digitalWrite et digitalRead est simple et conviviale pour les débutants, mais elle est limitée. Si vous voulez un contrôle plus fin sur les broches d’entrée/sortie, vous devez utiliser les registres. Les registres permettent un contrôle plus fin sur les broches d’entrée/sortie, offrent une vitesse accrue par rapport aux fonctions prédéfinies et permettent une gestion plus fine de l’énergie
Le registre de configuration de la broche, appelé le registre DDR, est utilisé pour configurer une broche en entrée ou en sortie. Si vous voulez configurer la broche 2 en sortie, vous devez configurer le bit correspondant dans le registre DDR. Le bit sera défini à 1 pour une sortie et à 0 pour une entrée.
Le registre de sortie de la broche, appelé le registre PORT, est utilisé pour envoyer des données à une broche configurée en sortie. Si vous voulez envoyer une valeur numérique de 1 à la broche 2, vous devez configurer le bit correspondant dans le registre PORT à 1.
Le registre d’entrée de la broche, appelé le registre PIN, est utilisé pour lire une valeur numérique à partir d’une broche configurée en entrée. Si vous voulez lire une valeur numérique à partir de la broche 2, vous devez lire le bit correspondant dans le registre PIN.
Pour utiliser les registres pour contrôler les broches d’entrée/sortie, vous devez comprendre la structure de chaque registre et la signification de chaque bit. Cela peut sembler intimidant pour les débutants, mais avec un peu de pratique, vous serez en mesure de contrôler les broches d’entrée/sortie avec une précision accrue.
- Exemple de code Voici un exemple de code qui utilise les registres pour contrôler la broche 2 en sortie :
void setup() {
DDRB = DDRB | B00000100; // Configure la broche 2 en sortie
}
void loop() {
PORTB = PORTB | B00000100; // Envoie une valeur numérique de 1 à la broche 2
delay(1000); // Attend 1 seconde
PORTB = PORTB & B11111011; // Envoie une valeur numérique de 0 à la broche 2
delay(1000); // Attend 1 seconde
}
Dans cet exemple de code, nous avons configuré la broche 2 en sortie en définissant le troisième bit du registre DDRB à 1. Nous avons ensuite envoyé une valeur numérique de 1 à la broche 2 en définissant le troisième bit du registre PORTB à 1. Après une attente de 1 seconde, nous avons envoyé une valeur numérique de 0 à la broche 2 en définissant le troisième bit du registre PORTB à 0.
Conclusion La section 2 de notre article sur les registres de contrôle du microcontrôleur Arduino est cruciale pour tout projet impliquant l’utilisation de périphériques externes. Nous avons expliqué les principales fonctions de programmation utilisées pour configurer les broches d’entrée/sortie, notamment pinMode, digitalWrite et digitalRead, et expliqué comment utiliser les registres pour accomplir les mêmes tâches. Nous avons également expliqué la structure des registres DDR, PORT et PIN et comment les utiliser pour un contrôle plus fin sur les broches d’entrée/sortie. Avec un peu de pratique, vous serez en mesure de contrôler les broches d’entrée/sortie avec une précision accrue.