Auteur Sujet: Asservissement de vitesse pour les (trains des) nuls  (Lu 29014 fois)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #15 le: mai 06, 2021, 09:04:13 pm »
Les 15kmh, oui, mais c'est du DCC et les décodeurs comportent une compensation de charge qui est manifestement basée sur la mesure de la FCEM ...
Cordialement

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1714
    • Voir le profil
Re : Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #16 le: mai 07, 2021, 08:51:33 am »
Et cette vidéo, c'est à quelle fréquence de PWM ??? car j'ai - vraiment - de plus en plus besoin de comprendre.

31,373 kHz

Citer
En effet, après ce n'ième rappel sur les "bonnes ondes" et un peu penaud d'avoir tant insisté sur mes 40Hz, je me suis vu reparti à refaire quelques essais "à la base", avec une PWM native de MEGA2560 (la 5 pour tout dire). Et si je suis incapable de refaire la théorie, je peux au moins rapporter les faits :

- aux paramètres par défaut : constat immédiat d'un retard à l'allumage rédhibitoire, assorti évidemment de l'impossibilité de "vrais" ralentis. Par exemple : là où je paramètre les PWM de "décollage" sur 50, en moyenne (selon la loco... puis variable selon son humeur, ce qu'elle tire, si elle démarre en courbe ou non, la direction du vent etc), c'est vers PMW 100 qu'elle se décidait à démarrer ("bondir" serait plus exact), feux prés-allumés pendant les longues secondes de la montée des crans de la programmation habituelle pour un démarrage progressif. Et je parle d'ampoules bulbe, pas de LEDs, ce qui donne idée du courant de court-circuit. Si ça ça ne fait pas chauffer le néodyme !!

Il n'y aurait pas une capa dans cette loco ?
« Modifié: mai 07, 2021, 08:56:10 am par Jean-Luc »
Cordialement

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #17 le: mai 07, 2021, 12:31:02 pm »
Citer
Il n'y aurait pas une capa dans cette loco ?

... toouute petite !! sert à rien ??

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1714
    • Voir le profil
Re : Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #18 le: mai 07, 2021, 01:03:23 pm »
Citer
Il n'y aurait pas une capa dans cette loco ?

... toouute petite !! sert à rien ??

Elle perturbe en lissant la tension vue par le moteur d'une part et elle perturbera la lecture de la FCEM. Ça explique pourquoi ça fonctionne à 40Hz et pas à 32kHz.
Cordialement

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #19 le: mai 31, 2021, 08:45:11 pm »
Bonsoir,

Asservissement de vitesse pour les nuls... saison 2

Résumé de la saison 1 : c'est fou, la FCEM ça se capte avec juste un bout de fil, deux résistances et un code minimaliste ! Et encore... la saison 2 démontrera que le code peut être encore plus simpliste. Voire carrément remplacé par un circuit RC ? Ce qui donnerait corps à la remarque de Msport :

Citer
Les 15kmh, oui, mais c'est du DCC et les décodeurs comportent une compensation de charge qui est manifestement basée sur la mesure de la FCEM ...

Alors SAISON 2 : Un code élaboré pourra-il produire EN SITUATION un véritable asservissement, plus "intelligent" que de la compensation de charge ?

En résumé : un peu oui et beaucoup non (en attendant la saison 3 !!)

Du côté du non :
Il y a deux conditions à une régulation réellement opérante : une mesure fiable de la grandeur et des corrections très fréquentes.
  • Première condition : l'horreur. Avec deux principaux problèmes :
     - un bruit de fond relativement important, cad l'impossibilité de mesurer une "erreur" (entre demande et constat) plus faible que le bruit de fond moyen
     - ET les transitoires aux frontières électriques, cad lorsque la motrice est à cheval  (mais il faut aussi raisonner "train", car la motrice une fois passée tout wagon générera du bruit de fond en maintenant la section sous tension ...)
  • Seconde condition : confiés à un nano qui a d'autres choses à faire, 100 cycles de mesures à la seconde ne sont pas loin du maximum possible. Malheureusement, 10millisecondes, du point de vue d'une boucle d'asservissement, c'est une éternité.
