vérification programme arduino
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

vérification programme arduino



  1. #1
    invitec69fc300

    vérification programme arduino


    ------

    Bonjour à tous, j'aimerai savoir si mon programme arduino est en mesure de fonctionner.
    Le but de ce programme est de contrôler une machine à glace.
    les actions qu'ils doit exécuter dans l’ordre sont:
    -translation jusqu'aux dessous de la vanne (contrôler avec le temps) (moteur1)
    -monter de la glace jusqu'au capteur haut (moteur2)
    -descente de la glace et ouverture de la vanne en même temps jusqu'au capteur bas. (moteur2 + servoF)
    -quand il est en bas, translation vers le présentoir (contrôler avec le temps). (moteur1)
    J'utilise une carte méga car ce programme ce répétera pour 2 autres parfum de glace.
    Voici le programme:

    Code:
    const int vitesseMoteur1=2; // Constante pour la broche 2  moteur de translation
    const int sensMoteur1=22; // Constante pour la broche 22
    const int vitesseMoteur2=3; // Constante pour la broche 3 moteur de fabrication de glace (monter et rotation simultané)
    const int sensMoteur2=24; // Constante pour la broche 24
    
    const int AVANT = 1; 
    const int ARRIERE = 0;  
    
    #include <Servo.h> 
    Servo servoF;
    
    const int boutonF=26;
    const int capteurhaut=34;
    const int capteurbas=36;
    
    
    void setup(){
    servoF.attach(4);
    
     pinMode (vitesseMoteur1,OUTPUT); // Broche vitesseMotA configurée en sortie
     pinMode (vitesseMoteur2,OUTPUT); // Broche vitesseMotB configurée en sortie
     pinMode (sensMoteur1,OUTPUT); // Broche sensMotA configurée en sortie
     pinMode (sensMoteur2,OUTPUT); // Broche senMotB configurée en sortie
    
     pinMode(boutonF, INPUT);
     pinMode(capteurhaut, INPUT);
     pinMode(capteurbas, INPUT);
     
    }
    void loop(){
      int testF = digitalRead(boutonF);
      if(testF==HIGH);
      {
        digitalWrite(sensMoteur1,AVANT); // Marche avant
        analogWrite(vitesseMoteur1, x ); // moteur va a la vitesse "x" 
        delay(3000); //temps de fonctionnement du moteur
        analogWrite(vitesseMoteur1, 0); // arret du moteur sous la vanne de fraise
        while(capteurhaut == LOW) //boucle de montée de la glace
          {
           digitalWrite(sensMoteur2,AVANT); // Monter du moteur
           analogWrite(vitesseMoteur2, x ); //vitesse "x" de monter du conne 
           }
         delay(500); //attente après l'arrivé de la glace en haut
         while(capteurbas == LOW) //boucle fabrication de la glace (descente plus rotation)
         {
           digitalWrite(sensMoteur2,ARRIERE); // dessente du moteur
           analogWrite(vitesseMoteur2, x ); //vitesse "x" de dessente
           servoF.write (90); //ouverture de la vanne fraise
           }
         delay(500); // arret apres création de la glace en bas
         digitalWrite(sensMoteur1,ARRIERE); // Marche arrière (vers le présentoir)
         analogWrite(vitesseMoteur1, x); // moteur va a la vitesse "x"
         delay(3000); // temps pour aller au présentoir
         analogWrite(vitesseMoteur1, 0); //arret au présentoir
    }
      }
    Je voudrais savoir si le programme est bien pour faire ce que je veux , je prends aussi toutes améliorations possibles. Merci d'avance !

    -----
    Dernière modification par JPL ; 05/01/2015 à 16h48. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    invitee05a3fcc

    Re : vérification programme arduino

    Bonjour elroro66 et bienvenue sur FUTURA
    On peut avoir le schéma hard correspondant (moteurs et capteurs)?

  3. #3
    jiherve

    Re : vérification programme arduino

    Bonjour,
    J'ai comme un doute sur l'acquisition des fins de course, il n'y a aucun filtre antirebond, digitalRead ne filtre rien du tout, non plus que les truc type "capteurhaut == LOW".
    Il faut déjà écrire une routine d’acquisition/filtrage de tous les contacteurs.
    Je retrouve là un grand classique : programme ou machine à états nourrie par des entrées asynchrones non conditionnées.
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    invitec69fc300

    Re : vérification programme arduino

    Merci pour ces réponses rapides.
    Jiherve pourrait tu m'explquer avec des mots simples car je ne comprends vraiment pas le vocabulaire technique dans ce domaine.
    Je vais essayer de faire un schèma.

  5. A voir en vidéo sur Futura
  6. #5
    jiherve

    Re : vérification programme arduino

    Bonsoir,
    Un contact mécanique présente des rebonds donc il ne suffit pas d'en acquérir la valeur une seule fois à la volée, il faut un filtre/confirmateur pour s"assurer que l’état attendu est bien le bon.
    JR
    l'électronique c'est pas du vaudou!

  7. #6
    invitec69fc300

    Re : vérification programme arduino

    D'accord je comprends, il s'agit en fait d'une vérification. Quelle est la fonction ou le style de boucle a utilisé dans mon cas (arduino) ?

  8. #7
    jiherve

    Re : vérification programme arduino

    Re
    Il faut échantillonner (acquérir) l’état des switch sur un intervalle régulier (qqs mS) et par exemple faire un vote majoritaire.
    ex : sw_in(1) = 1 , sw_in(2) = 0, sw_in(3)=1 alors sw_out = 1.
    Ou bien utiliser un compteur que l'on réinitialise sur l’état non actif et qui compte ou décompte sur l’état actif:
    ex en pseudo code :
    if sw_in = 0
    compteur = 15
    else
    compteur = compteur -1
    end if
    if compteur = 0
    sw_out = 1
    end if


    c'est à adapter en fonction de la réalité des contacts.
    JR
    l'électronique c'est pas du vaudou!

  9. #8
    invitec69fc300

    Re : vérification programme arduino

    Je suis désolé mais c'est vraiment vraiment du chinois pour moi ...
    Pourriez-vous l'introduire dans la boucle de monter de mon programme pour que je vois comment vous faite car je vois pas du tout le fonctionnement la

Discussions similaires

  1. [ARDUINO ∞] Vérification de programme.
    Par invitedfc722fc dans le forum Électronique
    Réponses: 12
    Dernier message: 14/01/2014, 22h33
  2. Réponses: 2
    Dernier message: 23/07/2013, 14h52
  3. arduino leonardo:erreur du sketch en vérification
    Par invite27947033 dans le forum Électronique
    Réponses: 7
    Dernier message: 31/10/2012, 14h52
  4. Besoin d'une verification de programme
    Par invite83aaed09 dans le forum Électronique
    Réponses: 1
    Dernier message: 07/05/2012, 23h47
  5. Programme vérification :p
    Par invite6de84886 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 07/02/2009, 16h07
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...