Messages récents

Pages: [1] 2 3 ... 10
1
Aide / Re : portique container
« Dernier message par chris_bzg le juillet 12, 2025, 11:44:16 am »
Bonjour a tous.
je souhaite faire bouger un portique pour mon train en H0 mais je ne sais pas comment faire.
Je voudrais utiliser des servomoteurs sg90 continu ou 360°.
Appui sur un BP pour lancer le programme.
Le moteur 1 se lance doucement, au bout d'un certain temps il s'arrête. Temps ajustable.
Le moteur 2 se lance doucement, au bout d'un certain temps il s'arrête. Temps ajustable.
Lorsque le BP est relâché.
Le moteur 2 se lance doucement en sens inverse, au bout d'un certain temps il s'arrête. Temps ajustable.
Le moteur 1 se lance doucement en sens inverse, au bout d'un certain temps il s'arrête. Temps ajustable.
fin du programme.
Je n'arrive pas a gérer l'enchainement des moteur ni a réduire leur vitesse.
Pouvez vous m'aider.
Merci.

Jean Marc

Ton post date de  17 h 52 hier alors que j'ai donné une réponse à une autre demande identique de ta part à 16 h 30 !
S'il y a bien quelque chose d'énervant, c'est la multiplication des demandes sans prendre en compte les réponses.  >:(
Ceci dit, c'est gagné puisque quelqu'un a fait le boulot à ta place mais je ne suis pas certain que ce soit très profitable pour toi.

Désolé mais j'ai autre chose à faire que perdre mon temps avec quelqu'un qui ne veut pas lire les articles qu'on lui conseille. Bonne continuation tout de même !

2
Vos projets / Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Dernier message par Thierry le juillet 11, 2025, 09:34:50 pm »
Bonjour


Le fichier zip, qui est bien celui présent dans "CommandStation-EX-LaBox\PCB\Kicad\production", n'était pas à jour. C'est corrigé sur le Github !
3
Aide / Re : portique container
« Dernier message par Fantasio le juillet 11, 2025, 09:11:40 pm »
Bonsoir Marco et Brunotoutsimple

Voici une simulation du code proposé par Bruno:
https://wokwi.com/projects/436209861266463745
4
Aide / Re : portique container
« Dernier message par Brunotoutsimple le juillet 11, 2025, 08:23:53 pm »
Bonsoir
voici un code à tester:
#include <Servo.h>

// Création des objets servo pour les deux moteurs
Servo moteur1, moteur2;

// Définition des broches
const byte bpPin = 2;
const byte moteur1Pin = 3;
const byte moteur2Pin = 5;

// Valeurs PWM pour servomoteur 360° (arrêt, sens horaire, sens antihoraire)
const byte stopVitesse = 90;
const byte vitesseAvant = 60;
const byte vitesseArriere = 120;

// Temps d’activité pour chaque phase (en millisecondes)
const uint16_t t1 = 1500, t2 = 2000, t3 = 1800, t4 = 1600;

// Paramètres de rampe douce (durée totale et pas de variation)
const uint16_t rampeDuree = 500;
const byte rampePas = 5;

// Définition des états pour la machine à états
enum Etat {
  IDLE,             // Attente d'appui ou relâchement
  START_M1,         // Démarrage progressif moteur 1 en avant
  RUN_M1,           // Attente après démarrage moteur 1
  START_M2,         // Démarrage progressif moteur 2 en avant
  RUN_M2,           // Attente après démarrage moteur 2
  START_M2_REV,     // Démarrage progressif moteur 2 en arrière
  RUN_M2_REV,       // Attente après démarrage moteur 2 en arrière
  START_M1_REV,     // Démarrage progressif moteur 1 en arrière
  RUN_M1_REV        // Attente après démarrage moteur 1 en arrière
};

Etat etatActuel = IDLE; // État initial

// Variables de timing pour transitions
unsigned long horloge = 0;

// Variables de lecture du bouton
bool bpActuel = true;
bool bpPrecedent = true;

// Variables pour la rampe douce
bool rampeActive = false;
byte rampePWM = stopVitesse;
byte rampeCible = stopVitesse;
Servo* moteurRampe;

