Page 2 sur 2

Re: Un tableau de commande géré par arduino

Posté : 22 avr. 2021, 04:44
par likiki
Programme bien écrit et optimisé.

:yessss:


Tu vas pouvoir me donner des cours.

:cooooool:

Re: Un tableau de commande géré par arduino

Posté : 22 avr. 2021, 06:32
par herwat
:merciiii: , Christian .
Mais sois gentil avec mes chevilles, s'te plait ! :hhhaaaa:

Re: Un tableau de commande géré par arduino

Posté : 22 avr. 2021, 08:51
par Georges de Villette
Je te tire mon chapeau Hervé !!!!! :tirechap: :tirechap: :tirechap:

Re: Un tableau de commande géré par arduino

Posté : 22 avr. 2021, 09:26
par herwat
:merciiii: , Georges .
Je m'éclate à faire ces petits programmes . Un peu casse-tête, mais je m'éclate ! :D
Et puis, il parait que c'est bon pour lutter contre Alzheimer ! ! !

Re: Un tableau de commande géré par arduino

Posté : 22 avr. 2021, 10:30
par Georges de Villette
Il fut un temps , bien avant l'ère Covid 19 , ou Christian avait commencé à nous apprendre à programmer un Arduino ......
J'avais acheté le " paquage " Arduino avec tout " l'outillage " !
Et puis j'ai abandonné , pourquoi ?
Peut être une trop grosse consommation de Doliprane pour les maux de tête !!! :lollol:
Tu crois qu'il recommencerait ?

Re: Un tableau de commande géré par arduino

Posté : 22 avr. 2021, 11:40
par likiki
Pourquoi pas.


:mdr1:

Re: Un tableau de commande géré par arduino

Posté : 24 avr. 2021, 16:47
par Lherve54
En voila un joli monde !!

Des mouvements qui vont être fluide et réaliste !!

Une photo du support servo ? pour voir la liaison avec la commande de l'aiguillage ?

Merci par avance

Hervé

Re: Un tableau de commande géré par arduino

Posté : 24 avr. 2021, 17:03
par herwat
Première photo en page 1 , Hervé .

Re: Un tableau de commande géré par arduino

Posté : 24 avr. 2021, 19:40
par herwat
Voilà, l'interface du Méga pour le tableau "marchandise" est fait :
.
IMG_2701.jpg
IMG_2701.jpg (142.23 Kio) Vu 3603 fois
.
Il faut maintenant faire les câbles de connections . . .

Re: Un tableau de commande géré par arduino

Posté : 24 avr. 2021, 19:50
par likiki
Tu fait tes propres Schield, bravo.

:kingmoi:

Re: Un tableau de commande géré par arduino

Posté : 24 avr. 2021, 19:56
par herwat
Ben . . . il faut bien . Je ne trouverais jamais celui qui me convient . . . .

Re: Un tableau de commande géré par arduino

Posté : 24 avr. 2021, 19:58
par likiki
C'est du boulot, je te félicite.

:kingmoi:

Re: Un tableau de commande géré par arduino

Posté : 24 avr. 2021, 20:07
par Papy2568
Hervé a raison

On ne trouve jamais ce que l'on veut, donc il faut faire soi-même, ceci dit bonne réalisation. :cooooool:

Re: Un tableau de commande géré par arduino

Posté : 24 avr. 2021, 20:18
par herwat
:merciiii:

Mais maintenant , ce serait bien que ça fonctionne correctement ! :-)

C'est un peu casse-tête car pour plusieurs voies les trains peuvent arriver de deux directions . . .

Re: Un tableau de commande géré par arduino

Posté : 28 avr. 2021, 18:45
par herwat
Trop casse tête ! :hurt4:
Le fait que les trains puissent venir de deux directions différentes rend vraiment la chose complexe . . .
Il faut que je revois ma programmation en profondeur .

Donc, pour le moment, repos pour les neurones ! :D

Re: Un tableau de commande géré par arduino

Posté : 28 avr. 2021, 20:41
par likiki
Simple, tu met un panneau de sens interdit. :mdr3:

:sivousme:

Re: Un tableau de commande géré par arduino

Posté : 28 avr. 2021, 21:09
par herwat
ça existe à la SNCF ? :hhhaaaa:

Re: Un tableau de commande géré par arduino

Posté : 28 avr. 2021, 21:25
par Papy2568
Donc, pour le moment, repos pour les neurones
Tu as raison il ne faut pas s'abrutir.... ;)

Re: Un tableau de commande géré par arduino

Posté : 04 mars 2022, 18:14
par herwat
Bien que mon tableau de commande marchandise soit toujours en stand by , Je ressort ce sujet de sa torpeur car en faisant mes essais de pont transbordeur, je me suis rendu compte de lacune sur le réseau .

J'ai donc décidé de faire un changement de voie sur la passerelle d'entrée . Comme ceci :
.
IMG_2794.jpg
IMG_2794.jpg (83.94 Kio) Vu 2049 fois
.
Mais pas question de modifier les tableaux existants . J'ai donc fait ceci qui sera solidaire de la passerelle :
.
IMG_2795.jpg
IMG_2795.jpg (68.26 Kio) Vu 2049 fois
.
Rien de bien nouveau me direz-vous . Exact !
Les deux aiguillages sont commandés simultanément par un seul bouton poussoir avec changement de direction à chaque impulsion .

