Outils pour utilisateurs

Outils du site


cours:picaxe3

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cours:picaxe3 [2025/04/03 07:54]
mrcjl [Acti 2-1 : Utiliser des sous programme/fonction]
cours:picaxe3 [2025/04/04 13:49] (Version actuelle)
mrcjl [Acti 2-2 : Utiliser une variable]
Ligne 68: Ligne 68:
 02 Répéter indéfiniment 02 Répéter indéfiniment
  
-03     Si Porte fermée+03     Si Fin de course porte fermée activé
 04         Mettre le moteur à l'arrêt 04         Mettre le moteur à l'arrêt
 05     Sinon  05     Sinon 
-06         Si demande de fermeture+06         Si bouton fermer appuyé
 07             Démarrer la fermeture 07             Démarrer la fermeture
  
-08     Si Porte ouverte+08     Si Fin de course porte ouverte activé
 09         Mettre le moteur à l'arrêt 09         Mettre le moteur à l'arrêt
 10     Sinon 10     Sinon
-11         Si demande ouverture+11         Si bouton ouvrir appuyé
 12             Démarrer ouverture 12             Démarrer ouverture
 . .
Ligne 99: Ligne 99:
  
 ====Acti 2-1 : Utiliser des sous programme/fonction==== ====Acti 2-1 : Utiliser des sous programme/fonction====
-Pour rendre le programme modulaire (faciliter les modifications ultérieures) nous allons utiliser 3 sous-programmes/procédures "OUVRIR", "FERMER" et "ARRÊTER". Nous allons aussi utiliser les voyants pour informer l'utilisateur (rouge ne pas passer et vert/jaune passer) ainsi qu'une temporisation de 3s entre l'allumage du voyant rouge et la fermeture de la porte.+Pour rendre le programme modulaire (faciliter les modifications ultérieures) nous allons utiliser 3 sous-programmes/procédures "OUVRIR", "FERMER" et "ARRÊTER" 
 + 
 +Nous allons aussi utiliser les voyants pour informer l'utilisateur (rouge ne pas passer et vert/jaune passer) ainsi qu'une temporisation de 3s entre l'allumage du voyant rouge et la fermeture de la porte. ATTENTION : 1 seul voyant est allumé à un instant donné. \\ Il faut donc déterminer à quel moment les allumer.
  
 {{:cours:cp.png?20 |}}++++Coups de pousse 1 | {{:cours:cp.png?20 |}}++++Coups de pousse 1 |
Ligne 115: Ligne 117:
   * Si une LED est allumée, l'autre est éteinte   * Si une LED est allumée, l'autre est éteinte
   * A l'initialisation, le moteur est arrêté et la LED rouge allumée   * A l'initialisation, le moteur est arrêté et la LED rouge allumée
-  * La LED n'est verte que si la porte est complètement ouverte +  * La LED n'est verte que si la porte est complètement ouverte (fin de course ouvert) 
-  * Si on veut fermer la porte, il faut attendre 3s après avoir allumer LED rouge+  * Si on veut fermer la porte (Bouton fermer), il faut attendre 3s après avoir allumer LED rouge
 </WRAP> </WRAP>
 ++++ ++++
Ligne 127: Ligne 129:
 02 PROC-ARRÊTER 02 PROC-ARRÊTER
 03 Répéter indéfiniment 03 Répéter indéfiniment
-04     Si porte fermée+04     Si fin de course porte fermée activé
 05         PROC-ARRÊTER 05         PROC-ARRÊTER
 06     Sinon 06     Sinon
-07         Si demande fermeture+07         Si bouton fermer appuyé
 08             PROC-FERMER 08             PROC-FERMER
-09     Si porte ouverte+09     Si fin de course porte ouverte activé
 10         PROC-ARRÊTER 10         PROC-ARRÊTER
 11         Allumer LED verte (Éteindre rouge) 11         Allumer LED verte (Éteindre rouge)
 12     Sinon 12     Sinon
-13         Si demande ouverture+13         Si bouton ouvrir appuyé
 14             PROC-OUVRIR 14             PROC-OUVRIR
 </code> </code>
Ligne 157: Ligne 159:
 ++++ ++++
 ====Acti 2-2 : Utiliser une variable==== ====Acti 2-2 : Utiliser une variable====