void setup() {
  pinMode(bpPin, INPUT_PULLUP);      // Bouton avec pull-up interne
  moteur1.attach(moteur1Pin);        // Association servo 1 à sa broche
  moteur2.attach(moteur2Pin);        // Association servo 2 à sa broche
}

void loop() {
  bpActuel = digitalRead(bpPin);     // Lecture de l’état du bouton

  // Détection des transitions (front montant ou descendant)
  if (etatActuel == IDLE && !bpActuel && bpPrecedent)
    etatActuel = START_M1;           // Passage à la séquence avant

  if (etatActuel == IDLE && bpActuel && !bpPrecedent)
    etatActuel = START_M2_REV;       // Passage à la séquence arrière

  bpPrecedent = bpActuel;            // Sauvegarde de l’état du bouton

  // Machine à états principale
  switch (etatActuel) {

    case START_M1:
      demarreRampe(moteur1, vitesseAvant);
      horloge = millis();
      etatActuel = RUN_M1;
      break;

    case RUN_M1:
      if (millis() - horloge >= t1) {
        moteur1.write(stopVitesse);
        demarreRampe(moteur2, vitesseAvant);
        horloge = millis();
        etatActuel = RUN_M2;
      }
      break;

    case RUN_M2:
      if (millis() - horloge >= t2) {
        moteur2.write(stopVitesse);
        etatActuel = IDLE;
      }
      break;

    case START_M2_REV:
      demarreRampe(moteur2, vitesseArriere);
      horloge = millis();
      etatActuel = RUN_M2_REV;
      break;

    case RUN_M2_REV:
      if (millis() - horloge >= t3) {
        moteur2.write(stopVitesse);
        demarreRampe(moteur1, vitesseArriere);
        horloge = millis();
        etatActuel = RUN_M1_REV;
      }
      break;

    case RUN_M1_REV:
      if (millis() - horloge >= t4) {
        moteur1.write(stopVitesse);
        etatActuel = IDLE;
      }
      break;
  }

  // ⏳ Rampe douce non bloquante pour moteurs
  if (rampeActive && millis() - horloge >= rampeDuree / (abs(rampeCible - stopVitesse) / rampePas)) {
    horloge = millis();

    if (rampePWM != rampeCible) {
      rampePWM += (rampeCible > stopVitesse) ? rampePas : -rampePas;
      moteurRampe->write(rampePWM);
    } else {
      rampeActive = false; // Rampe terminée
    }
  }
}

// 🌀 Démarre une rampe pour le moteur donné jusqu’à la valeur cible
void demarreRampe(Servo& moteur, byte cible) {
  rampePWM = stopVitesse;
  rampeCible = cible;
  moteurRampe = &moteur;
  rampeActive = true;
  horloge = millis();
}

5
Aide / portique container
« Dernier message par marco58 le juillet 11, 2025, 05:52:43 pm »
Bonjour a tous.
je souhaite faire bouger un portique pour mon train en H0 mais je ne sais pas comment faire.
Je voudrais utiliser des servomoteurs sg90 continu ou 360°.
Appui sur un BP pour lancer le programme.
Le moteur 1 se lance doucement, au bout d'un certain temps il s'arrête. Temps ajustable.
Le moteur 2 se lance doucement, au bout d'un certain temps il s'arrête. Temps ajustable.
Lorsque le BP est relâché.
Le moteur 2 se lance doucement en sens inverse, au bout d'un certain temps il s'arrête. Temps ajustable.
Le moteur 1 se lance doucement en sens inverse, au bout d'un certain temps il s'arrête. Temps ajustable.
fin du programme.
Je n'arrive pas a gérer l'enchainement des moteur ni a réduire leur vitesse.
Pouvez vous m'aider.
Merci.

Jean Marc
6
Vos projets / Re : LaBox" : Une Centrale DCC polyvalente et abordable
« Dernier message par Dralliam le juillet 11, 2025, 04:34:09 pm »
Bonjour,

Après un long moment d'absence loin du train, je reprends le fil et découvre des avancées remarquables sur le projet !
Bravo à toute l'équipe ! Vous avez fait un travail exceptionnel !

