interfacer un TLC 5940 et 1 TC 426

@bouault : les 2 premiers liens sont très intéressant pour ce qui est du contrôle de LED qui se passe toujours a courant constant.
Mais ne perdons pas de vu le but de karistouf qui est de piloter des vannes

Le 3eme lien est dans ce cas le plus intéressant puisqu'il s'agit d'une sortie en tension et non plus en courant.

On retrouve mes recommandations initiales mais avec une résistance de IREF de 6K8 au lieu de 4K7, donc un courant de sortie plus faible et un pull-up de 1K....

bonjour barbudor !
ok ca a l 'air de marcher !!!! :slight_smile:

on a testé sur breadboard avec 6 x IRL.
On essaye de mettre un transistor BC547 pour inverser le signal avant de souder une série de 12 IRL et de tester avec les vannes. Ca fait du bien que les choses avancent.

par contre j ai laissé sans m en rentre compte le Xerr branché. et çà fonctionne quand même malgrè les différences ( pas d'adaptation de code ):

schéma classique: schéma dimmerino:

XERR en arduino D6 XERR pas cablé
DCPRG au plus DCPRG pas cablé
iREF 2,2K iREF 6k8
VPRG pas cablé VPRG à la masse

Vois tu une explication ?

Bien à toi

Possible que ca marche moins bien avec un BC547 car un transistor bipolaire se commande en courant
Dans le cas du BC547 qui est un NPN, il faut être sur que la tension de base soit très faible pour qu'il n'y ait aucun courant qui rentre dans la base.

En fait si tu est prêt à mettre un transistor, je suggère plutot le montage suivant à base de PNP.

Quand le TLC est off, R2 tire la base du BC557 vers le VCC qui est bloqué.
Ainsi l'IRL ne conduit pas non plus car sa GATE est tirée au GND par R3.

Quand le TLC est on, il absorbe un courant qui va se répartir entre la résistance et la base du BC557.
Il faut calculer le courant (cf IREF) et R2 de manière à se que le transistor se sature et tire alors la GATE de l'IRL au +5V ce qui le rend passant.

Je partirait pour 4-5mA de courant de base.
Choisit un résistance de IREF pour que le courant absorbé par le TLC soit de de ~6..8mA ce qui se devrait suffir
R3 1K devrait faire l'affaire aussi.

A tester bien sur. Je raisonne sur papier...

Bonsoir barbudor, quelques nouvelles du front:

On avait achete et donc utilise les bc 547 . Ca a l air de bien fonctionner. Y vois tu contreindication?

Demain on stabilise l alim du tlc: brancher un fer, le compresseur qui s enclenche, brancher un cable usb sur le portable et le tlc se met en vrac, les vannes s,ouvrent et il faut reseter l uno...
7805 + condensateur

J espere qu on va solutionner ca car c est un peu l horreur de reseter 2x pour que ca refonctionne...

Ces quelques jours d essais s achevent sur une note plutot optimiste, meme si ce fut tres laborieux. Le nombre d erreurs ( faux contacts logique soudures etc ....) et le temps passe me font te demander: chez qui fais tu tes pcbs ???

Apres quelques vacances on rempile sur le projet :wink:
Ce qui est sur c est qu il faut aussi on comprenne vraiment comment fonctionne le tlc et ce que dit le datasheet. Voila.... Merci a toi encore, vraiment !
:slight_smile:

Bonjour

Pardonnez la traduction ... :slight_smile:

dimmerino utilisée la logique inverse a la sortie:

le cycle de 100% dans la TLC5940 est de 0% à la sortie

//******************************************************************************
#include <Tlc5940.h>
#include <lib_dmx.h> //deskontrol 4 universes DMX lib

void setup()
{
ArduinoDmx0.set_control_pin(2);
ArduinoDmx0.set_rx_address(5);
ArduinoDmx0.set_rx_channels(48);
ArduinoDmx0.init_rx();
Tlc.init();
Tlc.clear();
}

void loop()
{
uint16_t tmp;
for (int channel = 0; channel < NUM_TLCS * 16; channel ++)
{
tmp = 255 - ArduinoDmx0.RxBuffer[channel]; // invert DMX value

Tlc.set(channel, tmp << 4);
}
Tlc.update();
}
//****************************************************************************************

Chaque fois que je reçois de temps je envoyer le reste ...

Salutations.
Toni

bonjour toni et merci de ta réponse.

nous sommes passés par les courbes de whitecat pour inverser le signal, mais en fait il faut en effet que j inverse les valeurs dans le script. ta solution est la bonne.

quant au dimmerino, y a t il quelqu un qui en a déjà gravé des plaques ? j ai vu le pcb, mais il manque de la place pour des radiateurs.

sinon nous sommes partis de son schéma, mais les soudures ( ? ) ou les valeurs de résitances ( ? ) font que je bloquais à 6 circuits en termes de puissance. Pas sûr du tout de celà,.J'ai un peu de temps la semaine prochaine pour refaire des essais. as tu expérimenté avec le dimmerino des problèmes de puissance globale ?

merci de ta réponse

Bonjour.
Le conseil que j'ai monté et testé à un ami était la suivante:

Ici était de 48 canaux de sortie, et un Arduino Nano 368 qui contrôle l'entrée DMX et TLC5940
Ne l'utilisez pas à monter parce que je ne suis pas sûr si j'avais quelques modifications. Je vais vérifier avec la photolithographie ...

J'ai fait ce nouveau conseil, parce que la première plaque n'avait pas de connecteurs pour les sorties, devait souder les fils de la broche centrale de chaque MOSFET.

Puis, j'ai décidé de séparer toutes les 16 sorties (1 TLC5940) sur une plaque ...

Certaines choses que j'ai vues dans le prototype:
Les LED n'ont pas atteint complètement (j'ai toujours laissé quelque chose sur), cela peut être dû au bruit dans les mosfets (sur l'oscilloscope regardé joli bruit au niveau des sorties). Il peut être également due à l'absence de tension de polarisation, et enfin le pire, il pourrait être parce que le TLC5940 ne parviennent pas à 100% de cycle PWM ...
Si la TLC5940 atteint seulement 99,8% par exemple, pour inverser le sortie aura un minimum de cycle PWM de 0,2%, pas d'un cycle de 0%.
Bien que je n'ai pas essayé.

En ce qui concerne la puissance et les puits:
Je vais sur toutes les lignes avec plaque d'étain portant les sorties et n'ai eu aucun problème.
Pour les sorties je utiliser mosfets BUZ11 type sans dissipateurs, et n'ai eu aucun problème avec des courants entre 1 et 2 ampères par sortie.

Rappelez-vous: 48 sorties x 2 ampères = 96 ampères, c'est la raison pour laquelle dans la première plaque a été séparé des sorties en groupes de 16 canaux, d'utiliser trois alimentations séparées.

J'espère que la traduction n'est pas trop mauvais ... :blush:

Cordialement
Toni

Bonjour à tous,
après quelques mois de mise en sommeil, nous nous remettons sur ce projet.
Encore des tâtonnements ... mais voilà ou j'en suis : j'ai opté pour des transistor PNP (TIP 127), ce qui permet de commuter quand le tlc est au niveau bas (absorbe le courant), des réseaux de transistors de 1 KOhm pour les pull-ups et une résistance de 6K8 Ohm sur Iref.
Qu'en pensez-vous ? Barbudor cela te parait-il correct ?
Merci d'avance,
Jacques.

Pas bon sur plusieurs points :

  • Un transistor bipolaire se commande via une résistance, pas en direct. Tu va cramer l'Arduino. Seul un MOSFET peut se commander en tension.
  • on n'utilise pas un PNP comme cela. Ton montage ne marchera pas : le VBE de ton transistor sera toujours >0 et le transistor va toujours conduire. Soit tu utilises un NPN, soit tu utilises un PNP mais vers le +12V, ce qui n’empêche pas qu'il te faut un double étage avec un NPN d'abord sinon toujours le même problème.

Ton schéma est affreusement illisible. Fritzing est vraiment nul. Passes à un soft sérieux comme KiCAD, Eagle.

Réseau de résistance bof tel que placé.

SIncèrement, mieux vaut utiliser des NPN et accepter de commander avec un signal "1". Je ne vois pas pourquoi tu t'emm....e avec du PNP. Le seul intérêt du PNP dans ce genre d'application est de pouvoir commander par le + quand on souhaite avoir une masse commune.

Je ne sais pas (plus) ce que tu cherches a commander mais pourquoi s'embeter avec des discrets ? Pourquoi ne pas prendre des ULN2804 ?

PS: Je viens de me rappeler ce que tu cherches a faire et que c'est un TLC qui pilote, pas un Arduino.
Faut que je relise le sujet et ma réponse, tout n'est peut être pas bon dans ma réponse.

Désolé pour le schéma illisible ! J'ai un peu commencé à explorer eagle mais pour l'instant je ne le maitrise pas encore...
Oui c'est un tlc, l'intensité délivré est fixé par la résistance entre iref et la masse, c'est bien ça ? Du coup pas besoin de résistance pour limiter l'intensité ?
Nous cherchons à commander des valves qui consomment 750mA.

le VBE de ton transistor sera toujours >0 et le transistor va toujours conduire.

Je n'ai pas compris ! C'est quoi le VBE ?
Dans mon schéma précédent j'utilisais un double étage de npn pour inverser le signal (uln 2803 puis TIP 122), mais le montage avec des PNP me paraissait plus simple et limite le nombre de composant (à terme nous voudrions piloter une centaine de valves + des leds !).
Voici mon schéma précédent :

Je vient de me renseigner via wikipedia, donc vbe c'est la tension entre la base et l'émetteur.
Note que tout le circuit est en 5v, l’arrivée en 12v sert à alimenter le tlc via un 7805.
Je te remercie en tout cas de prendre le temps de te pencher sur notre problème.

Après réflexion, ton idée d'utiliser un PNP pour bénéficier de l'appel de courant du TLC5940 me parait une bonne idée :slight_smile:
Mais je pense que ton schéma n'est pas bon.

Le premier dessin à gauche ci-dessous reprend le principe de ton schéma. Le TLC5940 est présenté comme une source de tension négative qui absorbe le courant Ib.
RL est la résistance de charge (ta valve) et Rup la résistance de base (réseau de résistance).

Il se peut que cela marche mais j'ai quand même un doute car ce n'est pas le montage normal d'un transistor PNP en mode de commutation.

Avec un PNP je propose le montage 2 suivant qui pour moi est le bon/meilleur (?).
La résistance RB fait un pull-up de la base et quand le TLC ne prend pas de courant, le PNP ne conduit pas.
Quand le TLC tire le courant, il va tirer sur la résistance Rup et sur la base.
Par construction du transistor, VEB est une constante (environ 0,7V) ce qui fixe le courant dans Rup.
Il faut donc configurer la résistance de référence du TLC pour absorber ce courant + le courant de base nécessaire a faire saturer ton transistor.

Merci beaucoup Barbudor !
Je regarde ça cet après midi.

Les deux montages fonctionnent. Pense tu que mon montage peu poser problème, sachant qu'il me simplifie grandement le routage du pcb en simple face ?
Le pnp que j'utilise est un tip 127.
Pour la résistance de référence je nage un peu, pour mes test ça fonctionne avec un résistance de 6K8

Ce qui devrait faire que le tlc "absorbe" 5.7ma. Ça a l'air de suffire.

Si ca marche bien tant mieux.
Peut être quelqu'un d'autre peut-il commenter.
Ca me parait moins simple de faire saturer le transi dans le 1er cas.

Ok, merci pour tout tes conseils.
Je te tiendrai au courant de l'avancée du projet.
A bientôt,
Jacques.

Bonjour à tous.

Le projet avance dans toutes ses dimensions: recherches de subventions, dossiers, recherches tout court, imagination, recherche de partenaires, etc...

J'ai lancé un appel à dons pour couvrir la partie matérielle et permettre au projet d'être viable pour les matériaux.

Du coup a on réalisé une petite vidéo permettant de l'expliquer, et je penses que celà devrait intéresser quelques uns d'entre vous !

http://www.kisskissbankbank.com/pschuuu

Voilà, c'était les infos du jour !

christoph

Et maintenant un blog pour suivre l'évolution du projet :
http://le-chat-noir-numerique.fr/blog/

Ok, des nouvelles !

d'abord la communauté à répondu présent pour aider le projet ! la collecte a réussi, et c'est vraiment une très belle chose. http://www.kisskissbankbank.com/pschuuu

malheureusement, pas mal de problèmes avec le TLC.

on rebascule le projet autour du DMX, notamment via la librairie DMX de Toni :wink:

je bascule sur un autre thread car à priori les électrovannes envoient beaucoup de choses dans le circuit. peut etre que nos problèmes de mise en oeuvre viennent de la non isolation commande-unités de puissance