Alors, commençons par du vocabulaire au cas où : une « led », c’est une diode électro luminescente, une « del » donc… mais en anglais 😉
Et je vous ai remis les deux schémas de câblage : le « naturel / intuitif / simple » versus le « correct / réel / pas simple » !!!
Bon, en fait, ça n’est pas si compliqué, il faut retenir deux choses :
1) une led doit être associée à une résistance.
Pourquoi ?
Et bien tout simplement parce qu’une led fonctionne à une tension et un courant qui ne sont pas forcément ceux qu’est prêt à lui fournir le GPIO de notre RPi !
En l’occurrence, la plupart des led ont une tension de fonctionnement comprise entre 1,2 et 1,6V, alors que le GPIO du RPi peut fournir du 3,3 ou du 5V !!!
De plus (et surtout !), on considère que le courant devant traverser une led en fonctionnement est de 20mA, alors que sans limitation, elle prendra le courant disponible… au risque de “griller” tôt ou tard !
Dans notre cas, sachant que nous utilisons le 3,3V du GPIO et que nous souhaitons utiliser un courant de 20mA, nous allons utiliser la fameuse loi d’Ohm qui dit que dans un circuit électrique, U = RI où :
U = la tension du circuit, en Volts
I = l’intensité du circuit, en Ampères
R = la résistance du circuit, en Ohms, ce qu’il va falloir déterminer !
En écrivant cette loi d’Ohm dans le bon sens pour calculer la résistance de notre circuit, on a R = U/I
Alors, que met-on en « U » ? Ben, petit piège, il s’agit de la tension… aux bornes de notre résistance, donc 3,3V (la tension du circuit général) – 1,2V (la tension que l’on souhaite aux bornes de notre led) = 2,1V !
Et en « I » ? Et bien, le courant requis par notre led, 20mA, soit 0,02A
Et donc, ENFIN, on a R = 2,1 / 0,02 = 105 Ohms !
De là, vous n’avez donc plus qu’à choisir une résistance supérieure ou égale à 105 Ohms, typiquement, 220 Ohms ira très bien. Plus votre résistance sera élevée, moins votre led sera lumineuse.
Bon deux choses :
– on voit que c’est très faible, et que si vous utilisez bien le 3,3V, votre led ne craint pas grand chose, cela dit, c’est aussi pour protéger les ports GPIO qui sont parfois chatouilleux face au courant que va vouloir consommer la led !
– je vous dit que « en général » la tension requise par une led est de 1,2V et qu’elle consomme 20mA, mais d’où je tire ces chiffres ??? Ben tout composant électronique possède une « datasheet », une « fiche de données techniques » que l’on trouve assez facilement sur internet, le plus souvent sur le site du constructeur dudit composant. Mais les led ont peu ou prou toutes les mêmes caractéristiques.
2) Bon, mais si vous regardez le schéma de câblage « correct », ça ne colle toujours pas puisque j’ai mis les choses à l’envers : le +3,3V en entrée de ma led et c’est sa sortie qui est connectée au port GPIO qui va la piloter !!!
Alors que, soyons honnête, il serait vachement plus « logique » que ce soit mon port GPIO qui envoie 3,3V à ma led, qui serait ensuite « simplement » raccordée à la masse, autrement dit, au 0V, non ????
Oui, ben non, car en fait, les broches du GPIO sont plutôt à voir comme les broches d’un micro-contrôleur électronique, et ce genre de composant, s’il sait parfaitement gérer une tension positive qui lui est appliquée à plus de peine à fournir lui-même une telle tension.
Donc, par défaut, on préfère y recevoir une tension positive, qui va correspondre à notre état « éteint » (notre led aura +3,3V de chaque côté et ne s’allumera donc pas), puis relier cette tension à la masse pour créer notre état « allumé » (notre led aura +3,3V d’un côté, et 0V de l’autre et va donc bien s’allumer) que l’inverse !
Cela dit, soyons franc, ça marchera aussi si vous faites les choses dans le sens « naturel », je vous « embête » juste pour vous donner de bons réflexes, qui seront surtout utiles avec une carte Arduino, ou un micro-contrôleur que vous aurez programmé vous-mêmes, quand vous serez devenus des pros ! 😉
Bon, ouf, vous avez tout compris pour la led ? Non ? Je résume :
1) Mettez en série avec votre led une résistance : de 220 Ohms si vous l’alimentez en 3,3V.
2) Autant que faire se peut, ayez le réflexe « électronicien » et branchez votre led « à l’envers » : du +3,3V vers la led, puis de la led vers le port GPIO qui fonctionnera donc à l’inverse de la logique, soit : led éteinte = port GPIO à l’état haut ; led allumée = port GPIO à l’état bas.
Passons aux boutons poussoirs !
Petite coquille dans le code:
#La partie se joue en 5 manches
#On arrête donc aussi dès qu'un joueur a 3 points
MANCHE, SC_R, SC_V = 0, 0, 0
…
#Indication du gagnant et de son score
if SC_R > SC_G:
print(NOM_R, ” a gagné la partie, “, SC_R, ” points à “, SC_G, ” !”)
else:
print(NOM_G, ” a gagné la partie, “, SC_V, ” points à “, SC_R, ” !”)
le “SC_V” doit être corrigé en “SC_G” me semble t-il, non?
En tout cas excellent tuto encore avec une belle version vintage !
Félicitations