Auteur Sujet: À votre avis ...  (Lu 21143 fois)

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
À votre avis ...
« le: septembre 11, 2020, 04:26:31 pm »
Bonjour à toutes et tous,

Avec le matériel (photo ci-jointe) est-il possible de commander plusieurs moteurs d'aiguillage à solénoïde avec le même relais ?
Explication : je prévois de passer par plusieurs aiguillages pour aller d'un point A jusqu'à un point B et j'aimerai que, avec un seul bouton de commande, tous les aiguillages permettent le passage d'une rame sans avoir à manipuler les commandes de chacun des aiguillages.
Exemple : pour aller de C3 en voie 1
Merci pour vos réponses
Jacques
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : À votre avis ...
« Réponse #1 le: septembre 11, 2020, 05:48:58 pm »
Chez moi j’utilise 2 relais par aiguille : un pour le sens et un pour l’impulsion de commande :
http://forum.locoduino.org/index.php?topic=290.msg3412#msg3412

De plus il faut éviter de commander plusieurs aiguilles en même temps ce qui provoquait un appel de courant fort.
Ca se fait par soft avec une file d’attente des commandes d’aiguilles.
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : À votre avis ...
« Réponse #2 le: septembre 11, 2020, 07:10:52 pm »
Pour se faire l'avocat du diable, on peut regarder les étiquettes et les notices :

Fleischmann / ROCO indique pour un aiguillage en N : 0,7A sous 14 à 16 V (~), donc plus en continu (12 ohms) .

Pour aller de C3 à V1, il y a 4 aiguillages, soit 2,8 A, soit ~ 50W.

Donc c'est possible si le transfo alternatif fait au moins 50W, puisque chaque relais est marqué 10A.

Maintenant est-ce raisonnable ? Moi, je ne le ferai pas, surtout dans un environnement Arduino.

Dominique a donné la solution.
Cordialement

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : À votre avis ...
« Réponse #3 le: septembre 11, 2020, 07:53:22 pm »
Une idée qui me passe par la tète à la lecture de vos réflexions ...
Dominique : "un pour le sens et un pour l’impulsion de commande".
-- Ne pourrait-on provoquer l'action sur l'aiguille suivante une fois que la précédente a terminé ?

ça se réalise sur les moteurs d'aiguilles de chez Tillig Bahn (n° d'article : 86112) voir le schéma ci-dessous, c'est du branchement direct et ça n'utilise pas Arduino.
Qu'en pensez-vous vous les Maîtres es Arduino ?
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : À votre avis ...
« Réponse #4 le: septembre 11, 2020, 08:50:42 pm »
ça doit dater d'avant l'invention de l'Arduino ?
Cordialement

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : À votre avis ...
« Réponse #5 le: septembre 11, 2020, 09:11:18 pm »
Vu le prix des relais par 8 ou 16, je garde mon conseil comme proposition et ça marche depuis plusieurs années  :D
Cordialement,
Dominique

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : À votre avis ...
« Réponse #6 le: septembre 12, 2020, 05:21:07 pm »
Permettez-moi d'insister sur ce problème ... (qui n'en est peut-être pas un !)
serait-il possible de programmer un temps de latence entre chaque commande envoyé au relais, par exemple une attente d'une seconde ?
ceci dans le but d'éviter les inconvénients cités dans la réponse de msport ?
- envoi cde relais 1
-- attente 1 seconde
--- envoi cde relais 2
---- attente 1 seconde
----- envoi cde relais 3
etc ... une seconde, c'est peut-être bien ou beaucoup ou pas assez ...
alors, possible ou pas possible ? faisable ou pas faisable ?
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : À votre avis ...
« Réponse #7 le: septembre 12, 2020, 06:15:00 pm »
Pour reprendre mon message précédent,
j'ai trouvé le document écrit par JPClaude en 2015 ou on peut trouvé le code qui je crois devrait convenir à mon interrogation.
Étant un programmeur nul et très mauvais, à 75 ans c'est très difficile de se dénouer le cerveau (!), à quel endroit de ce code pourrait-on inclure une pause d'une seconde, voire d'1/2 seconde pour obtenir le résultat désiré ?
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : À votre avis ...
« Réponse #8 le: septembre 12, 2020, 11:19:27 pm »
Vous devez adapter ce qui est déjà écrit, ce que nous faisons tous, malgré nos nombreux printemps.
Pour cela, il faut au moins que vous maitrisiez les bases : lire un bouton, allumer une LED ...

Ici, il faut lire un bouton itinéraire dans le loop (à déclarer), et déclencher en séquence les quatre aiguillages.

Si l'auteur était disponible, il proposerait certainement mieux.

En en-tête :
int boutonItineraire = A5;

Dans le setup :
   pinMode(boutonItineraire,INPUT_PULLUP);

