//« Dans un système à base de **microcontrôleur**, on appelle **entrées-sorties** les échanges d'informations entre le processeur et les périphériques qui lui sont associés. De la sorte, le système peut réagir à des modifications de son environnement, voire le contrôler. Elles sont parfois désignées par l'acronyme **I**/**O**, issu de l'anglais **Input**/**Output** ou encore **E**/**S** pour **entrées**/**sorties**. »// Source Wikipédia
-
Pour éviter de faire référence à des valeurs électriques (tension ou intensité), on définit souvent l’état d’un signal numérique en utilisant la logique booléenne.
-
* **true** (« **1** » logique) correspondra par exemple à **5V** ou **3,3V**
-
* **false** (« **0** » logique) correspondra à **0V**.
-
<callout type="primary" icon="true">Le nombre de broches d’un microcontrôleur est limité. Il est fréquent d’avoir plusieurs fonctionnalités sur une même broche.</callout>
-
<callout type="warning" icon="true">Une sortie numérique conserve la dernière information qui lui a été envoyée. Elle se comporte comme une **mémoire**.</callout>
-
-
----
-
-
==== 2. Les entrées/sorties numériques de la carte Arduino Uno ====
-
Les entrées, sorties numériques sont numérotées entre **0** et **13** sur la carte. Certaines peuvent assurer plusieurs fonctions. Le symbole **~** identifie les broches capables de délivrer un signal PWM.
-
-
{{ :arduino:esnum.png?nolink |}}
-
-
<callout type="primary" icon="true">Le **schéma** de la carte est téléchargeable <html><a href="http://marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.pdf" target="_blank">ici</a></html>.</callout>
==== 3. Programmation ====
==== 3. Programmation ====
-
=== 3.1 Configurer une broche en entrée ou en sortie ===
-
**Source** : <html><a href="https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/" target="_blank">pinMode()</a></html> sur le site <html><a href="https://www.arduino.cc/" target="_blank">arduino.cc</a></html>
-
-
<callout type="tip" icon="true">**Configurer** une broche signifie qu'on précise qu'elle doit se comporter soit comme une entrée d'information, soit comme une sortie d'information.</callout>
-
-
__Exemple__
-
-
<code cpp *.cpp>
-
// Sauf exception la configuration d'une broche se fait dans la fonction setup()
-
void setup() {
-
pinMode(13,OUTPUT); // la broche 13 se comporte comme une sortie
-
pinMode(12,INPUT); // la broche 12 se comporte comme une entrée,
-
// optionnel si la broche n'a pas été préalablement
-
// configurée en sortie, car c'est le mode par défaut
-
}
-
</code>
-
-
=== 3.2 Lire l'état logique présent sur une broche ===
-
**Source** : <html><a href="https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/" target="_blank">digitalRead()</a></html> sur le site <html><a href="https://www.arduino.cc/" target="_blank">arduino.cc</a></html>
-
-
<callout type="tip" icon="true">La valeur lue sur une broche configurée en entrée doit être sauvegardée dans une **variable**.</callout>
-
-
__Exemple__
-
-
<code cpp *.cpp>
-
// L'opération de lecture se fait dans la fonction loop().
-
void loop() {
-
int valeur = digitalRead(12); // l'état logique présent sur la broche 12 est sauvegardé
-
// dans la variable valeur
-
}
-
</code>
-
-
=== 3.3 Ecrire un état logique sur une broche ===
-
**Source** : <html><a href="https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/" target="_blank">digitalWrite()</a></html> sur le site <html><a href="https://www.arduino.cc/" target="_blank">arduino.cc</a></html>
-
<callout type="tip" icon="true">Un état logique **haut(HIGH)** ou **bas(LOW)** peut être écrit sur une broche préalablement configurée en sortie.</callout>
-
__Exemple__
-
<code cpp *.cpp>
-
void setup() {
-
pinMode(13, OUTPUT); // la broche 13 se comportera comme une sortie
-
}
-
// L'opération d'écriture se fait dans la fonction loop().
-
void loop() {
-
digitalWrite(13, HIGH); // La broche 13 présente un état logique haut (par exemple 5V)