Création d'un système d'aiguillage autonome pour une piste de slot avec trajectoire idéale

nombreux sont ceux qui font cette confusion, alors un peu de pédagogie :

  1. Toshiba parle en effet de 2 tensions max : 15V et 13.5V, c'est quoi ? ben c'est simple !
  • 15V c'est la tension à absolument ne pas dépasser sous peine de détruire le composant
  • 13.5V c'est la tension jusqu'à laquelle le composant fonctionne ; autrement dit, à 14V le composant survit (c'est déjà ça), mais le fonctionnement n'est plus garanti ; on peut toujours essayer de tricher un peu, notamment quand d'autres ont fait des expériences "concluantes" en ce sens, voire se dire "pourquoi bien faire quand on peut mal faire ?" ; pour ma part, je préfère que les montages dans lesquels je m'investis fonctionnent
  1. Toshiba recommande aussi de ne pas aller en-deça de 2v5, or le signal que nous avons à traiter (3ème rappel), passe par 0v : danke schön SLOTBAER

    on voit bien la forme du signal, dont les passages à 0V lors des bursts de données ; là aussi, la seule bonne nouvelle, c'est que le TB6612 ne sera pas détruit (en règle générale, ne jamais alimenter un IC avec un signal de ce type)

donc après avoir bien épaissi le doute quant-au fonctionnement du montage tel qu'envisagé, je vous donne 1 solution :

  • utiliser le 14V de l'alim en amont de la centrale, ainsi on a une tension propre ; mettre une 1N5400 avant chaque module, pour ramener à 13v3, dans la plage de fonctionnement ; bien entendu, laisser le condensateur sur le module ; pour lever une crainte légitime de vileroi, la perte de 0v7 n'a pas d'incidence sensible sur la précision du pilotage, selon mon expérience
  • dériver le signal de la voie avec un diviseur de tension, par exemple
    14Vdata - 10k - pwm - 4k7 - GND
    brancher le point milieu du diviseur, pwm, sur l'entrée pwm du module (c'est fait pour)
    ainsi vous aurez un module qui doit fonctionner comme vous le souhaitez

cela dit, votre intention initiale ne casse rien, donc rien n'interdit d'essayer si ça marche quand-même

1 Like

j'assume ce que j'écris, alors merci de ne pas tenter de corriger, c'est malpoli en + d'être maladroit

  • 1 avec toi
    un paramètre oublié/omis est le temps max d'un solénoïde en position ON
    il existe sur le marché des drivers de solénoïdes exemples chez TI qui gèrent la phase ON/maintien

Je pense qu'il faut sourcer du solénoïde type push-pull plus ou moins standardisé facile à approvisionner et qui ne coutent pas un bras exemple

merci pour la photo ; mon interprétation "libre" :
c'est effectivement des électros push-pull, on a 2 mosfets, et 2 chimiques pour les réserves d'énergie nécessaires aux mouvements de l'électro
le ressort ne sert pas pour le rappel, mais pour garder l'aiguillage en position non dévié , quand l'aiguillage est au repos ; le rappel dynamique est effectué par l'électro, car si on a un 1er bolide qui prend en dévié, et si le 2ème, qui colle le 1er, veut aller tout droit, il faut que l'aiguille reviennent très rapidement (énergiquement, une 50aine de watts avait-je écrit) en position non dévié
on peut aussi noter le segment de deadstrip retenu par ninco pour identifier le bolide qui se présente à la pointe de l'aiguillage : le pic utilise le SO-8 (lm393 ?) en bas à gauche du pcb pour mettre en forme ; le but, c'est ici d'identifier le bolide, mais la méthode permet aussi de simplement le détecter, de s'assurer qu'une zone donnée a bien été libérée (on est à l'abri d'un raté de capteur de sortie), voire éventuellement de mesurer la vitesse, en vue d'ajuster les timings à suivre

pas oublié par tout le monde :wink:

je viens de reprendre le post #224 pour être sur de ne pas avoir oublier ou donner une mauvaise information mais je ne vois pas .
dans ce post j'explique un dépassement
alors que dans le post 245 ,mon interpellation est au sujet d'un drapeau bleu.
ce sont 2 choses différente, donc 2 codages diffèrent.
je me sert du premier virage et de la première aiguille pour faire tous les test même si au final cette aiguille ne ferra que du dépassement.

