Important: Veuillez noter que cette page a été traduite avec la traduction automatique de notre article en anglais. Nous nous excusons pour la qualité de la traduction. Vous êtes invités à contribuer avec des corrections.
Merci

Regardez le tutoriel vidéo

Une diode électroluminescente (LED) est une source de lumière à semi – conducteur, quand polarisée en sens direct, il émet de la lumière.
Les LED sont principalement utilisés pour indiquer l’état des circuits électroniques, par exemple pour indiquer que l’ alimentation est allumé ou éteint , mais de nos jours , ils sont utilisés dans de nombreuses applications , y compris l’ éclairage et la détection de faisceau.
Les premières LED émis la lumière rouge de faible intensité, mais la luminosité aujourd’hui élevée et de nombreuses LED de couleur sont disponibles (blanc, bleu, rouge, vert, jaune ou même infrarouge).
Les LED ont de nombreux avantages par rapport aux lampes traditionnelles (les ampoules à incandescence et néon) telles que: basse tension de fonctionnement, très faible consommation d’énergie, plus petite taille, durée de vie prolongée, disponible en plusieurs couleurs , etc. Dans de nombreuses applications à faible consommation d’énergie, les LED sont tendant à remplacer la source de lumière traditionnelle.

Dans cet article , nous allons apprendre comment connecter et allumer et éteindre plusieurs LED à un microcontrôleur utilisant le compilateur Microchip XC8.
Ce projet est le plus simple un débutant dans la programmation embarquée peut commencer avant d’ essayer des projets complexes comme nous l’ avons appris de l’  Introduction à XC8 compilateur  article.

Connexion LEDs

Une LED est semblable à une diode, il comporte deux branches: la branche la plus longue est l’anode (+) et la branche plus courte de la cathode (-). La cathode est également identifié par un côté plat sur le corps.
L’intensité de la lumière émise par une LED dépend de la quantité de courant avant passé à travers le dispositif , mais nous devons prendre soin de ne pas dépasser le montant maximal courant direct ou plus de courant que la broche de sortie PIC peut gérer. Un PIC peut source ou de puits de courant de 25 mA par broche d’entrée / sortie.
Lors de la conception d’ un circuit LED, nous devons connaître la chute de tension typique, le tableau 1 ci – dessous répertorie quelques quelques caractéristiques de certaines LED.

Couleur Chute de tension typique Courant typique
rouge 2.0V 20mA
Orange 2.0V 20mA
Jaune 2.1V 20mA
vert 2,2V 20mA
Bleu 3.0V 20mA
Infrarouge 1.2V 50mA

Tableau 1: Caractéristiques typiques LEDs

La plupart des LED ont une chute de tension typique en avant d’environ 2 V, avec un courant de fonctionnement typique d’environ 10 mA (il est toujours bon de ne pas faire fonctionner un appareil à son niveau actuel haut de gamme), il est important de lire la fiche technique pour obtenir les valeurs correctes. 
Une DEL peut être connecté à un microcontrôleur de deux manières différentes: en mode de source de courant (figure 2) ou en mode d’absorption de courant (figure 1).

     

Figure 1: LED connectée en mode absorption de courant Figure 2: LED connectée en mode de source de courant

En mode d’absorption de courant, un niveau logique bas (sortie 0) doit être appliquée à la broche connectée à la LED pour activer  en mode de source de courant un haut logique (sortie 1) doit être appliquée à la broche de la diode de commutation sur.

La tension de sortie du port peut être supposé + 5V lorsque le port est à haut logique. Si l’on suppose que la LED doit fonctionner avec 10mA en avant, et qu’il a une chute de tension de 2V, on peut facilement calculer la valeur de la limitation de courant résistance comme: Comme le PIC peut fournir jusqu’à 25mA, le courant peut être accrue pour plus de luminosité. Nous allons choisir une résistance de 220Ω (courant direct d’environ 13.6mA) dans notre exemple , mais une résistance de 330 Ω pourrait être aussi faire le travail très bien.
                                                

Code XC8

Pour allumer et éteindre une LED tout ce qu’il faut faire: 
1. Régler le bit PORT Direction avec le  registre TRIS . 1 va faire une entrée et une 0 va faire une sortie. 
Exemple: 

