Kidule Dé/Allumer une Led (Sortie)

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Allumer une Led (Sortie)
Icône de la faculté
Chapitre no 1
Leçon : Kidule Dé
Retour auSommaire
Chap. suiv. :Tester si un Bouton est pressé (Entrée)
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Kidule Dé : Allumer une Led (Sortie)
Kidule Dé/Allumer une Led (Sortie)
 », n'a pu être restituée correctement ci-dessus.

On va commencer par un tout petit programme qui allume la Led 0 du kidule Dé

#include "hardwareDe.h"

void loop ()
{
   Led0=Allume;   
}

Si cela te suffit comme explication, tu peux passer à la leçon suivante Kidule Dé/Tester si un Bouton est pressé (Entrée).

Pour ceux qui veulent en savoir plus‎

Comment fonctionne une Sortie[modifier | modifier le wikicode]

Pour qu'une pin (patte d'un composant) soit une sortie, on doit mettre un 0 dans le bit correspondant du registre TRIS, ce qui permet de connecter la sortie du Data Latch avec la pin (petit triangle colorié en vert).

On peut alors écrire ce que l’on veut dans LATx (en bleu) et à la fin de l'écriture, ce sera mémorisé dans le Data Latch et la sortie aura donc changé.

Pour écrire un 0 dans le bit 0 du PORTA, on peut écrire

PORTAbits.LATA0 = 0;

Allumage d'une LED[modifier | modifier le wikicode]

Si on regarde le schéma, on voit que le fil de la LED0 est connecté à la patte RA0 du processeur et cette patte est elle-même connectée à une variable LATA0 qui se trouve dans le processeur. Pour être exact, le processeur a une variable LATAbits qui possède dedans 8 petites variables qui ne peuvent avoir que 1 ou 0. Lorsque l’on met un 0 dans cette variable, cela met 0 Volts sur la patte du processeur. Si on met un 1 dans cette variable, cela met 5 Volts sur la patte du processeur.

Comme la Led est reliée au 5 V, si on met 0 Volt (=un 0 dans RA0), la LED s'allume, car il y a du courant qui peut passer (comme un moulin avec de l'eau en haut d'un côté et de l'eau en bas de l'autre). Par contre si on a 5 Volts d'un côté et 5 Volts de l'autre, la LED ne s'allume pas (comme un moulin noyé dans l'eau)

Mais à la fin on se perd un peu! Non? Il faut mettre 0 pour allumer et 1 pour éteindre! alors que des fois on voit sur un interrupteur 1 pour allumer et 0 pour éteindre. c'est pour cela que dans le fichier hardwareDe.h on a aussi écrit

#define Allume 0
#define Eteint 1

Comme cela on peut écrire des choses que l’on arrive à lire facilement. Led0 = Allume; c’est beaucoup plus clair que PORTAbits.RA0=0