@gonpezi ce soir je fais un test de ta proposition du post 260
puis je le faire avec L293 et aussi avec TB6612 ?

ne serait il pas judicieux de descendre l'intégralité de la piste a 13V ? plutôt que de descendre tous les modules.
je sais et j'ai vu sur un autre forum un post ou il est expliquer comment descendre la tension avec une alim variable, car la personne ne pouvait pas jouer avec son fils a 14V car les voitures étaient trop rapide . de mémoire la tension était descendu jusqu'à 9V sans perdre le signal du courant porteur
n'oublions pas que c'est une petite piste privé , ce n'ai pas une piste grand forma de club. la vitesse se travaille aussi avec des rapport d'engrenage plus ou moins long , si toutefois la piste s'avérait lente ( ce que je ne pense pas)

c'est bien gentil de poser des question pour faire avancer le smilblic, mais il faut aussi expliquer comment faire .

la position des capteurs , c'est moi qui la détermine du fait que le slot c'est ma partie.et concernant les essaie ne t'y trompe pas j'ai un peu d'expérience sur le placement des capteurs du fait que j'ai déjà possédé une piste BLST.
maintenant si ta seul contribution c'est de dénigrer les intervenant et leurs propositions, s'il te plait abstiens toi.
je viens ici pour apprendre, communiquer, et partager.
je ne viens pas pour lire des messages arrogant et acide.
j'ai fait la lecture de plusieurs de tes posts, et notamment le passionnant Tuto le transistor bipolaire ou MosFet simplifiés. tu es surement tres calé en electronique .
mais une chose est sur , tu as un gros probleme de communication

sur ce je retourne travailler

Héhé, je n'ai pas posté le n°260 je pense que tu veux dire le post n°262, si c'est le cas, si tu dois faire ce test et avec les deux composants le L293 et ​​le TB6612. Et puisqu'il y a des doutes quant à savoir si le TB6612 supporte le 14V, n'utilisez que du 12V pour les tests pour le moment,

Pour ces tests, n'oubliez pas de faire ce qui est indiqué dans les publications #271 et #275 de @vileroy, (pin 9 à 5V)

Et il mesure la tension en (V) que les rails ont.
Salutations.

tout-à-fait : pour ta piste, il est clair que 13v5 suffisent largement, on économiserait quelques diodes, mais reste le pb du passage par 0v qui nécessite 2 résistances par aiguille passive ; mais ce n'est pas grand chose, et tu verras bien si c'est nécessaire

c'est bien clair, mais il est aussi légitime de t'informer si on a quelque doute sur ton analyse, car ça risque de faire strike en aval ; avec l'expérience on sent les choses intuitivement, sans toujours pouvoir les formuler clairement, alors on pose des questions, cela te permet de consolider ta compréhension des choses ; pour ma part, je cois bien qu'on en reparlera

Bonjour @trimarco232 vous avez bien précisé qu'il ne fallait pas dépasser 13v5 et que éventuellement le TB6612 ne fonctionne pas, (c'est pourquoi j'ai demandé à @alfagtv916 de mesurer la tension sur les rails). Mais je ne comprends pas le 0V. Quand ou où surviennent-ils ?
Salutations.

mais si je met au 12V sans passer par la power base Ninco, ca nous dira pas si le courant porteur des voitures va passer.je crois me souvenir d'un message a ce sujet.il faut que je trouve un connecteur à brancher depuis le transformateur de PC sur la power base.
je vais faire le tour des cartons

Oui, mais c'est uniquement pour tester son fonctionnement et voir le nombre de broches à utiliser, je vous ai également demandé de mesurer la tension dans les rails je pense que ce ne sera pas 14V, (je pense que ce sera plus bas vu les données que vous avez donné sur le fonctionnement des voitures), et si c'est le cas, nous pourrions l'utiliser sans perdre le transporteur.
Avec le L293 on n'aurait pas de problèmes de tension et de porteuse, mais il faut aussi connaître le nombre de broches à utiliser. Donc, pour le moment, n'utilisez le 12V que pour la sécurité dans les tests.

ok je fais ca ce soir

le problème n'est pas d'en parler , mais la manière d'en parler.
je suis ouvert a toute les propositions, tests et discutions, tan qu'il y a du respect .