Pendant mes "vacances montélimardesques" Je me suis fait un petit programme inspiré des précédents mais revisité :

Code : Tout sélectionner

               /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                * * * * *         Commande aiguillage passerelle        * * * * *
                * * * * *    Commande les aiguillages RP 09 et RP 10    * * * * *
                * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     
     * Programme opérationnel
     * Deux servo 
     * Une entrée numérique commande les servo deux par deux
     * entree : changement d'état par impulsion

                        1            2 
                  ------O------------O------         BP     1  2  3  4  5 
                               /        
                           3  O                       0     1  1  0  1  1  
                             /                        1     0  1  1  1  0
                   -----O------------O------                      
                        4            5     

           Led 2 et 4     permanent
           Led 1 et 5 communes    Sortie D8              Entrée analogique : BP   A2
           Led 3                  Sortie D9              

     */   
    
    #include <Servo.h>
    
    const byte pinServo1 = 2;  //  Servo commandant l'aiguillage RP 09
    const byte pinServo2 = 3;  //  Servo commandant l'aiguillage RP 10
    const byte pinEntree = 5;
    const byte Led1et5 = 6;
    const byte Led3 = 7;

    boolean Poussoir = LOW ;
  
 //*******************    Configuration des mouvements servo selon plan de voie    **************

    boolean Inverse = false ;   // false Indique que le sens de rotation des 2 servo est le même
                                // true si le sens de rotation est inverse .
                                // Commutation par interrupteur sur D9
    const byte pinInter = 9;
    
 //**********************************************************************************************

    int MiniMax1[2]  = {600,900} ;
    int MiniMax2[2]  = {600,900} ;

    int vitesse[2]  = {-1,1} ;
            
    Servo monServo1;
    int Avance1;
    int angle1;
    int angleFinal1;
    boolean Sens1;

    Servo monServo2;
    int Avance2;
    int angle2;
    int angleFinal2;
    boolean Sens2;

    boolean Mvt1;
    boolean Mvt2;
    boolean Mvt;

    void setup()
      {
        pinMode (Led1et5, OUTPUT);
        pinMode (Led3, OUTPUT);
        pinMode (pinEntree, INPUT);
        pinMode (pinInter, INPUT);
                         
        monServo1.attach(pinServo1);
        monServo1.writeMicroseconds(750);
        delay(500);
        angle1 = 750;
        Sens1 = false;
        Mvt1 = true;
        
        Avance1 = vitesse[Sens1]; angleFinal1 = MiniMax1[Sens1];

        monServo2.attach(pinServo2);
        monServo2.writeMicroseconds(750);
        delay(500);
        angle2 = 750;
        Sens2 = Sens1^Inverse ;
        Mvt2 = true;
        
        Avance2 = vitesse[Sens2]; angleFinal2 = MiniMax2[Sens2];

        Mvt = Mvt1 || Mvt2 ;

       }
         
    void loop()
       {
         if(Mvt) { }
         else { Poussoir = digitalRead(pinEntree);
                Inverse = digitalRead(pinInter);

                if (Poussoir )
                   { 
                    Sens1 = !Sens1;
                    Sens2 = Sens1^Inverse ;
                   }
                    
                    monServo1.attach(pinServo1);
                    Mvt1 = true;
                    Avance1 = vitesse[Sens1]; angleFinal1 = MiniMax1[Sens1];
                    
                    monServo2.attach(pinServo2);
                    Mvt2 = true;
                    Avance2 = vitesse[Sens2]; angleFinal2 = MiniMax2[Sens2];

               }
              
        if (angle1 == angleFinal1)
                    {
                     Avance1 = 0;
                      monServo1.detach();
                      Mvt1 = false;
                    } 
        else {
              angle1 = angle1 + Avance1;      
              monServo1.writeMicroseconds(angle1);
             }

        if (angle2 == angleFinal2)
                    {
                     Avance2 = 0;
                      monServo2.detach();
                      Mvt2 = false;
                    }
        else {
              angle2 = angle2 + Avance2;      
              monServo2.writeMicroseconds(angle2);
             }

        Mvt = Mvt1 || Mvt2 ;

        if(Mvt){ digitalWrite (Led1et5, LOW);
                 digitalWrite (Led3, LOW);
               }
        else   { digitalWrite (Led1et5, !Sens1);
                 digitalWrite (Led3, Sens1);
               }
                
        delay(6);
    }
Bon, ça fonctionne sans problème .
Y pu qu'à monter tout ça . . . . .

Re: Un tableau de commande géré par arduino

Posté : 04 mars 2022, 20:05
par jeanjacques
Entre deux morceaux de nougat :hhhaaaa: :hhhaaaa: :sivousme:

Re: Un tableau de commande géré par arduino

Posté : 04 mars 2022, 20:24
par likiki
Trop top, belle reprise.

:bienv:

Re: Un tableau de commande géré par arduino

Posté : 05 mars 2022, 20:55
par herwat
jeanjacques a écrit : 04 mars 2022, 20:05 Entre deux morceaux de nougat :hhhaaaa: :hhhaaaa: :sivousme:
Non, même pas ! :hhhaaaa:

:merciiii: Christian.

Pour la suite, c'est ici

Re: Un tableau de commande géré par arduino

Posté : 06 mars 2022, 09:27
par likiki
Hé hé hé, j'ai vue, trop bien.

:cooooool: