Allumer une led avec un Raspberrypi. Partie II La réalisation
22/09/2013 ⋅ 1 commentaire
Passons maintenant à la pratique et allumons notre LED. Comme nous l'avons vu précédemment , il va nous falloir faire circuler un courant à travers la LED pour qu'elle s'allume. Pour cela, il faut relier les bornes de la LED à une source de tension …
Avertissement
Vous savez probablement que l'électricité peut être dangereuse, voire mortelle. Les manipulations proposées ici sont donc faite sous votre entière responsabilité quant aux dommages matériels et humain qu'elles peuvent causer.
2 de tension
Pour commencer, nous allons utiliser les broches commandables du GPIO. Une commande informatique permet de leur attribuer soit un potentiel de 3,3V, soit un potentiel de 0V. Imaginons le montage suivant
Nous savons qu'il ne faut pas mettre plus de 20mA dans une LED et que le Raspberrypi doit éviter de délivrer plus de 5mA par broche. Par construction, une LED rouge allumée à une tension d'environ 2V à ses bornes et sa resistance est d'environ 30 m?. Utilisons donc la formule magique vu dans la première partie pour calculer le courant qui traverse la LED :
$$U=R \times I$$ Nous cherchons $$I$$, donc $$I=\frac{U}{R}$$ soit $$ I\frac{2}{0,03}$$ donc $$I=66A$$, c'est à dire 66000 mA.
Puisque ce courant traverse le LED, il doit également traverser le Raspberrypi Humm, pour donner un ordre d'idée, c'est le courant qui passe à travers 6 gros radiateurs électriques ...
En réalité, le Raspberrypi ne peut pas fournir ce courant. Il donnera donc tous ce qu'il à, soit 15mA mais ça n'est pas très bon pour lui.
Mais alors, comment réduire ce courant ? En fermant le robinet ! Donc, en augmentant la resistance du circuit. Pour cela, installons un resistance et calculons sa valeur de façon à ne pas dépasser les 5mA que peut fournir la broche. Tout d'abord, calculons la tension aux bornes de la resistance $ R_{1} $.
$ U_{led}+U_{R1}=3.3V $ On sait que $ U_{led}=2V $ donc $ U_{R1}=3,3-2 $ $ U_{R1}=1,3V $
On peut à présent calculer le courant qui traversera $ R_{1} $, qui est celui qui traverse tout le circuit (loi des nœuds)
On cherche $ R $ avec $ I=0,005A $
$ R=\frac{U}{I} $ donc $ R_{1}=\frac{1,3}{0,005} R_{1}=260 \Omega $
Problème, je n'ai pas de resistance de 260? ! Qu'a cela ne tienne, comme nous savons calculer le courant qui circule dans un circuit, je n'ai pas de problème à choisir une autre resistance (qui doit être plus grande pour ne pas dépasser 5mA). Je dispose d'une résistance de 370?. J'aurais donc un courant de 3,5mA.
Voici le cablage à réaliser sur une plaque d'essai sans soudure appellée breadboard (image réalisée avec Fritzing)
Allumer le feu
Reste maintenant à allumer la led. Pour cela, il faut envoyer une commande. Le plus simple est d'utiliser les commandes bash en tant que root. Commencons par dire au Rpi qu'on utilise la broche 4.
cd /sys/class/gpio echo 4 > export
Apparait alors un dossier gpio4. On peut ainsi définir le sens d'utilisation de la broche, pour nous, une sortie.
cd gpio4 echo out > direction
Reste plus qu'à allumer le LED
echo 1 > value
Et voilà. Passionnant mais pas brillant du tout. La luminosité d'une LED est proportionnelle au courant qui la traverse. Avec 3.5 mA au lieu des 20mA soit moins de 20% du courant normal, c'est pas étonnant.
On va donc éteindre la LED, remettre le Rpi dans son état normal et voir comment obtenir un résultat plus satisfaisant.
echo 0 > value cd .. echo 4 > unexport
Met donc le transistor qu'on suive les nouvelles
La broche 5V peut délivrer jusqu'à 300mA (moins ce qu'elle délivre par les autres broches).Comment utiliser cette tension pour alimenter une LED ? A l'aide d'un composant qui va nous servir d'interupteur : le transistor
Un transistor, c'est un composant à 3 pattes : l'émetteur (noté E), le collecteur (noté C) et la base (noté B). Il y a plusieurs sortes de transistors et on peut utiliser ces transistors pour différents usages. Ici, on va utiliser l'utiliser en commutation
Lorsqu'un courant suffisant circule dans la base, un courant circule entre l'émetteur et le collecteur. On dit que le transistor est saturé. Si aucun (ou trop peu) de courant circule dans la base aucun courant ne circule non plus entre l'émetteur et le collecteur. Il est bloqué.
Pour faire circuler un courant, il faut une tension. On peut utiliser la tension d'une broche GPIO, soit, 3,3V. Le courant qui circule ne doit pas excéder ce que peut fournir une broche du GPIO, soit 5mA. Facile, on sait qu'il faut mettre une résistance (fermer le robinet) et on peut même calculer sa valeur car on connaît la formule magique $ U=RI $. Reste juste à savoir qu'il existe une tension de 0,7V entre la base et l'émetteur ($U_{be}$), et le tour est joué :
Calculons la tension aux bornes de la résistance grâce à la loi des nœuds
$$ U_{be}+U_{R}=3,3V $$
$$ U _{R}=3,3-0,7 $$
$$ U_{R}=2,6V
$$
Reste à calculer la valeur de R avec un intensité de 0,005A (5mA)
$$U_{R}=RI $$
$$ R=\frac{U_{R}}{I} $$
$$ R=\frac{2,6}{0,005} $$
$$ R=520? $$
Et voilà, grâce à cela, on peut commander la circulation d'un courant collecteur/émetteur dans un transistor. Il faut également ajouter une résistance pour limiter le courant dans la LED à moins de 20mA. Le calcul est identique avec une valeur de tension différente
$$ U_{R}=U-U_{led} $$
$$ U_{R}=3V $$
$$ R=\frac{U_{R}}{I} $$
$$ R=\frac{3}{0.02} $$
$$ R=150? $$
Encore une fois, je n'ai pas de résistance de 150? ! Qu'à ce la ne tienne, j'utilise une résistance de 220 ?. Cela ne fait plus que 13mA mais c'est quand même mieux que les 3.5mA sans le transistor.
Bon, et qu'est-ce qu'on fait de tout ça ?
Et bien avec tout ça, j'ai trouvé un projet qui va m'être bien utile : réaliser l'éclairage de mon aquarium avec une intensité de l'éclairage qui varie au cours de la journée pour simuler la course du soleil.
Sources :
* Sonelec-Musique, un super site qui explique tout sur l'électronique
* Le site de référence du RPI en anglais