Il me tarde de tester, justement, j'essaye de commander le PCB.
Je ne sais pas trop où faire connaître cette info, mais je rencontre un petit soucis à la phase "Add gerber file"
En effet, dans les éléments disponible sur le Github, si on veut charger le zip complet "commandstation-ex-labox.zip" dans l'interface de JLCPCB le système ne trouve pas de circuit (retour : "Detected 0 layer")
Vu que l'arborescence est un peu chargée (ce qui n'est pas étonnant vu le niveau du projet !) j'ai cherché un peu et je tombe sur ce qui me semble le plus cohérent :
...\commandstation-ex-labox\PCB\Kicad\production\CENTRALE.zip

Ce fichier répond bien, un circuit électronique à 2 faces est bien identifié.
Or, sur ce circuit, il est mentionné "LaBox 1.0a3" alors que la version disponible sur Github est sensée être la v1.0a4.
Est-ce que j'ai raté qqch ?
Est-ce juste un oubli de mise à jour du wording sur le circuit ? auquel cas, ce n'est pas très grave je pourrai utiliser celui-ci, mais avec mes compétences ridicules je ne suis pas capable de déterminer si c'est bien une v1.0a4 que j'ai sous les yeux, les spécificités de cette version étant a priori :
1.0 a4 (28/06/2025)
- Add a rectangle under IC2 circuit.
- Move L6203 text to be able to see it on the final PCB
- Change reference of D1 and D2 to match with JLCPCB desiderata.
7
Vos projets / Re : portique pour container
« Dernier message par chris_bzg le juillet 11, 2025, 04:29:47 pm »
Bonjour,
Je pense que cet article pourrait t'aider. Prends ton temps pour le lire et bien le comprendre :
https://locoduino.org/spip.php?article25
Reviens vers nous si quelque chose t'échappe, on te donnera d'autres explications.

Sinon, ton projet est très sympa. Et tu vas y arriver ! ;)
Cdlt.
8
Vos projets / portique pour container
« Dernier message par marco58 le juillet 11, 2025, 04:03:35 pm »
Bonjour a tous.
Je suis nouveau sur ce forum et je fais du modélisme ferroviaire a l'échelle H0.
Pour animer mon réseau je souhaite faire translater un portique a container.
1) Un train arrive au dépôt passe sur un I.L.S se qui active la monté du crochet du palan.
2) Le crochet est en haut (temps de fonctionnement de bas vers haut) donc le portique démarre pour ce rendre au bout du quai  (temps de fonctionnement de gauche vers la droite). une fois arrivé au bout du quai il s'arrête.
3) Le crochet du palan redescend.

Donc pour faire simple.
1) le scénario s'enclenche par un I.L.S
2) Un servomoteur sans fin démarre, lentement. (monté du crochet)
3) Au bout d'un certain temps il s'arrête.
4) Un deuxième servomoteur sans fin démarre. (déplacement du portique).
5) Au bout d'un certain temps il s'arrête.
6) Le premier moteur redémarre en sens inverse. (descente du crochet).
7) Quand le train redémarre il repasse devant l'I.L.S qui enclenche les même manœuvre mais en sens inverse.

Je n'arrive pas a faire l'enchainement des tâches, mes servomoteurs démarre tous en même temps et je n'arrive pas non plus a les faire fonctionnés lentement.

Quelqu'un peut il m'aider.

Merci.

Jean Marc
9
Aide / Re : ESP32-C3
« Dernier message par Brunotoutsimple le juillet 07, 2025, 01:07:04 pm »
Avec plaisirs
10
Les réseaux / Re : décodeur LOCONET pour moteurs MP1
« Dernier message par trimarco232 le juillet 06, 2025, 10:39:57 pm »
Bonjour,
mille excuses pour la réponse tardive
si vous avez du lokmaus2 et du multimaus , le bus n'est pas loconet mais xpressnet : ils se ressemblent , mais ne sont absolument pas compatibles
j'ai quelque chose qui est électriquement compatible , mais le protocole xpressnet n'est pas (encore) implémenté
Pages: [1] 2 3 ... 10