2. Envoyer au PORT un 0 pour éteindre ou un 1 pour allumer  avec le Registre LAT
Notez que vous pouvez utiliser le registre PORT  et il va fonctionner , mais il est un moyen fiable pour  écrire à un port, la meilleure façon est d’utiliser la LAT. Utilisez toujours la LAT si le microcontrôleur a  il ( à noter que la série PIC 16F n’ont pas le registre LAT) pour écrire à un port (sortie une valeur) et  le PORT à lire à partir du port. 
Example: 

Fonctions retard

Une fonction de retard est utilisé pour créer un retard dans le programme, si vous laisser dire besoin d’ un délai de 1 seconde entre le ON et OFF de la LED, il est plus facile d’utiliser une fonction de retard pour générer 1 seconde. 
Le tableau 2 donne une liste des fonctions de retard XC8 disponibles. Dans l’ environnement MPLAB X, appuyez sur F1 pour ouvrir le document de fichier d’aide, recherche de retard à se pencher plus. Le fichier d’ en- tête « delays.h »  doit être inclus au début du programme lorsque l’ une de ces fonctions sont utilisées. Les arguments des fonctions doit être un caractère non signé de 8 bits, soit le nombre maximal autorisé dans un argument est de 255. 

Les retards sont spécifiées en termes de temps de cycle d’instruction qui dépendent de la fréquence de l’horloge utilisée. 
Par exemple, lors de l’ utilisation d’ une horloge à 4 MHz, le temps de cycle d’instruction est de 1 ms. 
Dans les microcontrôleurs PIC, un cycle d’instruction prend quatre périodes d’horloge, le microcontrôleur fonctionne effectivement à une vitesse d’horloge, qui est un quart de la fréquence d’oscillateur réelle. Par exemple, dans un microcontrôleur PIC horloge fonctionnant à 4 MHz, le temps de cycle d’instruction est à 1 ms (fréquence de 1 MHz). 
La série de microcontrôleurs PIC18F peut fonctionner avec des fréquences d’horloge de 40 MHz.

Les fonctions descriptions
Delay1TCY Retard dans un cycle d’instruction
Delay10TCYx Retard par multiples de 10 cycles d’instruction
Delay100TCYx Retard en multiples de 100 cycles d’instruction
Delay1KTCYx Retard par multiples de 1000 cycles d’instruction
Delay10KTCYx Retard par multiples de 10 000 cycles d’instruction

Tableau 2: fonctions de retard de XC8

Si une horloge de 4 MHz est utilisée et la fonction  Delay100TCYx (6)  est appelée, 
Cela entraînera: 100 X 1μ X 6 = retard 600μS dans le programme. 
Pour générer un délai de 1 seconde lors de l’ utilisation d’ une horloge de 4 MHz, on peut appeler la fonction  Delay10KTCYx (100) 
Avec une horloge à 8 MHz, la fonction requise pour générer un deuxième retard 1 est  Delay10KTCYx (200)

 __Delay_ms et __Delay_us   

Comme il est souvent plus commode demande un délai en termes temporels plutôt que dans nombre de cycles, les macros  __delay_ms (x) est utilisé pour générer un retard dans la milliseconde et __delay_us (x) est utilisé pour générer un retard dans microseconde. 
Ces macros  convertissent simplement la demande en fonction du temps en cycles d’instruction en fonction de la fréquence du système. 

Pour y parvenir, ces macros nécessitent la définition préalable du symbole préprocesseur  _XTAL_FREQ  pour la fréquence de l’ oscillateur (en Hertz). Une erreur se produit si ces macros sont utilisées sans définir le symbole de fréquence de l’ oscillateur ou si la période de retard est trop important. Pour des retards très importants, appeler cette fonction à plusieurs reprises.
Exemple:  Utilisation d’ une fréquence d’oscillateur de 8MHz, générer un délai de 1 seconde:

Exemple: Light Chaser

Une connexion typique de DEL à un microcontrôleur PIC

Figure 1: une connexion typique de DEL à un microcontrôleur PIC

La figure 3 ci-dessus montre 8 LEDs connectées à PORTB, dans ce code les LED interrupteur marche l’un après l’autre et de faire une impression d’un chasseur de lumière:

Vous pouvez télécharger les fichiers de projet complet (code source MPLAB XC8 et Proteus conception schématique) ci-dessous ici.

Remarque: Tous les fichiers sont compressés, vous aurez besoin de les dézipper ( Télécharger une version gratuite de l’utilitaire Winzip pour décompresser les fichiers ).  

Télécharger MPLAB XC8 projet: Connexion-LEDs.X 
Télécharger Connexion-LED Proteus