Autant du fait de la première que de la deuxième condition, pas la peine de penser à une correction "dérivée"... il faudra donc faire avec une proportionnelle fantasque (capable d'un freinage brutal immédiatement après un grand coup de +) et une intégrale vite chatouilleuse.

Le but est tout de même de tirer le maximum de ces FCEM, puisqu'il est possible de mesurer "quelque chose" !
  • Améliorer la mesure ?
    On a deux approches possibles :
    • un filtrage logiciel "élaboré" sur les mesures elles-mêmes. Dans cette approche, mes expériences n'ont pas donné mieux que ce que propose Jean-Luc : la moyenne des quatre valeurs médianes dans un groupe de six.
    • aucun filtrage : on prend tout de qui arrive, sans précaution préalable, sans même de délai de coupure du courant traction avant mesure, mais on prend le maximum de mesures possible. Et on compte sur l'effet statistique.
      Après moult essais, je n'ai pas su faire de différence sensible entre les deux approches (ce qui conforte à nouveau l'hypothèse de la compensation de charge DCC par rétroaction FCEM)

  • Peaufiner le code ?
    C'est ce qui peut faire la différence avec une compensation aveugle. Mais les contraintes inhérentes à la mesure sont toujours là, le code ne peut que tenter de différencier des situations pour apporter à chacune la réponse la plus appropriée. La complexification est presque sans limite.
    Mais deux exemples, deux situations très perturbées :
    • un train est détecté sur deux, ou plus, sections électriques : au milieu des mesures qui arrivent, lesquelles relèvent-elles d'un bruit de fond "wagons" ? Sachant qu'au démarrage, une motrice est tout d'abord vue comme du bruit de fond...
    • La correction proportionnelle devant être appliquée avec beaucoup de modération, comment régler la correction intégrale ? Si le convoi en marche lente "accroche" un point dur et s'arrête... l'intégrale doit très vite réagir mais si en réponse (tardive) le train "bondit", elle ne doit pas le stopper aussitôt mais le ralentir en délicatesse... les coefficients ne seront donc pas les mêmes.

Du côté du oui :
Dans ces conditions, il y a un réel plus par rapport à une conduite par la PWM: une régularité d'horloge, la quasi certitude de ne plus avoir de train définitivement bloqué sur un point délicat, une vitesse identique loco à vide ou en traction, des accélérations et ralentissements sous contrôle
...mais un ralenti "au pas"... heu pas vraiment.  Ou peut-être s'en approcher avec des conditions "labo" : une motrice très courte avec un max de roues au contact, lente car fortement démultipliée (donc grosse FCEM même à vitesse faible),  une seule zone électrique, pas d'aiguilles, des grands rayons... là oui, et/ou avec en plus le renfort d'une électronique assez futée pour doper le signal mais pas le bruit de fond (la phase 3 !) ça doit pouvoir être plutôt sympa!

Alors voilà pour l'instant ce que ça donne chez moi.
Avec trois "crans" : 15%, 11%, 8%. Sur ce  dernier, on voit nettement, surtout si on tremble en même temps que l'image, que la régulation flirte avec la capacité à distinguer le signal du bruit de fond... résultat : 25kmh et pas moyen en l'état de faire mieux...


... en attendant la phase 3 !
Mais là, gros problème. Car si un code c'est, pour moi, un peu comme les sous-titre anglais d'un film : je comprends plus ou moins et quand c'est mon tour d'écrire, en insistant je finis par me faire comprendre.
Mais un schéma électronique... ce coup, c'est un film avec des sous-titre en russe !
Quelqu'un aurait-il le temps et la gentillesse de me "traduire" ce schéma proposé par Jean-Luc ? Nécessaire et suffisant sauf erreur (de ma part !).
J'ai approvisionné les ampli OP, révisé les différents types de montage (sans reconnaître celui-du schéma...), me manquera plus que l'impression de ne pas faire n'importe quoi !

Un énorme merci par avance au volontaire (pourvu que !)


laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #20 le: juin 13, 2021, 12:07:43 am »
Bonsoir à tous

