Les GPIO (General purpose input/output) sont des ports d’entrée/sortie qui ont deux fonctionnalités : piloter une sortie à l’état logique “0” ou “1”.
Il faut savoir que piloter une sortie revient à lui fournir une tension en sortie. De plus, le courant peut être entrant (sinking) ou sortant (sourcing).
a) GPIO avec courant entrant
Voici le schéma d’une LED avec sortie en tension et courant entrant (sinking) :
Le GPIO contrôle ici le courant entrant, comme le circuit est alimenté par le Vcc, si le GPIO est aussi égale au Vcc, la led n’est pas allumée car il n’y a pas de différence de tension entre l’entrée et la sortie de la LED.
Enfin, si le GPIO vaut 0 volt, alors il y a une différence de tension entre le Vcc et le 0 volt donc la led sera allumée.
b) GPIO avec courant sortant
Voici le schéma d’une LED avec sortie relié à la masse et courant sortant (sourcing) :
Le GPIO contrôle ici le courant sortant. Comme le circuit est alimenté par la masse, si le GPIO est aussi égale au Vcc, la led est allumée car il y a une différence de tension entre l’entrée et la sortie de la LED.
Enfin, si le GPIO vaut 0 volt, alors il n’y a pas de différence de tension entre le Vcc et le 0 volt donc la led sera éteinte.
En électronique, il est rare d’obtenir des valeurs de tension exacte, c’est à dire que l’on obtiendra jamais 5,00 volts mais plutôt 5,01 volts par exemple. Néanmoins la carte Arduino agit que quand les valeurs sont exactes pour dire que l’on est à 0 si c’est du GND ou bien 1 si c’est du Vcc.
On a donc besoin de fixer des seuils de tension. Cela permet de savoir si la tension vaut 1 ou 0 et de sortir de l’état d’impédance z.
L’état d’impédance z est l’état où la tension se trouve entre le seuil de tension du 1 et du 0. Il faut à tout prix éviter cet état car il est indéterminé.
On fixe donc pour l’état haut d’être au dessus de 0,7*Vcc. C’est à dire que si Vcc = 1 V, si on est au dessus de 0,7 V alors c’est considéré comme 1.
Pour l’état bas, on fixe généralement 0,3*Vcc donc si Vcc=1 V il faut être en dessous de 0,3 V pour être considéré comme 0.
Pour pouvoir atteindre ces zones de certitude, on utilise des résistances de pull-up et pull down.
a) La résistance de pull-up
La résistance de pull-up permet de tirer la tension vers 1 et de sortir de l’état d’impédance z. On va voir un schéma avec un bouton poussoir. Pour que la valeur soit reconnue lorsqu’on appuie sur le bouton poussoir, il nous faut une résistance de pull up.
Avec cette configuration en résistance de pull on a :
b) résistance de pull down
La résistance de pull down permet de tirer la tension vers 0 et de sortir de l’état d’impédance z. On va voir un schéma avec un bouton poussoir. Pour que la valeur soit reconnue lorsqu’on appuie sur le bouton poussoir, il nous faut une résistance de pull down.
Avec cette configuration en résistance de pull down on a :
Une résistance sert à la limitation de courant. Pour faire votre propre circuit, vous devrez surement déterminer quelle valeur de résistance il vous faut.
c) Calcul de la valeur d’une Résistance
Pour calculer la valeur d’une résistance, on va reprendre les schémas précédents en les adaptant avec une résistance normale :
Avec les caractéristiques suivantes :
On va calculer la valeur de la résistance avec une loi des mailles :
On isole Vresistance afin de connaître la valeure de R :
On fait apparaître R grâce à la d’ohm :
On a donc :
On isole R :
D’après les caractéristiques, on remplace par les valeurs :