bonjour gonpezzi
c'est le 14V qui sort de la centrale ninco ; pour pouvoir envoyer des messages aux voitures, il y a des bursts qui sont des codes comprenant typiquement le numéro d'une voiture et la vitesse à laquelle elle doit rouler ; la morphologie de ce signal est illustré (par SLOTBAER) ci-avant
on voit que le signal passe souvent par 0v, c'est le bas des impulsions qui constituent chaque burst
or, les entrées VM du TB6612 ne veulent pas de 0v
alors ça ne devrait pas marcher, mais peut-être ça marche quand-même : le signal ne va peut-être pas être trop déformé, de manière à ce que les décodeurs des voitures puissent quand-même le reconnaître, cad. la voiture reste pilotable, c'est ce que alfagtv916 veut

concrètement, on va faire les essais en 12v pour tester le fonctionnement de base, puis on branche sur la centrale ninco, pour que alfagtv916 puisse vérifier si une voiture branchée entre le GND et la sortie du TB6612 (situation équivalente à la présence de la voiture sur le cœur de l'aiguillage passif) : si ça marche on laisse en l'état, si ça ne marche pas il faudra mettre ma solution en oeuvre, cad. extraction du signal par un diviseur de tension, qui pilote le TB6612, alimenté par un courant propre (donc par une tension propre, pour faire plaisir à vileroi, qui aurait tendance à confondre les notions de courant et d'intensité)

je propose de laisser tomber les L293D, qui n'apportent rien à cette problématique

1 Like

Pour mesurer un temps :

  • soit utiliser un moteur de recherche avec mot clé "mesure de temps arduino"
  • soit un oscillo, mais c'est cher et c'est rare d'en avoir un
  • soit un analyseur logique : à moins de 10 € c'est indispensable, mais je ne me fais pas d'illusion tu n'en a pas.
  • soit système démerde.

Système démerde :
Le capteur qui détecte les voitures fournis bien un signal ?
Ce signal peut déclenche une interruption (voir un tuto sur les interruptions).
Cette interruption provoque la lecture de la fonction millis(), voir un des nombreux tutos qui existent sur millis() et le fameux programme blink_without_delay.

Quand l'aiguille a complètement basculé elle est passée de 0V a +V ou l'inverse
Ce changement d'état peut aussi générer une interruption qui fait une deuxième lecture de millis(). Cela tombe bien il y a au minimum deux pins d'interruptions directe sur les cartes arduino.
Il me semble qu'@Artouste t'as transmis une idée pour prélever la tension de l'aiguille.

Il suffit de faire la différence de deux lectures de millis(). Ou de micro() si c'est trop rapide pour millis().

Possible bémol : il va y avoir des rebonds quand l'aiguille va sur sa nouvelle position, il existe sur ce forum de nombreux programmeurs qui savent gérer les rebonds par logiciel.

Remarque :
je cherche à dénigrer personne et je respecte tout le monde. Je ne fais que rappeler que le projet est complexe qu'il peut y avoir de casse et que sans méthode et plan de travail rigoureux cela part dans tous les sens.
C'est parfaitement visible quand on ne fait que lire ce qui se dit.

Si cela te dérange pas de soucis, je m'abstiens définitivement et vogue ta galère.

Bon courage.

1 Like

Salut. @trimarco232 Désolé je n'ai pas fait assez attention à vos précédents post #175 et # 280, je n'ai jamais pensé que le signal de contrôle avait ces valeurs, tout au plus je pensais à quelques mV.

Mais en regardant la capture d'écran du post #280. La tension ne chuterait-elle pas seulement à environ 7,5 V ? La ligne verte inférieure ne représente-t-elle pas 0 V ? Mais peu importe, c'est une variation brutale.

Néanmoins, je pense que cela pourrait fonctionner puisque la "logique" du circuit et le signal PWM sont connectés à 5V, cela pourrait transmettre le signal. Mais à cette question, vous avez déjà répondu de manière adéquate.

Voyons quels résultats donnent les tests. Les salutations.

Pour l'alimentation des aiguilles fixes

Merci, maintenant , je comprends effectivement le out of specs pour le 0V. Je le traduirais par lors du burst, la tension VM passe à 0V et le circuit (que ce soit un l293 ou un TB6612) ne peut imposer un 0V à l'aiguille n'étant plus alimenté, et ne pouvant donc pas rendre passant le transistor.

Du fait que les transistors de sortie soient tous deux bloqués, fait que la tension va être imposée par les diodes de protection. Quand on impose un 0V sur VM, on doit se retrouver avec 0,8V (seuil de la diode) sur la sortie. Cela devrait fonctionner. Mais la solution de supprimer le condensateur n'est pas vraiment top, et la solution d’alimenter le circuit en 13V propre et de jouer sur les entrées pour imposer le burst (post #280 de #trimarco232) me semble la meilleure solution.

J'y vois cependant deux remarques:

  • cela ne nécessite pas deux résistance par aiguille passive mais seulement deux résistances en tou, car le burst étant le même pour toutes les aiguilles, un pont diviseur peut fournir l'information à tous les TB6612
  • pour avoir un H en sortie il faut que les entrées (IN1 IN2 PWM STBY) soient à (H L H H)
    on a besoin d'imposer un 0V en sortie dans deux cas, il faut donc deux entrées l'une pour le burst, l'autre pour le choix de la tension continue 0V ou 13V. Changer IN1 ou STBY ne convient pas car cela mettrait le circuit en haute impédance. IN2 et PWM sont utilisables, PWM est non inverseuse, IN2 est inverseuse.

Du coup, on peut mettre le pont diviseur sur toutes les entrées PWM et commander pas IN2, et faire l'inversion dans le programme (IN2=L -> 14V et IN2=H -> 0V)

Pour les essais, il faut surtout voir si les voitures sont commandées correctement, pas seulement voir que l'on a du 0V ou du 13V. Cela implique:

  1. alimenter la piste en et en 0V
    mettre PWM sur le pont diviseur
    mettre (IN1 IN2 STBY) à (H L H) pour mettre à 13V + burst
    voir si les voitures réagissent bien
  2. alimenter la piste en 13V+burst et en
    mettre PWM sur le pont diviseur
    mettre (IN1 IN2 STBY) à (H H H) pour mettre à 0V
    voir si les voitures réagissent bien

Pour les aiguilles mobiles:

Pour le temps de basculement, je suppose que ce que l'on a besoin c'est d'avoir le temps entre l'ordre de basculement et le moment ou les rebonds sont finis, et surtout le temps entre l'ordre de repos de l'aiguille et le moment ou les rebonds sont finis. Non?
Si une voiture arrive sur une aiguille pendant les rebonds, cela sera peut perturber les bursts.

Si ce temps est de l'ordre de la ms, on doit pouvoir s'en sortir sans interruptions.
a) alimenter la piste entre 0 et 5V
b) relier l'ordre de changement sur une sortie de l'Arduino
c) relier la masse de l'aiguille sur une entrée
Pour la mesure par Arduino si au repos l'aiguille est à 0V quelque chose comme:

// Mesure du temps on
depart = micro();
digitalWrite(aiguille, HIGH);
while (micro() - depart <200000) // on attendra maxi 200ms
  if (digitalRead(masseDeLAiguille) = LOW fin = micros();
Serial.print("temps on: ");
Serial.print(fin - depart);
Serial.println("µs");

// Mesure du temps off
depart = micro();
digitalWrite(aiguille, LOW);
while (micro() - depart <200000) // on attendra maxi 200ms
  if (digitalRead(masseDeLAiguille) = HIGH fin = micros();
Serial.print("temps off: ");
Serial.print(fin - depart);
Serial.println("µs");

// Attente si on met le tout dans loop
delay(5000); // pour laisser refroidir le relais éventuellement

Je pense que le transistor n'est pas alimenté par VM, il est alimenté par vcc, Inx et PWM tous à un 5V propre. Ce transistor est saturé en attendant ce qui lui arrive via VM, qu'il s'agisse de rafales de données ou d'alimentation sans rafales et de les transmettre à l'aiguille fixe. Le problème c'est qu'avec le 14V on dépasse les 13,5V recommandés et on risque de devoir recourir au L293. Salutations.

non, c'est 14v et 0v, la ligne bleue, c'est la 2ème voie, inutilisée, de l'oscilliscope
(avoir un courant digital superposé à un courant continu est une bonne idée en soi, mais ça compliquerait vachement la conception du générateur au niveau de la centrale, et de la détection au niveau des décodeurs, entraînant une hausse inacceptable des coûts, et pour les décodeurs un encombrement incompatible avec la place disponible)

j'ai encore quelques connaissances, mais pas assez pour faire des supputations, ni de l'architecture interne du TB6612, ni des déformations que cela pourrait entraîner pour le signal, ni de la tolérance des décodeurs à ces déformations

pour un mosfet, on dit plutôt "passant" :wink: