Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

Projet maquette avec carte arduino, soucis de programmation



  1. #1
    Jean-Louis34260

    Projet maquette avec carte arduino, soucis de programmation


    ------

    Bonjour à tous,
    Je m'appelle jean-louis et j'ai 55 ans.
    C'est la première fois que je m'inscris sur un forum et je ne sais pas comment il faut s'y prendre.
    Donc je vous demande d'être tolérant sur mes erreurs et vous en remercie d'avance sincèrement.

    Je vous expose ici la raison de ma présence. Un ami à un projet de maquette d'une salle multi sports demandé par les élus de sa ville.
    Cette maquette à comme particularité d'avoir l'étage de la salle multi sports qui se soulève pour laisser entrevoir le RDC au visiteurs.
    L'étage se soulève par deux vis sans fin muent par un motoréducteur piloté par une carte Arduino uno.
    Le système comporte un capteur capacitif sensible au touché d'une zone métallique ou tout autres moyens de détecter la présence de visiteurs (capteur radar).
    Il comporte aussi un fin de course haut, un fin de course bas et un shield relais enfiché sur la carte Arduino et un témoin LED d'allumage des diverses lampes d'éclairage de la maquette.

    Description du fonctionnement: Un visiteur touche la zone sensible : - allumage des éclairage de la maquette (relais lumière RL),
    - petite temporisation,
    - mise sous tension du motoréducteur dans le sens de la montée (relais montée RM),
    - arrêt du motoréducteur sur fin de course haut (fin de course haut FCH),
    - temporisation,
    - mise sous tension du motoréducteur dans le sens de la descente (relais descente RD),
    - arrêt du motoréducteur sur fin de course bas (fin de course bas FCB)
    - temporisation avant retour à la détection au début du programme.

    Mon problème est que ma logique de fonctionnement, influencée par les anciens automates séquentiels programmés en grafcet, n'est pas la logique Arduino.
    Après avoir étudié le langage Arduino avec l'aide de nombreux livres et réalisé les exemples de programmation, je me suis dis que réaliser l'automatisme de cette maquette sera aisé compte tenu du peu d'organes périphériques.
    Après de nombreux essais, dont un avec les fins de course directement dans le circuit de puissance du motoréducteur et diverses temporisation qui fonctionne très bien.
    Je suis insatisfait de mon travail aux vus des capacités de la carte Arduino.
    Je souhaiterais que tous les périphériques, fins de course, détecteurs, témoins soient directement raccordés sur la carte Arduino.
    Et c'est là que ma logique ne fonctionne pas.
    Je sollicite donc de l'aide pour m'aider à comprendre pourquoi le programme que je joins ne fonctionne pas.
    Je vous remercie par avance de l'aide que vous m'apporterez.

    Code:
    #define CC 3    //capteur capacitif en pin 3
    #define FCH 5   //fin de course haut en pin 5
    #define FCB 6   //fin de course bas en pin 6
    #define RL 2    //relais éclairage maquette en pin 2 (pin imposé par le shield relais)
    #define RM 7    //relais monté étage en pin 7 (pin imposé par le shield relais)
    #define RD 8    //relais descente étage en pin 8 (pin imposé par le shield relais)
    #define LL 9    //Led témoin éclairage maquette en pin 9
    #define LED 13   //Led témoin moteur en Pin 13 (led sur la carte)
    
    int ETAT_CC=0;   //variable état du capteur capacitif
    int ETAT_FCH=0;  //variable état fin de course haut
    int ETAT_FCB=0;  //variable état fin de course bas
    
    void setup() {
      
    pinMode(CC,INPUT);     //pin (3) capteur capacitif en entrée
    pinMode(FCH,INPUT);    //pin (5) fin de course haut en entrée
    pinMode(FCB,INPUT);    //pin (6) fin de course bas en entrée
    pinMode(RL,OUTPUT);    //pin fin (2) relais lumière en sortie
    pinMode(RM,OUTPUT);    //pin relais (7) montée en sortie
    pinMode(RD,OUTPUT);    //pin relais (8) descente en sortie
    pinMode(LL,OUTPUT);    //pin led témoin (9) éclairage maquette en sortie
    pinMode(LED,OUTPUT);   //pin led témoin (13) moteur en sortie
    digitalWrite(RL,LOW);  //forcage relais lumière au repos au demarrage
    digitalWrite(RM,LOW);  //forcage relais montée au repos au demarrage
    digitalWrite(RD,LOW);  //forcage relais descente au repos au demarrage
    Serial.begin(9600);   
    
    }
    
    void loop() {
      
    ETAT_CC=digitalRead(CC);   //lecture et sauvegarde état capteur
    if (ETAT_CC==1) {          //si capteur touché
      digitalWrite(RL,HIGH);   //éclairage maquette
      digitalWrite(LL,HIGH);   //allumage led témoin
    }
    delay(2000);               //tempo de 2 secondes
      digitalWrite(RM,HIGH);   //mise sous tension moteur en montée
      digitalWrite(LED,HIGH);  //allumage led témoin
      
    ETAT_FCH=digitalRead(FCH); //lecture et sauvegarde état fin de course haut
    if (ETAT_FCH==1) {         //si fin de course actionné
      digitalWrite(RM,LOW);    //arrêt montée
      digitalWrite(LED,LOW);   //extinction led témoin
    }
      delay(2000);             //tempo 2 secondes
      digitalWrite(RD,HIGH);   //mise sous tension moteur en descente
      digitalWrite(LED,HIGH);  //allumage led témoin
      
    ETAT_FCB=digitalRead(FCB); //lecture et sauvegarde état fin de course bas
    if (ETAT_FCB==1) {         //si fin de course actionné
      digitalWrite(RD,LOW);    //arrêt descente
      digitalWrite(LED,LOW);   //extinction led témoin
    }
    delay(2000);               //tempo 2 secondes
      digitalWrite(RL,LOW);    //extinction éclairage maquette
      digitalWrite(LL,LOW);    //extinction led témoin éclairage maquette
    }

    -----
    Dernière modification par Antoane ; 05/05/2016 à 12h20. Motif: Ajout balises [/code]

  2. #2
    PIXEL

    Re : Projet maquette avec carte arduino, soucis de programmation

    hello....

    tu balance de la ligne , soit....

    si tu as fait du GRAFSET tu as appris à structurer ta démarche par un organigramme.

    quid d'icelui ?

  3. #3
    Jean-Louis34260

    Re : Projet maquette avec carte arduino, soucis de programmation

    Bonjour
    Je n'ai malheureusement pas appris le grafcet , j'ai juste adapter un API à une maquette.
    Cet API se programmait en grafcet (j’essaie de retrouver le programme)....
    J'ai retrouvé l'ancien projet qui fonctionne toujours d’ailleurs.
    Je n'arrive pas à joindre le pdf qui pèse 9.3 Mo.

    Merci pour votre attention.
    J-L

  4. #4
    HAYAC

    Re : Projet maquette avec carte arduino, soucis de programmation

    Bonjour et bienvenu,

    Pour valider du code il serait bon de fournir ton schéma qui correspond ainsi que les caractéristique des capteurs et autres ...
    Je sollicite donc de l'aide pour m'aider à comprendre pourquoi le programme que je joins ne fonctionne pas.
    Qu'est-ce qui ne fonctionne pas ?
    Est-ce que sa commence ?

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

    Re : Projet maquette avec carte arduino, soucis de programmation

    Des vies humaines peuvent être en jeux sur ce projet?

    Si c'est le cas je ne laisserai pas le droit de vie ou de mort a nos "chères" arduino....

    Prévoir des sécurités hardwares me semble être un minimum.

  7. #6
    HAYAC

    Re : Projet maquette avec carte arduino, soucis de programmation

    Un ami à un projet de maquette d'une salle multi sports
    Je pense que cela répond à la question ...

  8. #7
    Jean-Louis34260

    Re : Projet maquette avec carte arduino, soucis de programmation

    Bonjour à tous ,
    Merci pour l'intérêt que vous portez à mon problème.
    C'est effectivement une maquette enfermée dans un dôme en matière plastique (pour ne pas donner de marque).
    Le programme tel qu'il est dans mon premier post, se transfère bien dans la carte mais fonctionne de façon complètement aléatoire.
    Le schéma que je vais tenter de faire avec fritzing pour vous le communiquez est en fait très simple.
    Un capteur capacitif sur pin 2,
    Un fin de course haut (microswitch avec languette et circuit rc anti rebond) sur pin 5,
    Un fin de course bas (microswitch avec languette et circuit rc anti rebond) sur pin 6,
    Une LED avec sa résistance sur pin 9,

    La nuit portant conseil, je pense avoir un peu cerné mon problème de logique.
    J'ai réalisé une précédente maquette une dizaine d'année en arrière avec un automate qui fonctionne en grafcet, donc avec une logique séquentielle.
    Cette logique fonctionne étape par étape, tant que l'action sur le capteur choisi n'est pas validée on ne passe pas à l'étape suivante.
    Je viens de comprendre que l'Arduino lui, boucle en permanence.
    Je suis en train de faire un organigramme du fonctionnement que je souhaites réaliser et je poste dés que c'est fait.
    Merci à vous tous

  9. #8
    HAYAC

    Re : Projet maquette avec carte arduino, soucis de programmation

    Bonjour,
    C'est effectivement dans la boucle VOID que le problème ce situ ...
    Code:
    void loop() 
    {
        ETAT_CC=digitalRead(CC);   //lecture et sauvegarde état capteur
        if (ETAT_CC==1) 
        {          //si capteur touché
            digitalWrite(RL,HIGH);   //éclairage maquette
            digitalWrite(LL,HIGH);   //allumage led témoin
        }
        // étant hors IF est executer sans condition à chaque redémarrage de la boucle LOOP 
        delay(2000);               //tempo de 2 secondes
        digitalWrite(RM,HIGH);   //mise sous tension moteur en montée
        digitalWrite(LED,HIGH);  //allumage led témoin
        
        ETAT_FCH=digitalRead(FCH); //lecture et sauvegarde état fin de course haut
        if (ETAT_FCH==1) 
        {         //si fin de course actionné
            digitalWrite(RM,LOW);    //arrêt montée
            digitalWrite(LED,LOW);   //extinction led témoin
        }
        // étant hors IF est executer sans condition à chaque redémarrage de la boucle LOOP 
        delay(2000);             //tempo 2 secondes
        digitalWrite(RD,HIGH);   //mise sous tension moteur en descente
        digitalWrite(LED,HIGH);  //allumage led témoin
        
        ETAT_FCB=digitalRead(FCB); //lecture et sauvegarde état fin de course bas
        if (ETAT_FCB==1) 
        {         //si fin de course actionné
            digitalWrite(RD,LOW);    //arrêt descente
            digitalWrite(LED,LOW);   //extinction led témoin
        }
        // étant hors IF est executer sans condition à chaque redémarrage de la boucle LOOP 
        delay(2000);               //tempo 2 secondes
        digitalWrite(RL,LOW);    //extinction éclairage maquette
        digitalWrite(LL,LOW);    //extinction led témoin éclairage maquette
    }
    // d'ou l'importance d'une bonne tabulation pour une lisibilitée facile du code ainsi que leurs apartenance ou non au evenements conditionnels
    Dernière modification par HAYAC ; 06/05/2016 à 08h30.

  10. #9
    bobflux

    Re : Projet maquette avec carte arduino, soucis de programmation

    > Cette logique fonctionne étape par étape, tant que l'action sur le capteur choisi n'est pas validée on ne passe pas à l'étape suivante.

    C'est la logique à suivre.

    > Je viens de comprendre que l'Arduino lui, boucle en permanence.

    La fonction loop() est idiote et ne sert à rien, tu mets ce que tu veux dedans.
    Ce qu'il te faut est une machine à états (FSM).

    Si ton arduino doit être multitâche, il faudra l'implémenter sous forme de vraie machine à état. Si il est mono-tâche, tu peux le faire en code linéaire.

    Exemple en code linéaire, avec un seul bouton :

    Code:
    Boucle infinie :
        Tant que (bouton pas actionné) : attendre
        Activer les moteurs en montée
        Tant que (fin de course pas atteinte) : attendre
        Couper les moteurs
        Tant que (bouton pas actionné) : attendre
        Activer les moteurs en descente
        Tant que (fin de course pas atteinte) : attendre
        Couper les moteurs
    Les "tant que" se traduisent par un truc du genre : while( !digitalRead( FIN_COURSE_HAUT )) { Serial.println("attente fch")); }
    On peut ajouter, en plus des fins de course, une temporisation. Par exemple, si le truc met 5 secondes pour monter, et qu'il n'est pas monté au bout de 10 secondes, c'est que quelque chose est coincé, on abandonne donc l'opération.

    Tu peux traduire ce code linéaire en machine à état, ce qui permet une réalisation multi-tâches. Le principe est d'avoir une variable "état" qui contient une représentation de ce qu'on est en train de faire, et d'appeler la fonction qui suit toutes les millisecondes, par exemple :

    Code:
    /* "Etats" est un 
    typedef enum { Attente_haut, Attente_bas, Montee, Descente }
    */
    
    // appeler cette fonction tous les 1ms
    void fsm()
    {
    	static int timer = 10000;
    	static Etats etat;
    
    	if( timer>0 ) timer--;
    	
    	switch( etat )
    	{
    		case attente_bas:
    			if( bouton )
    			{
    				activer moteur en montée;
    				etat = Montee;
    				timer = 10000
    			}
    			break;
    			
    		case Montee:
    			if( fin_course || !timer )
    			{
    				couper moteur;
    				etat = attente_haut;
    			}
    			break;
    		
    		case attente_haut:
    			if( bouton )
    			{
    				activer moteur en descente;
    				etat = Descente;
    				timer = 10000
    			}
    			break;
    
    		case Descente:
    			if( fin_course || !timer )
    			{
    				couper moteur;
    				etat = attente_bas;
    			}
    			break;
    	}
    }

  11. #10
    Jean-Louis34260

    Re : Projet maquette avec carte arduino, soucis de programmation

    Merci bobfuck
    Je débute dans la programmation, et malheureusement je comprends qu'il faut des boucles des test, mais c'est encore vague dans ma tête.
    Je suis désolé mais je ne comprends pas grand chose à ton code.......................... .....
    Après plusieurs lecture de ton message (premier code en linéaire), le moteur redescend au bout d'une temporisation sans action sur la zone de détection.
    La détection de touché n'est là que pour démarrer l'automatisme (allumage des lumières, tempo, montée de l'étage (1mn), tempo, descente de l'étage(1mn), extinction lumières, attente de touché).
    Je suis en train de faire un organigramme du fonctionnement et je le poste dès qu'il est fait.......................... .....................
    Si tu peux commenter ton code, stp, cela m'aidera à comprendre ton raisonnement.
    Encore merci pour ton aide précieuse.
    A+

  12. #11
    HAYAC

    Re : Projet maquette avec carte arduino, soucis de programmation

    Pour compéter les explications de bob...
    dans ton VOID SETUP tu initialise le port série (communication série via USB de l'arduino)

    Code:
    void setup() { ......
    Serial.begin(9600);    }
    avec le terminal de l'IDE arduino il y à possibilité de tracer les étapes via l'insertion de commande :
    Code:
    Serial.print("méssage")
    ce qui te permet de remonter n'importe quelle information via le terminal de l'ordinateur...

  13. #12
    bobflux

    Re : Projet maquette avec carte arduino, soucis de programmation

    Citation Envoyé par Jean-Louis34260 Voir le message
    Je suis désolé mais je ne comprends pas grand chose à ton code.......................... .....
    En bien, un automate fini (machine à états ou FSM en anglais) se dessine bien sur une feuille de papier. D'ailleurs, ça ressemble au GRAFCET.

    Exemple :

    https://fr.wikipedia.org/wiki/Automa...:_un_portillon

    Donc, pour mieux comprendre, dessine les états de ton système, ce qui se passe dans chaque état, et ce qui détermine les transitions.

    Exemple, pour l'état attente_haut de mon code précédent :

    - la plate-forme est en haut
    - le moteur est à l'arrêt
    - si le bouton est pressé, alors transition vers l'état "descente".

    état "descente" :

    - le moteur est en marche, en descente
    - si la fin de course est atteinte, alors transition vers l'état "en bas"
    - si la temporisation de sécurité est dépassée, alors transition vers "en bas" ou éventuellement un état d'erreur supplémentaire

    Une fois que tu as dessiné tout ça avec des flèches, ça devient plus clair.

  14. #13
    Jean-Louis34260

    Re : Projet maquette avec carte arduino, soucis de programmation

    Vous êtes réactifs et je vous en remercie vivement.
    Voilà un organigramme, je ne sais pas s'il est juste dans la logique arduino mais c'est le fonctionnement que je souhaites obtenir.
    Je suis preneur de toutes aides et vous en remercie d'avance.
    Je ne pensais pas que cela serai si complexe, mais j'aime comprendre ce que je fais et je vais tout faire pour relever ce défi.

    Nom : organigramme maquette.PNG
Affichages : 395
Taille : 15,1 Ko

  15. #14
    azad

    Re : Projet maquette avec carte arduino, soucis de programmation

    Salut
    Il serait intéressant de connaître les caractéristiques du capteur capacitif. Particulièrement ses impédances de sortie. Forcer un Pull-Up ou un Pull-Down, peut-être utile, car tu évoques un fonctionnement aléatoire.

  16. #15
    Jean-Louis34260

    Re : Projet maquette avec carte arduino, soucis de programmation

    bonjour azad
    C'est un capteur capacitif d'un fournisseur bien connu qui est déjà tout fait.
    Le fonctionnement aléatoire viens de la logique de mon cerveau qui n'est pas celle d'Arduino.
    Dans le sens ou ma programmation est séquentielle de type grafcet alors que celle d'arduino boucle en permanence.
    Donc la lecture des capteurs (fin de courses et capacitif) n'est pas perçu correctement par le programme.
    Ce que je vais tenter de faire dans un premier temps, c'est créer un boucle de test juste avec le capteur capacitif dans le sketch et trouver le moyen de sortir de la boucle après la détection pour poursuivre le programme.
    J'avoue que c'est ardu pour moi.
    Une question, est ce que l'organigramme semble correct?
    Merci pour ta réponse azad.

  17. #16
    bobflux

    Re : Projet maquette avec carte arduino, soucis de programmation

    L'organigramme semble bien, il suffit de traduire les boucles d'attente en " while( bouton pas pressé ) { ne rien faire }" et ça devrait aller.

    Insère des println() avec des messages pour bien visualiser ce qui se passe.

  18. #17
    Jean-Louis34260

    Re : Projet maquette avec carte arduino, soucis de programmation

    Merci bob pour ta réponse.
    Je vais de suite étudier comment fonctionne while...pour comprendre un peu.
    Je ferai un test juste avec le capteur capacitif pour tester, puis étendre aux fin de courses.
    Je joins une photo du montage qui est très simple.
    A+
    IMG_20160506_154005.jpgIMG_20160506_154031.jpg

  19. #18
    Jean-Louis34260

    Re : Projet maquette avec carte arduino, soucis de programmation

    Bonjour à tous
    Je reviens vers vous pour vous remercier de toute l'aide que vous m'avez apporté.
    Cette aide à été fructueuse et m'a permis de comprendre nombres de choses.
    Je vous joins le sketch en état de fonctionnement.
    S'il vous semble que quelque chose peut être amélioré, n'hésitez pas à m'en faire part.

    Code:
    // Sketch de la maquette de la salle multi sports.
    // Version 1.0
    // Le 7 Mai 2016
    // Heure: 4h 20
    
    
    // Affectation des broches (pin).
    
    #define CC 3     // capteur capacitif en pin 3
    #define FCH 5    // fin de course haut en pin 5
    #define FCB 6    // fin de course bas en pin 6
    #define RL 2     // relais éclairage maquette en pin 2 (imposée par le shield relais)
    #define RM 7     // relais monté étage en pin 7 (imposée par le shield relais)
    #define RD 8     // relais descente étage en pin 8 (imposée par le shield relais)
    #define LL 9     // Led témoin éclairage maquette en pin 9
    #define LM 11    // Led témoin montée en Pin 11
    #define LD 12    // Led témoin descente en pin 12
    
    
    // Déclaration des variables.
    
    int ETAT_CC=0;     //variable état du capteur capacitif
    int ETAT_FCH=0;    //variable état fin de course haut
    int ETAT_FCB=0;    //variable état fin de course bas
    
    
    // Déclaration des fonctions "eclairage", "montee", "descente", "arret", "extinction",
    // dans le but de rendre le sketch plus facile à comprendre et permettre la modification
    // rapide de chacune des fonctions.
    
    void eclairage() {
        digitalWrite(RL,HIGH);    // mise sous tension du RL (relais lumière) pour l'éclairage de la maquette
        digitalWrite(LL,HIGH);    // allumage de la LL (led témoin d'éclairage de la maquette)
        }
    
    void montee() {
        digitalWrite(RM,HIGH);    // mise sous tension du RM (relais montée)
        digitalWrite(LM,HIGH);    // allumage de la led témoin de la montée (LM)
        }
    
    void descente() {
        digitalWrite(RD,HIGH);    // mise sous tension du RD (relais descente)
        digitalWrite(LD,HIGH);    // allumage de la led témoin de la descente (LD)
        }
    
    void arret() {
        digitalWrite(RM,LOW);     // arrêt du RM (relais montée)
        digitalWrite(RD,LOW);     // arrêt du RD (relais descente)
        digitalWrite(LM,LOW);     // extinction de la led témoin de la montée (LM)
        digitalWrite(LD,LOW);     // extinction de la led témoin de la descente (LD)
        }
    
    void extinction() {
        digitalWrite(RL,LOW);     // arrêt du RL (relais lumière)
        digitalWrite(LL,LOW);     // extinction de la led témoin de l'éclairage de la maquette (LL)
        }
    
    
    // Fonction setup() excécutée une seule au début, déclaration des "entrées" et "sorties"
    
    void setup() {
      
        pinMode(CC,INPUT);       // pin capteur capacitif en "entrée"
        pinMode(FCH,INPUT);      // pin fin de course haut en "entrée"
        pinMode(FCB,INPUT);      // pin fin de course bas en "entrée"
        pinMode(RL,OUTPUT);      // pin fin relais lumière en "sortie"
        pinMode(RM,OUTPUT);      // pin relais montée en "sortie"
        pinMode(RD,OUTPUT);      // pin relais descente en "sortie"
        pinMode(LL,OUTPUT);      // pin led témoin éclairage maquette en "sortie"
        pinMode(LM,OUTPUT);      // pin led témoin montée en "sortie"
        pinMode(LD,OUTPUT);      // pin led témoin descente en "sortie"
        digitalWrite(RL,LOW);    // forcage relais lumière au repos au demarrage
        digitalWrite(RM,LOW);    // forcage relais montée au repos au demarrage
        digitalWrite(RD,LOW) ;   // forcage relais descente au repos au demarrage
        Serial.begin(115200);    // initialise la vitesse de la connection série
    }
    
    
    // Bloucle principale excécutée indéfimiment jusqu'à mise hors tension de la carte Arduino
    
    void loop() {
    
    
    // cette partie du sketch permet de descendre l'étage de la maquette après une coupure d'alimentation électrique
    // et être sûr de la position basse avant la détection de touché de la zone de détection
    
         ETAT_FCB=digitalRead(FCB);                        // lecture de l'état du fin de course bas et sauvegarde dans la variable ETAT_FCB
         Serial.println ("test de position de l'etage");   // affichage dans le terminal
         
      while (ETAT_FCB==1) {                                // boucle de test de position bas de l'étage de la maquette
         ETAT_FCB=digitalRead(FCB);                        // si pas en position bas
         descente();                                       // appel de la fonction "descente"
         }                                                 // si en position bas, sortie de la boucle
         arret();                                          // appel de la fonction "arret"
         Serial.println ("Position basse atteinte");       // affichage dans le terminal
    
    
    // partie principale du sketch où la zone de touché est testée
    
      do {                                                             // démarrage de la boucle de test du touché de la zone de détection
          ETAT_CC=digitalRead(CC);                                     // lecture du capteur capacitif et sauvegarde  de son état dans la variable ETAT_CC
        }
      while (ETAT_CC==0);                                              // si capteur touché, sortie de la boucle de test du touché
      
          eclairage();                                                 // appel de la fonction "eclairage" qui allume les lumières de la maquette
          Serial.println ("allumage des lumieres");                    // affichage dans le terminal
          Serial.println (" demarrage temporisation de 10 secondes");  // affichage dans le terminal
          delay(10000);                                                // tempo de 10 secondes (à régler en fonctionnement réel)
          Serial.println ("montee de l'etage");                        // affichage dans le terminal
          montee();                                                    // appel de la fonction "montee" qui met sous tension le motoréducteur dans le sens montée
    
      do {                                                             // démarrage de la boucle de test de position haut de l'étage de la maquette
          ETAT_FCH=digitalRead(FCH);                                   // lecture du fin de course haut et sauvegarde de son état dans la variable ETAT_FCH
        }
      while (ETAT_FCH==1);                                             // si fin de course actionné, sortie de la boucle de test de position haut
    
          arret();                                                     // appel de la fonction "arret" qui stoppe le motoréducteur
          Serial.println ("etage en position haut");                   // affichage dans le terminal
          Serial.println ("demarrage temporisation d'une minutes");    // affichage dans le terminal
          delay(60000);                                                // temporisation d'une minute (à régler en fonctionnement réel)
          descente();                                                  // appel de la fonction "descente" qui met sous tension le motoréducteur dans le sens descente
          Serial.println ("descente de l'etage");                      // affichage dans le terminal
    
      do {                                                             // démarrage de la boucle de test de position bas de l'étage de la maquette
          ETAT_FCB=digitalRead(FCB);                                   // lecture du fin de course bas et sauvegarde de son état dans la variable ETAT_FCB
        }
      while (ETAT_FCB==1);                                             // si fin de course actionné, sortie de la boucle de test de position bas
    
          arret();                                                     // appel de la fonction "arret" qui stoppe le motoréducteur
          Serial.println ("etage en position bas");                    // affichage dans le terminal
          Serial.println ("demarrage temporisation de 10 secondes");   // affichage dans le terminal
          delay(10000);                                                // temporisation de 10 secondes (à régler en fonctionnement réel)
          
          extinction();                                                // appel de la fonction "extinction" qui éteind les lumières de la maquette
          Serial.println ("extinction des lumieres");                  // affichage dans le terminal
          Serial.println ("temporisation 10 s avant test detection");  // affichage dans le terminal
          delay(10000);                                                // temporisation de 10 secondes (à régler en fonctionnement réel) avant de relancer la boucle
                                                                       // principale pour éviter l'amusement (vérifié par expérience-lol-)
    }
    Merci à tous.
    A+

Discussions similaires

  1. [Autre] [Projet] Remplacer de carte contrôleur sèche-linge par un Arduino
    Par dnifamily dans le forum Électronique
    Réponses: 6
    Dernier message: 08/01/2016, 11h26
  2. Projet STI2D : Panneau Solaire Orientable [Programmation par Arduino]
    Par Azir29 dans le forum TPE / TIPE et autres travaux
    Réponses: 7
    Dernier message: 21/05/2014, 13h26
  3. question programmation carte arduino
    Par vincedu56 dans le forum Programmation et langages, Algorithmique
    Réponses: 11
    Dernier message: 11/02/2013, 20h30
  4. arduino programmation vitesse puis transfert données sur carte SD
    Par moinonodu55 dans le forum Électronique
    Réponses: 0
    Dernier message: 29/01/2013, 08h22
  5. Réponses: 2
    Dernier message: 22/03/2010, 09h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.