-Nous voulons que la barrière infra rouge provoque la réouverture de la porte si elle détecte une personne lors de la fermeture. (//Il faut donc se rappeler que la porte est en train de se fermer et utiliser une variable pour cela. en effet, aucun capteur n'indique le sens du mouvement, seule la fin de celui-ci est détecté pat les fins de course.//) \\ +Nous voulons que la barrière infra rouge provoque la réouverture de la porte si elle __détecte une personne lors de la fermeture__. (//Il faut donc se rappeler que la porte est en train de se fermer et utiliser une variable pour cela. en effet, aucun capteur n'indique le sens du mouvement, seule la fin de celui-ci est détecté par les fins de course.//) \\ 
-**ATTENTION : Le capteur infrarouge est désactivé si une personne est présente.**+**ATTENTION : Le capteur infrarouge est __désactivé__ si une personne est présente.**
  
 {{:cours:cp.png?20 |}}++++Coups de pousse | {{:cours:cp.png?20 |}}++++Coups de pousse |
Ligne 166: Ligne 168:
   * Je crée une variable ETAT qui prendra les valeurs : 0 Arrêté ; 1 S'ouvre ; 2 Se ferme.   * Je crée une variable ETAT qui prendra les valeurs : 0 Arrêté ; 1 S'ouvre ; 2 Se ferme.
   * Modifier le programme et les sous programmes pour tenir compte des différents états.   * Modifier le programme et les sous programmes pour tenir compte des différents états.
-  * Ajouter dans le programme principal l'utilisation de la barrière infra rouge.+  * Ajouter dans le programme principal l'utilisation de la barrière infra rouge qui remplace alors le bouton ouvrir si besoin.
 </WRAP> </WRAP>
 ++++ ++++
Ligne 176: Ligne 178:
 02 PROC-ARRÊTER 02 PROC-ARRÊTER
 03 Répéter indéfiniment 03 Répéter indéfiniment
-04     Si porte fermée +04     Si fin de course porte fermée activé 
-05         Allumer LED rouge (Éteindre verte) +05         PROC-ARRÊTER 
-06         Attendre 3s                               +06     Sinon 
-07         PROC-ARRÊTER +07         Si bouton fermer appuyé 
-08     Sinon +08             PROC-FERMER                           
-09         Si demande fermeture +09     Si fin de course porte ouverte activé 
-10             PROC-FERMER                           +10         PROC-ARRÊTER 
-11     Si porte ouverte +11         Allumer LED verte (Éteindre rouge) 
-12         PROC-ARRÊTER +12     Sinon 
-13         Allumer LED verte (Éteindre rouge) +13         Si bouton ouvrir appuyé 
-14     Sinon +14             PROC-OUVRIR 
-15         Si demande ouverture +14     Si porte se ferme (voir variable ETAT) 
-16             PROC-OUVRIR +16         Si barrière I/R désactivé 
-17     Si porte se ferme +17             PROC-OUVRIR
-18         Si barrière I/R active +
-19             PROC-OUVRIR+
 </code> </code>
 </WRAP><WRAP half column> </WRAP><WRAP half column>
Ligne 205: Ligne 205:
  
 -- [PROC : FERMER] -- [PROC : FERMER]
-01 Moteur sens fermeture +01 Allumer LED rouge (Éteindre verte) 
-02 Variable ETAT = 2+02 Attendre 3s                               
 +03 Moteur sens fermeture 
 +04 Variable ETAT = 2
  
 </code> </code>
Ligne 213: Ligne 215:
  
 ====Acti 2-3 : Créer une temporisation==== ====Acti 2-3 : Créer une temporisation====
-Nous voulons que sans appui sur le bouton de fermeture la porte se referme seule au bout d'un temps défini (5s). **Attention, il ne faut pas bloquer le programme pendant la temporisation** et pouvoir conserver l'utilisation du bouton "Fermer". On utilise donc un compteur.+Nous voulons que sans appui sur le bouton de fermeture la porte se referme seule au bout d'un temps défini (5s). **Attention, il ne faut pas bloquer le programme pendant la temporisation** et pouvoir utiliser le bouton "Fermer" à tout moment. On utilise donc un compteur avec un petit temps d'attente (< 0.5 s) pour ne pas bloquer le programme.
  
 ===Coup de pousse :=== ===Coup de pousse :===
Ligne 234: Ligne 236:
 02 PROC-ARRÊTER 02 PROC-ARRÊTER
 03 Répéter indéfiniment 03 Répéter indéfiniment
-04     Si porte fermée +04     Si fin de course porte fermée activé 
-05         Allumer LED rouge (Éteindre verte) +05         PROC-ARRÊTER 
-06         Attendre 3s                               +06     Sinon 
-07         PROC-ARRÊTER +07         Si bouton fermer appuyé 
-08     Sinon +08             PROC-FERMER                           
-09         Si demande fermeture +09     Si fin de course porte ouverte activé 
-10             PROC-FERMER                           +10         PROC-ARRÊTER 
-11     Si porte ouverte +11         Allumer LED verte (Éteindre rouge) 
-12         PROC-ARRÊTER +12         Si variable TEMPO <=0 
-13         Allumer LED verte (Éteindre rouge) +13             PROC-FERMER 
-14         Si variable TEMPO <=0 +14         Sinon 
-15             PROC-FERMER +15             Attendre 100ms 
-16         Sinon +16             Variable TEMPO = TEMPO - 100 
-17             Attendre 100ms +17     Sinon 
-18             Variable TEMPO = TEMPO - 100 +18         Si bouton ouvrir appuyé 
-19     Sinon +19             PROC-OUVRIR 
-20         Si demande ouverture +20     Si porte se ferme (voir variable ETAT) 
-21             PROC-OUVRIR +21         Si barrière I/R désactivée 
-22     Si porte se ferme +22             PROC-OUVRIR
-23         Si barrière I/R active +
-24             PROC-OUVRIR+
 </code> </code>
 </WRAP><WRAP half column> </WRAP><WRAP half column>
Ligne 269: Ligne 269:
  
 -- [PROC : FERMER] -- [PROC : FERMER]
-01 Moteur sens fermeture +01 Allumer LED rouge (Éteindre verte) 
-02 Variable ETAT = 2+02 Attendre 3s                               
 +03 Moteur sens fermeture 
 +04 Variable ETAT = 2
  
 </code> </code>
cours/picaxe3.1743659684.txt.gz · Dernière modification: 2025/04/03 07:54 de mrcjl