Auteur Sujet: commande servo par inter  (Lu 24623 fois)

philippe 31

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : commande servo par inter
« Réponse #15 le: janvier 02, 2016, 07:25:31 pm »
J'ai trouvé une solution afin de résoudre le problème. Je viens de faire la manip , le fonctionnement est bien
J'ai supprimé les 2 boucles dans le loop
A la place de
void loop()
{
  int numServo;
 
  for (numServo = 0; numServo < 4; numServo++)
    gereServo(numServo);
   
    for (numServo = 0; numServo < 4; numServo++)
    {
    byte positionInterrupteur = digitalRead(brocheInterrupteurPourServo[i]);
   
    if (positionInterrupteur == LOW) {
      evenementServo_DROIT(numServo);
                                      }
    else                              {
      evenementServo_DEVIE(numServo);
                                      }
     }
 
  delay(3);
}
J'ai écrit
void loop()
{
  gereServo(3);
       byte positionInterrupteur3 = digitalRead(brocheInterrupteurPourServo[3]);
        if (positionInterrupteur3 == LOW)
        {
         evenementServo_DROIT(3);
        }
        else 
        {
        evenementServo_DEVIE(3);
        }
  gereServo(2);
       byte positionInterrupteur2 = digitalRead(brocheInterrupteurPourServo[2]);
        if (positionInterrupteur2 == LOW)
        {
         evenementServo_DROIT(2);
        }
        else 
        {
        evenementServo_DEVIE(2);
        }
     gereServo(1);
       byte positionInterrupteur1 = digitalRead(brocheInterrupteurPourServo[1]);
        if (positionInterrupteur1 == LOW)
        {
         evenementServo_DROIT(1);
        }
        else 
        {
        evenementServo_DEVIE(1);
        }
     gereServo(0);
       byte positionInterrupteur0 = digitalRead(brocheInterrupteurPourServo[0]);
        if (positionInterrupteur0 == LOW)
        {
         evenementServo_DROIT(0);
        }
        else 
        {
        evenementServo_DEVIE(0);
        }
 
  delay(3);
}
Ce n'est pas le top en écriture de programme , mais je ne sais pas faire mieux
Je veux bien qu'il soit corrigé

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1691
    • Voir le profil
Re : Re : commande servo par inter
« Réponse #16 le: janvier 02, 2016, 07:38:25 pm »
Ah mais oui mais non.

Reprend le code avec la boucle. J'ai fait une erreur, j'ai mis i au lieu de numServo

void loop()
{
  int numServo;
 
  for (numServo = 0; numServo < 4; numServo++)
    gereServo(numServo);
 
  for (numServo = 0; numServo < 4; numServo++) {
    byte positionInterrupteur = digitalRead(brocheInterrupteurPourServo[numServo]);
    if (positionInterrupteur == LOW) {
      evenementServo_DROIT(numServo);
    }
    else {
      evenementServo_DEVIE(numServo);
    }
  }
  delay(3);
}
Cordialement

philippe 31

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : commande servo par inter
« Réponse #17 le: janvier 03, 2016, 06:43:38 pm »
Je viens de faire la modification . Le programme marche à merveille.

Je vais donc pouvoir commander mes aiguilles par des servos afin d'avoir des mouvements lents.
La commande se fera depuis RRTC via une centrale "Lenz" , des décodeurs d'accessoires "LTD" SA-DEC-4 et des cartes NANO .

Merci à vous pour votre aide , un merci particulier à Jean Luc
Cordialement
Philippe

DDEFF

  • Hero Member
  • *****
  • Messages: 738
    • Voir le profil
Re : commande servo par inter
« Réponse #18 le: janvier 04, 2016, 09:54:50 am »
C'est une bonne nouvelle !

Enseignement : c'est toujours dur d'intervenir dans le programme d'un autre.
On n'ose pas le modifier en profondeur... :D
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)