le loop
void loop() {
  for (int i = 0;i<NB_TURNOUT;i++) {if (boutonTest(i))  activation_aiguillage(i);  }
  if (digitalRead(boutonItineraire) == LOW){
    for (int i=0; i<NB_TURNOUT; i++){
        digitalWrite(turnout[i].bobine1,TRAVAIL);      // activation, bobine à choisir
        delay(ACTIVATION);                          // duree de l'activation
        digitalWrite(turnout[i].bobine1,REPOS);       // arret de l'activation
        delay(1000);
    }
  }
}

Mais je crains qu'à Locoduino, on n'écrive pas de programme pour une demande particulière.

Attention, vous avez perdu la fin du programme ... Et mieux vaut donner le lien vers l’article d'origine, Locoduino est vaste.
https://www.locoduino.org/spip.php?article142
« Modifié: septembre 12, 2020, 11:26:38 pm par msport »
Cordialement

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : À votre avis ...
« Réponse #9 le: septembre 13, 2020, 05:34:08 am »
Merci pour cette fin du code.
Pour info, je ne veux pas qu'on me fasse mon programme ça ne me servirait pas pour comprendre ce que je lis.
Dans le cas présent, je demande simplement à quelle endroit il faut placer le code nécessaire pour procéder à une attente d'une seconde, voire d'1/2 seconde pour ne pas surcharger la carte.
Tout ce que je peux lire et comprendre de votre part à tous, est un tour de visse supplémentaire dans ma compréhension du code !
Un grand merci pour vos réponses
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : À votre avis ...
« Réponse #10 le: septembre 13, 2020, 03:23:47 pm »
Pouvez vous expliciter ce que vous voulez faire ?

1. une commande d'itinéraire donc commander les 4 aiguillages en séquence avec un bouton. Ce que je pensais avoir compris et proposé avec l'exemple à minima. A noter que ce n'est pas une fin de programme mais des instructions qui doivent être placées aux endroits indiqués. (le loop est remplacé)

ou

2. empêcher d'envoyer avant une seconde de temps une deuxième commande après une première.

là, il me semble que l'analyse du programme aurait du vous permettre de trouver la solution :
ajouter en ligne 96 , donc avant l'accolade qui passe à la ligne suivante.
    delay(1000);

mais c'est inutile, car le programme étant exécuté séquentiellement avec des delays, il ne commande pas deux bobines en même temps.
« Modifié: septembre 14, 2020, 02:47:58 pm par msport »
Cordialement

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : À votre avis ...
« Réponse #11 le: septembre 13, 2020, 05:23:42 pm »
Si vous n’y arrivez pas je publierai ma solution de commandes multiples d’aiguilles pour itinéraires avec délai entre aiguilles et 2 relais par aiguille (fleischmann en N). Les commandes (via Can) sont mises en tampon et exécutées successivement les unes après les autres.

Laissez moi le temps d’une mise au point après retour de vacances.
Cordialement,
Dominique

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : À votre avis ...
« Réponse #12 le: septembre 16, 2020, 02:31:02 pm »
Voilà, ça avance doucement ...
Avec le principe du "chenillard", voilà 2 photos d'une partie de mon tableau de commande encore en cours de conception.
Comme vous pouvez le constater, un seul bouton poussoir pour créer un itinéraire  ;D
Il me reste à créer sur le même principe, le TCO "Triage" :)
On avance, on avance ...  8)
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : À votre avis ...
« Réponse #13 le: septembre 17, 2020, 10:34:22 am »
Bonjour à toutes et tous,

Hier soir, j'ai saisi ce code. Ce n'est pas parfait loin de là, mais pour un débutant ... y a très certainement mieux mais c'est plus cher !
Je ne comprends pas les erreurs qui ressortent :
====================================
F:\PROGRAMMATION PERSO\TEST_Boutons-poussoirs-et-Aiguillages\TEST_Boutons-poussoirs-et-Aiguillages.ino: In function 'void loop()':
F:\PROGRAMMATION PERSO\TEST_Boutons-poussoirs-et-Aiguillages\TEST_Boutons-poussoirs-et-Aiguillages.ino:40:29: warning: invalid conversion from 'int*' to 'uint8_t {aka unsigned char}' [-fpermissive]
 buttonState = digitalRead(bp) ;
                             ^
In file included from C:\Users\jsior\AppData\Local\Temp\arduino_build_839821\sketch\TEST_Boutons-poussoirs-et-Aiguillages.ino.cpp:1:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:136:5: note:   initializing argument 1 of 'int digitalRead(uint8_t)'
 int digitalRead(uint8_t pin);
     ^~~~~~~~~~~
TEST_Boutons-poussoirs-et-Aiguillages:44:13: error: switch quantity not an integer
   switch (bp) {     // debut de la structure
==============================================
Pouvez-vous m'aider à résoudre ces erreurs ?
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?

Minimir09

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : À votre avis ...
« Réponse #14 le: septembre 17, 2020, 10:37:36 am »
petite précision :
 je vais utiliser une carte MEGA 2560 R3 pour le nombre de pins  !
La perfection n’existe pas sur Terre … Mais alors, d’où est-ce que je viens ?