Table des matières:

Arduino et le circuit intégré de pilote de LED TLC5940 PWM : 7 étapes
Arduino et le circuit intégré de pilote de LED TLC5940 PWM : 7 étapes

Vidéo: Arduino et le circuit intégré de pilote de LED TLC5940 PWM : 7 étapes

Vidéo: Arduino et le circuit intégré de pilote de LED TLC5940 PWM : 7 étapes
Vidéo: Проект Ардуино № 13 | 5 контактов, 32 светодиода, 2 светодиодных драйвера [TLC5940] 2024, Novembre
Anonim
Arduino et le circuit intégré de pilote de LED TLC5940 PWM
Arduino et le circuit intégré de pilote de LED TLC5940 PWM

Dans cet article, nous allons examiner le circuit intégré de pilote de LED à 16 canaux Texas Instruments TLC5940. Notre raison de faire cela est de démontrer une autre façon plus simple de piloter de nombreuses LED - et aussi des servos. Tout d'abord, voici quelques exemples du TLC5940. Vous pouvez commander le TLC5940 auprès de PMD Way avec une livraison gratuite dans le monde entier.

Le TLC5940 est disponible en version DIP et également en montage en surface. C'est vraiment une partie pratique, vous permettant de régler la luminosité de seize LED individuelles via PWM (modulation de largeur d'impulsion) - et vous pouvez également connecter en guirlande plus d'un TLC5940 pour en contrôler encore plus.

Au cours de ce didacticiel, nous expliquerons comment contrôler un ou plusieurs circuits intégrés TLC5940 avec des LED et examinerons également le contrôle des servos. À ce stade, veuillez télécharger une copie du TLC5940 (.pdf) tel que vous vous y référerez au cours de ce processus. De plus, veuillez télécharger et installer la bibliothèque Arduino TLC5940 d'Alex Leone qui se trouve ici. Si vous ne savez pas comment installer une bibliothèque, cliquez ici.

Étape 1: Construire un circuit de démonstration TLC5940

Construisez un circuit de démonstration TLC5940
Construisez un circuit de démonstration TLC5940

Le circuit suivant est le minimum requis pour contrôler seize LED depuis votre Arduino ou compatible. Vous pouvez l'utiliser pour expérimenter diverses fonctions et vous faire une idée de ce qui est possible. Tu auras besoin de:

  • Une carte Arduino Uno ou compatible
  • 16 LED normales de tous les jours pouvant avoir un courant direct allant jusqu'à 20 mA
  • une résistance de 2 kΩ (plus ou moins 10%)
  • une céramique de 0,1 uF et un condensateur électrolytique de 4,7 uF

Prenez note de l'orientation de la LED - et rappelez-vous que le TLC5940 est un pilote de LED à anode commune - donc toutes les anodes de LED sont connectées ensemble, puis à 5V.

Étape 2:

Pour ce circuit particulier, vous n'aurez pas besoin d'une alimentation externe 5 V, mais vous en aurez peut-être besoin à l'avenir. Le but de la résistance est de contrôler la quantité de courant pouvant traverser les LED. La valeur de résistance requise est calculée avec la formule suivante:

R = 39,06 / Imax où R (en Ohms) est la valeur de la résistance et Imax (en Amps) est la quantité maximale de courant que vous souhaitez faire circuler à travers les LED.

Par exemple, si vous avez des LED avec un courant direct de 20 mA, le calcul de la résistance serait: R = 39,06 / 0,02 = 1803 Ohms. Une fois le circuit assemblé, ouvrez l'IDE Arduino et téléchargez l'esquisse BasicUse.pde qui se trouve dans le dossier exemple de la bibliothèque TLC5940.

Vous devriez avoir une sortie similaire à ce qui est montré dans la vidéo.

Étape 3: Contrôle du TLC5940

Maintenant que le circuit fonctionne, comment contrôlons-nous le TLC5940 ? Tout d'abord, les fonctions obligatoires – inclure la bibliothèque au début de l'esquisse avec:

#include "Tlc5940.h"

puis initialisez la bibliothèque en plaçant ce qui suit dans void setup():

Tlc.init(x);

x est un paramètre facultatif – si vous souhaitez régler tous les canaux sur une certaine luminosité dès le début du croquis, vous pouvez insérer une valeur comprise entre 0 et 4095 pour x dans la fonction Tlc.init().

Maintenant pour allumer ou éteindre un canal/LED. Chaque canal est numéroté de 0 à 15, et la luminosité de chaque canal peut être ajustée entre 0 et 4095. Il s'agit d'un processus en deux parties… Premièrement - utilisez une ou plusieurs des fonctions suivantes pour configurer les canaux requis et la luminosité respective (PWM niveau):

Tlc.set(canal, luminosité);

Par exemple, si vous souhaitez que les trois premiers canaux soient allumés à pleine luminosité, utilisez:

Tlc.set(0, 4095);Tlc.set(1, 4095); Tlc.set(2, 4095);

La deuxième partie consiste à utiliser les éléments suivants pour mettre à jour le TLC5940 avec les instructions requises de la première partie:

Tlc.update();

Si vous souhaitez désactiver tous les canaux à la fois, utilisez simplement:

Tlc.clear();

Étape 4:

Vous n'avez pas besoin d'appeler un TLC.update() après la fonction clear. Ce qui suit est un exemple de croquis rapide qui définit les valeurs de luminosité/PWM de tous les canaux à différents niveaux:

#include "Tlc5940.h"void setup() { Tlc.init(0); // initialise TLC5940 et désactive tous les canaux }

boucle vide()

