Étendre les PWM Arduino avec le TLC5940 : Guide complet du pilote LED 16 canaux
Dans ce tutoriel Arduino, nous allons apprendre à utiliser le pilote PWM TLC5940 avec la carte Arduino. Le TLC5940 est un pilote LED 16 canaux qui fournit des sorties PWM et c'est parfait pour étendre les capacités PWM de l'Arduino. Pas seulement des LED, mais avec ce circuit on peut aussi contrôler des servomoteurs, des moteurs à courant continu et d'autres composants électroniques en utilisant des signaux PWM.
Caractéristiques de base
- VCC = 3 V à 5 V
- 16 canaux
- Contrôle PWM 12 bits (4096 pas)
- Capacité de pilotage
– 0 mA à 120 mA (VCC > 3,6 V)
– 0 mA à 60 mA (VCC < 3,6 V) - Interface de données série
- Taux de transfert de données 30 MHz
- Chaînage en cascade (daisy chaining)
Le chaînage en cascade est une excellente fonctionnalité qui permet de connecter plusieurs circuits TLC5940 en série. Avec cela, on peut étendre les capacités PWM de l'Arduino à plus de 16 sorties, par exemple 32, 48 ou 64 sorties PWM, en utilisant toujours les mêmes 4 broches utilisées par l'Arduino pour contrôler un seul TLC5940.
Câblage Arduino et TLC5940
Pour contrôler le TLC5940, il faut occuper 4 broches de votre carte Arduino. Comme nous utiliserons la bibliothèque Arduino TLC5940 d'Alex Leone, il faut connecter le circuit à l'Arduino selon sa configuration de bibliothèque ou en utilisant le schéma de câblage suivant :
Le schéma ci-dessus utilise une alimentation externe pour alimenter les LED, mais on peut aussi le connecter en utilisant simplement le VCC de l'Arduino si le courant total consommé ne dépasse pas la limite de l'Arduino (Courant continu maximal broches VCC et GND – 200 mA).
Il faut aussi noter que le TLC5940 est un puits de courant constant (constant-current sink), donc le courant circule vers les broches de sortie. Cela signifie que pour connecter des LED, il faut connecter la patte négative (cathode) à la broche de sortie du circuit et la patte positive (anode) au VCC 5 V.
Il faut aussi 2 condensateurs pour le découplage et une résistance pour contrôler la quantité de courant qui traverse les sorties. La valeur de la résistance dépend du composant qu'on veut contrôler et elle peut être sélectionnée en utilisant le diagramme suivant de la fiche technique du TLC5940.
Selon le diagramme, pour contrôler des LED qui nécessitent 20 mA de courant, on a besoin d'une résistance de 2 kΩ.
Code source
Une fois qu'on a téléchargé et installé la bibliothèque Arduino TLC5940 d'Alex Leone, on peut utiliser son exemple de démo « BasicUse » pour comprendre comment contrôler les sorties du circuit.
Voici un code simple que j'ai fait pour ce tutoriel pour contrôler 16 LED en utilisant cette bibliothèque. Lisez les commentaires dans le code pour comprendre le fonctionnement des fonctions.
/* Arduino et TLC5940 Tutoriel - Exemple simple
* par Dejan Nedelkovski, www.HowToMechatronics.com */
#include "Tlc5940.h"
void setup() {
Tlc.init(0); // Initialise le TLC5940 et met tous les canaux à 0
}
void loop() {
Tlc.set(0, 4095); // (Broche de sortie 0 à 15, Valeur PWM 0 à 4095)
// Note : La fonction précédente n'active pas la sortie immédiatement.
// La sortie sera activée quand la fonction Tlc.update() sera exécutée !
Tlc.update(); // Active les sorties précédemment définies
delay(1000);
// Pour activer les 16 sorties en même temps, on peut utiliser une boucle for
for (int i = 0; i < 16; i++) {
Tlc.set(i, 4095);
}
Tlc.update();
delay(1000);
// La fonction Tlc.clear() efface toutes les sorties, ou met la valeur PWM de toutes les sorties à 0
Tlc.clear();
Tlc.update();
delay(1000);
// Cette boucle for activera les 16 LED une par une
for (int i = 0; i < 16; i++) {
Tlc.set(i, 4095);
Tlc.update();
delay(200);
Tlc.clear();
Tlc.update();
delay(200);
}
}
Contrôler plus d'un TLC5940
Pour connecter plusieurs de ces circuits en série, on peut utiliser le même schéma de câblage que ci-dessus. La seule différence est que la broche SOUT (Sortie signal – broche 17) du premier circuit doit être connectée à la broche SIN (Entrée signal – broche 26) du second circuit, et ainsi de suite.
Côté programmation, il faut faire quelques modifications. Dans le dossier de la bibliothèque TLC5940, il faut modifier le fichier tlc_config.h et changer la valeur de la variable NUM_TLCS au nombre de circuits TLC5940 connectés en série, dans notre cas cette valeur est 2. Avec cela fait, on peut maintenant facilement adresser toutes les LED de 0 à 31 et utiliser la même méthode de programmation que précédemment décrite.
Comme exemple, sur le lien suivant, vous pouvez consulter mon projet Cadre Photo Cœur LED DIY – Projet Arduino où j'utilise 2 circuits TLC5940 pour contrôler 32 LED.
Processus de fabrication
- Mesurer la qualité de l'air avec OpenSensors : Guide Arduino et Python
- Créer un verrou RFID sécurisé avec Arduino – Guide étape par étape
- Construire une télécommande IR universelle avec Arduino : Guide étape par étape
- Construisez un Stadiomètre Numérique : Suivez la Croissance avec Arduino et Capteur Laser
- Utiliser une thermistance facilement : Guide étape par étape Arduino
- Générer des Sons Musicaux avec Arduino : Guide Pas à Pas
- Enregistreur de Données Environnementales Arduino avec Carte SD et RTC
- Maîtriser Modbus sur Arduino : Guide étape par étape
- Tutoriel Arduino Débutant 01 : Démarrez votre Premier Projet