Je me permets de vous inviter aussi à regarder le sujet décodeur de locomotive que j avais ouvert il y a déjà un petit moment!...

En effet le code source que j avais cité NAGODEN ainsi que les vidéo qui démontre son fonctionnement éclaireront peut être les débats à la vue des algorithmes et schémas utilisés...

Bonne lecture.

Laurent

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #21 le: juin 13, 2021, 11:20:50 am »
un schéma électronique
Mais un schéma électronique hors de son contexte, c'est un film russe avec des sous-titres en cyrillique !

Le MCP1458 n'existe pas, c'est certainement le MC1458.

Le schéma ressemble à celui ci-dessous mais ici, la branche positive envoie l'AO en saturation dès qu'une tension positive est appliquée.
Est-ce le but ?
http://courelectr.free.fr/AINST/AINST.HTM

Cordialement

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #22 le: juin 13, 2021, 11:33:06 am »
Bonsoir à tous


https://forum.locoduino.org/index.php?topic=1043.msg12158#msg12158

On suit la recommandation de Dominique et on reste sans voix devant le niveau des contributions !
Cordialement

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #23 le: juin 15, 2021, 09:19:38 pm »
Merci à Laurent pour son indication.

En effet ça vole haut. Et c'est surtout très intéressant.

J'ai regardé le code "DSDCCDec_motor_BEMF_04a" et c'est confirmé, j'avais à priori pensé que c'était totalement impossible mais les décodeurs DCC font exactement le travail que propose Jean-Luc en analogique! Seule petite différence, l'algorithme fait en effet plutôt dans la "force brute", plus (+) de mesures, aucun filtrage.

Le gros avantage de l'analogique restant qu'on a pas la contrainte terrifiante de devoir tout faire tenir sur un timbre poste !
Bon d'accord... il ne reste aucun avantage si on a pas comme Laurent le challenge de faire ses propres décodeurs ( :o !) 

Pour ce qui est de la question de msport  "la branche positive envoie l'AO en saturation dès qu'une tension positive est appliquée. Est-ce le but ? "... Jean-Luc pourrait (pourra ?) sûrement le dire...

« Modifié: juin 15, 2021, 09:25:23 pm par simontpellier »

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #24 le: juillet 29, 2021, 10:02:14 pm »
Suite 3 ET FIN
- avec ABANDON de la piste asservissement
car ça marche... fort mal ou sinon dans des conditions extrêmement étroites (mais si c'est faux, je suis vivement intéressé par une démonstration).
Le signal de la mesure FCEM se contredisant régulièrement d'une mesure à l'autre, impossible d'en déduire la moindre action Proportionnelle. Et si l'Intégrale permet d'isoler une tendance, une action intégrale trop majoritaire, ça pompe, c'est obligé.

- MAIS...
idée : substituer à l'action proportionnelle une PWM "classique" : un cran donné de réglage => un équivalent tension => une vitesse... plus OU MOINS assurée compte tenu des nombreux facteurs quasiment tous d'accord pour ralentir (si ça n'est bloquer) la loco.
Plein d'excellentes occasions pour l'intégrale de faire son retour !
Et ça s'appelle de la COMPENSATION DE CHARGE ; dès que quoique se soit ralentit la loco, la FCEM diminuant, l'intégrale se réveille et... compense. (L'intégrale pourrait aussi faire du moins... il faut juste que ça soit à bon escient sinon on retrouve le souci du pompage)

J'aurais tout de suite compris toute la substantifique signification de "compensation de charge"... que j'aurais gagné bien du temps !
Car ça, ça marche ! Et sans aucun besoin d'électronique (problème réglé !) et ça donne enfin un fonctionnement en analogique propre, fluide, régulier, reproductible. Réaliste !

(j'admire au passage le fait que le DCC puisse intégrer, "in situ" qui plus est, une fonction tout de même complexe mais tellement indispensable).

Et pour ce qui est de la marche à basse vitesse... match nul non ? Analogique (avec compensation de charge donc !) et DCC se rejoignent forcément sur les mêmes réalités : selon la loco on obtient effectivement du 5kmh régulier, pour d'autres ça sera jamais moins que 25kmh (et ceci bien sûr ::) à condition que les roues soient astiquées, les rails décapés, les contacts nickels...).
Dernière remarque ; sous réserve que j'ai à peu près compris ce qu'est un réseau en DCC : la loco se charge de tout ! Alors que dans l'analogique ça sera loin d'être aussi simple ; le problème à résoudre sera celui du sectionnement électrique qui impose de compiler et traiter plusieurs relevés de FCEM pour un même train, tant en traction qu'en refoulement (même dans le cas d'une loco solo !).
Mais ça se fait et c'est typiquement le plaisir collatéral de l'analogique, faire tourner un code !

Peut-être à bientôt pour de nouvelles aventures ?
En tous cas bien cordialement

Philippe



Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #25 le: juillet 30, 2021, 09:09:21 am »
Bravo Philippe et un grand merci pour ce partage vraiment détaillé qui va permettre au plus grand nombre de comprendre ce qu’on peut faire en « analogique ».

Bien qu’ayant la plupart de mes locos en digital, il reste quelques « gauloises analogiques » que j’aimerai faire tourner de temps en temps. L’idée de faire un tronçon analogique progresse donc, grâce à toi.

Amicalement
Dominique
Cordialement,
Dominique

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #26 le: juillet 30, 2021, 09:16:02 pm »
Bonsoir Dominique,

Merci pour cette attention !
Et note bien que quand tu te lanceras, ça sera un grand plaisir pour moi si tu veux qu'on échange (d'autant que j'en tirerai profit, j'en suis certain !).

Amicalement
Philippe

NB : Ça sera également un vrai plaisir de répondre sur ce sujet à quiconque le souhaiterait. Je joins d'ailleurs à titre documentaire et pour démystifier le bout de code, commenté, qui permet d'obtenir, pour chaque train, un signal FCEM exploitable par un gestionnaire (dans une logique à 1 satellite pour 4 sections (au plus), communiquant avec un gestionnaire central)


  const uint16_t PWM_OFF = 300;                           // 300 microSeconds - temps de coupure du courant traction
  const uint16_t PWM_ON = 10000;                          // ~10 milliSeconds - période "ON", moteur alimenté
  uint32_t time_ON; 
  bool timeToEmitFCEM;

  const uint8_t NB_SECTIONS = 4;                          // ex : 4 sur ce satellite
  const uint8_t SECTION_PINOUT[NB_SECTIONS][5] = {.......};
// pour chaque section :
// - numéro de la section (sur le réseau)
// - num de la pin(satellite) de polarisation 1 du pont H qui alimente la section
// - pin de polarisation 2
// - pin analogique de lecture FCEM de la section en polarisation 1
// - pin analogique de lecture FCEM en polarisation 2
  uint8_t trainOnSection[NB_SECTIONS] = { 0, 0, 0, 0 };   // contiendra 0 pour libre ou num de train+1 (fourni par ailleurs par le master) si occupée
  bool polarization[NB_SECTIONS] = { 0, 0, 0, 0 };        // data fournie par le master en complément du numéro de train
  uint8_t trainNum[NB_SECTIONS] = { 0, 0, 0, 0 };         // numéros des trains présents sur les sections du satellite (numérotation "vraie")
  uint8_t trains;                                         // nombre de trains différents recensés à l'instant "t"
  uint16_t sumFCEM[NB_SECTIONS];
  uint16_t count[NB_SECTIONS];
  int16_t reading[NB_SECTIONS][6];                        // 6 mesures pour chaque section (si occupée)


void mesureFCEM() {
  if (timeToEmitFCEM) /*=>*/ sendFCEM();                  // LES sats ont reçu (par ailleurs) un message du MASTER enjoignant à transmettre les relevés
  if (micros() - time_ON < PWM_ON) /*=>*/ return;

  if (trains) {
    for (uint8_t i=0; i<NB_SECTIONS; i++) {               // au moins un train détecté => tous pins de polarization LOW (=> coupure du courant traction)
      digitalWriteFast(SECTION_PINOUT[i][1], LOW);
      digitalWriteFast(SECTION_PINOUT[i][2], LOW);
    }   
    delayMicroseconds(PWM_OFF);                           // attente avant mesures
    for (uint8_t i=0; i<NB_SECTIONS; i++) {
      if (trainOnSection[i]>0) {                          // TOUT OU PARTIE du train numéro "trainOnSection[i] occupe la section i
        for (uint8_t j=0; j<6; j++) {                     // 6 mesures
    reading[i][j] = analogRead(SECTION_PINOUT[i][3+polarization[i]]);
        }
      }
    }

  /* TRAITEMENT DES DONNEES */
    int16_t read[NB_SECTIONS] = {0, 0, 0, 0}, maxRead[NB_SECTIONS] = {0, 0, 0, 0}, minRead[NB_SECTIONS] = {0, 0, 0, 0};
 
    for (uint8_t i=0; i<NB_SECTIONS; i++) {
      if (trainOnSection[i]) {                            // il y a un train dans la section i => au moins une section est occupée
        if (polarization[i]) /*=>*/ digitalWriteFast(SECTION_PINOUT[i][1], HIGH);
        else /*=>*/ digitalWriteFast(SECTION_PINOUT[i][2], HIGH);  // rétablissement de la polarization initiale
        maxRead[i] = reading[i][0];                       // première mesure
        minRead[i] = reading[i][0];
        read[i] = reading[i][0];
        for (uint8_t j=1; j<6; j++) {                     // on lit les 5 autres mesures et on repère les deux extrêmes
          maxRead[i] = max(reading[i][j], maxRead[i]);
          minRead[i] = min(reading[i][j], minRead[i]);
          read[i] = (read[i] + reading[i][j]);            // sommation des SIX lectures
        }
        read[i] = (read[i] - maxRead[i] - minRead[i])/4;  // moyenne des 4 valeurs retenues après élimination des extrêmes
        maxRead[i] = 0;
      }
    }
    // si train sur 2 sections (ou plus), on filtre les résultats "fake" (wagons) en comparant les mesures de ce train
    for (uint8_t j=0; j<trains; j++) {  // à ce stade, "trains" est forcément au moins égal à 1, le numéro du premier train nomenclaturé étant inscrit dans trainNum[0]
      for (uint8_t i=0; i<NB_SECTIONS; i++) {    // on recherche ce train sur toutes les sections et on repère son read max
        if (trainOnSection[i] == trainNum[j]) {  // un train a été nomenclaturé à l'indice j (toujours vrai une fois au moins)
          maxRead[j] = max(read[i], maxRead[j]); // max-des-max pour le train j de numéro trainNum[j]
        }
      }
      for (uint8_t i=0; i<NB_SECTIONS; i++) {    // on compare les résultats section par section, on garde ou non
        if (trainOnSection[i]==trainNum[j] && read[i]> maxRead[j]/2) { // écart "normal" => on prend en compte la mesure (maxRead répond à la condition)
          sumFCEM[j] = sumFCEM[j] + read[i];
          count[j]++;     // sumFCEM == première ou nouvelle sommation pour ce train, puis comptage des sommations
        }
      }
    }
  }
  time_ON = micros();
}

void sendFCEM() {
  timeToEmitFCEM=false;
  for (uint8_t j=0; j<trains; j++) {
    if (count[j]) {
      const uint16_t TRAIN = trainNum[j]-1;
      messageCAN_FCEM.id = 72 + TRAIN;       // EXEMPLE : (64 pour satellite"0", 72 pour sat"1" etc) + n° du train converti en valeur "code"
                                             // /!\ une loco en chevauchement sur 2 sections gérées par 2 sats # pourrait générer 2 messages identiques et simultanés, provoquant
                                             // UN PLANTAGE DU BUS. L'ajout du n° de sat dans l'ID permet,de discriminer les messages (+ autres usages) */
      uint16_t fcem = sumFCEM[j]/count[j];
      if (fcem < FCEMtrain[TRAIN]/2) /*=>*/ fcem = FCEMtrain[TRAIN]/2; // "passe-bas", bride les points aberrants
      messageCAN_FCEM.data16[0] = fcem;      // on ne transmet pas la section, c'est une donnée connue du master
      const bool OK = ACAN::can0.tryToSend(messageCAN_FCEM);
      FCEMtrain[TRAIN] = fcem;
    }
    sumFCEM[j] = 0; count[j] = 0; trainNum[j] = 0;
  }
  scanSections();  // AVANT LES PROCHAINES MESURES, ON REFAIT LA NOMENCLATURE DES TRAINS
}

void scanSections() { // inventaire et classement dans trainNum[] des trains présents sur les sections traitées par le sat
  bool flag = 1; 
  trains = 0;
  for (uint8_t i=0; i<NB_SECTIONS; i++) {
    trainNum[i] = 0;
    if (trainOnSection[i]) {
      for (uint8_t j=0; j<=trains; j++) { 
        if (trainOnSection[i] == trainNum[j]) {
          flag = 0;
          break;
        }
      }
      if (flag) {
        trainNum[trains] = trainOnSection[i];
        trains++;
      }
      flag = 1;     
    }
  }
}

« Modifié: janvier 22, 2022, 06:14:48 pm par simontpellier »

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #27 le: janvier 08, 2022, 07:22:00 pm »
Bonsoir,

Je me permets de réveiller ce fil pour y mentionner la découverte de deux possibilités... à priori "unexpected" offertes par la mesure de la FCEM sur un réseau analogique.

Il y a juste un pré-requis : que le réseau soit organisé en sections, équipées d'une détection de passage (et/ou présence). Mais c'est certainement toujours le cas ?

Outre la compensation de charge, on peut alors bénéficier de deux fonctions bien intéressantes :

- très simple, la détection du sens de marche, non pas bien-sûr le sens de rotation mais la marche TRACTION/REFOULEMENT
   * premier cas : une section détecte un train et concomitamment une FCEM => c'est une motrice (sauf cas ennuyeux mais très-très rare d'un matériel avec un seul bogie moteur) ;
   * second cas : un train est détecté mais la FCEM reste nulle, ou insignifiante => c'est un CONVOI en refoulement.
     Une donnée qui peut être utilisée pour éviter une marche à grande vitesse en refoulement, possiblement périlleuse (et peu réaliste ?)

- plus "sioux", que je n'ai pas implantée mais les tests sont positifs :
  une FCEM étant le reflet du nombre de tours moteurs, il suffit d'une variable, par motrice, donnant sa démultiplication pour que les mesures de FCEM, intégrées sur un temps donné, indiquent une distance parcourue ;
      * un top détection puis un top fin-de-détection SUR UNE SECTION : la différence des deux temps donnera la longueur du convoi (comptage des wagons, triage) ;
      * un top détection puis l'atteinte PAR LE TRAIN d'une FCEM intégrée prédéterminée => le convoi a atteint un point précis (dépendant c'est vrai de mesures elles-mêmes précises, donc de la qualité du contact rails/roues)
        et ceci quelque soit le sens de marche, traction/refoulement et sa vitesse !
        de quoi disposer à volonté de détecteurs de position virtuels pour ralentissements, arrêts etc

et de quoi s'amuser non ?



   
« Modifié: janvier 08, 2022, 07:26:53 pm par simontpellier »

SYLTRAIN

  • Newbie
  • *
  • Messages: 19
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #28 le: février 10, 2022, 06:58:03 pm »
Bonjour,
question de debutant qui je l' espere n' est pas hors sujet
Pourquoi ne pas utiliser la sortie de la broche (1) du L298 (broche Vsensor) pour faire la mesure de courant et/ou la detection de presence de train sur le canton ?
Peut etre que ce n' est pas les memes valeurs ? (car sinon on coupe ou dessoude la patte du l298 du shield (patte longue ) et on resoude un fil dessus avec une resistance )
Peut etre que je nai pas compris tout simplement :)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Asservissement de vitesse pour les (trains des) nuls
« Réponse #29 le: février 10, 2022, 08:52:45 pm »
Bonsoir,
tout le débat tourne autour de la mesure de la Force Contre Electro Motrice, il s'agit d'une tension.
La broche 1 du L298 mesure le courant dans le pont, donc rien à voir avec une tension.
Cordialement