{ pour (int i = 0; i < 16; i++) { Tlc.set(i, 1023); } Tlc.update(); retard(1000); pour (int i = 0; i < 16; i++) { Tlc.set(i, 2046); } Tlc.update(); retard(1000); pour (int i = 0; i < 16; i++) { Tlc.set(i, 3069); } Tlc.update(); retard(1000); pour (int i = 0; i < 16; i++) { Tlc.set(i, 4095); } Tlc.update(); retard(1000); }

La possibilité de contrôler la luminosité individuelle pour chaque canal/LED peut également être utile lors du contrôle des LED RVB - vous pouvez alors facilement sélectionner les couleurs requises via différents niveaux de luminosité pour chaque élément. Une démonstration est montrée dans la vidéo.

Étape 5: Utilisation d'au moins deux TLC5940

Vous pouvez connecter en guirlande plusieurs TLC5940 ensemble pour contrôler plus de LED. Tout d'abord - câblez le prochain TLC5940 à l'Arduino comme indiqué dans le circuit de démonstration - sauf connectez la broche SOUT (17) du premier TLC5940 à la broche SIN (26) du deuxième TLC5940 - pendant que les données voyagent de l'Arduino, à travers le premier TLC5940 au second et ainsi de suite. Répétez ensuite l'opération si vous en avez un troisième, etc. N'oubliez pas la résistance qui règle le courant !

Ensuite, ouvrez le fichier tlc_config.h situé dans le dossier de la bibliothèque TLC5940. Remplacez la valeur de NUM_TLCS par le nombre de TLC5940 que vous avez connectés ensemble, puis enregistrez le fichier et supprimez également le fichier Tlc5940.o également situé dans le même dossier. Enfin, redémarrez l'IDE. Vous pouvez ensuite vous référer aux canaux du deuxième et des autres TLC5940 séquentiellement à partir du premier. C'est-à-dire que le premier est 0~15, le second est 16~29, et ainsi de suite.

Étape 6: Contrôle des servos avec le TLC5940

Comme le TLC5940 génère une sortie PWM (modulation de largeur d'impulsion), il est également idéal pour piloter des servos. Tout comme les LED, vous pouvez en contrôler jusqu'à seize à la fois. Idéal pour créer des robots ressemblant à des araignées, des horloges étranges ou faire du bruit.

Lors du choix de votre servo, assurez-vous qu'il ne consomme pas plus de 120 mA en fonctionnement (le courant maximum par canal) et tenez également compte de la section "Gestion du courant et de la chaleur" à la fin de ce tutoriel. Et utilisez une alimentation externe avec des servos, ne comptez pas sur la ligne 5V de l'Arduino.

Pour connecter un servo est simple - la ligne GND se connecte à GND, le 5V (ou fil de tension d'alimentation) se connecte à votre 5v (ou autre alimentation appropriée) et la broche de servocommande se connecte à l'une des sorties du TLC5940. Enfin - et c'est important - connectez une résistance de 2,2 kΩ entre la ou les broches de sortie TLC5940 utilisées et 5V. Contrôler un servo n'est pas si différent d'une LED. Vous avez besoin des deux premières lignes au début du croquis:

#include "Tlc5940.h"#include "tlc_servos.h"

puis ce qui suit dans la configuration void():

tlc_initServos();

Ensuite, utilisez la fonction suivante pour sélectionner le servo (canal) à utiliser et l'angle (angle) requis:

tlc_setServo(canal, angle);

Tout comme les LED, vous pouvez en regrouper quelques-unes, puis exécuter la commande avec:

Tlc.update();

Voyons donc tout cela en action. L'exemple d'esquisse suivant balaie quatre servos sur 90 degrés:

#include "Tlc5940.h"#include "tlc_servos.h"

void setup()

{ tlc_initServos(); // Remarque: cela réduira la fréquence PWM à 50 Hz. }

boucle vide()

{ for (int angle = 0; angle = 0; angle--) { tlc_setServo(0, angle); tlc_setServo(1, angle); tlc_setServo(2, angle); tlc_setServo(3, angle); Tlc.update(); retard(5); } }

La vidéo montre ce croquis en action avec quatre servos.

Si vos servos ne tournent pas au bon angle - par exemple, vous demandez 180 degrés et ils ne tournent qu'à 90 ou à peu près, un peu de travail supplémentaire est nécessaire.

Vous devez ouvrir le fichier tlc_servos.h situé dans le dossier de la bibliothèque Arduino TLC5940 et expérimenter avec les valeurs de SERVO_MIN_WIDTH et SERVO_MAX_WIDTH. Par exemple, changez SERVO_MIN_WIDTH de 200 à 203 et SERVO_MAX_WIDTH de 400 à 560.

Étape 7: Gestion du courant et de la chaleur

Comme mentionné précédemment, le TLC5940 peut gérer un maximum de 120 mA par canal. Après quelques essais, vous remarquerez peut-être que le TLC5940 chauffe - et ce n'est pas grave.

Notez qu'il y a une limite maximale à la quantité de puissance qui peut être dissipée avant de détruire la pièce. Si vous n'utilisez que des LED de jardin normales ou des servos plus petits, l'alimentation ne sera pas un problème. Cependant, si vous prévoyez d'utiliser le TLC5940 au maximum, veuillez consulter les notes fournies par les auteurs de la bibliothèque.

Conclusion

Une fois de plus, vous êtes sur le point de contrôler une partie incroyablement utile avec votre Arduino. Maintenant, avec un peu d'imagination, vous pouvez créer toutes sortes d'affichages visuels ou vous amuser avec de nombreux servos.

Cet article vous est présenté par pmdway.com - qui propose des produits TLC5940 ainsi que tout pour les fabricants et les passionnés d'électronique, avec une livraison gratuite dans le monde entier.

Conseillé: