Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
cours:picaxe3 [2025/03/18 09:35] mrcjl [Acti 2-2 : Utiliser une variable] |
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 | + | 03 |
| 04 | 04 | ||
| 05 | 05 | ||
| - | 06 | + | 06 |
| 07 | 07 | ||
| - | 08 | + | 08 |
| 09 | 09 | ||
| 10 Sinon | 10 Sinon | ||
| - | 11 | + | 11 |
| 12 | 12 | ||
| . | . | ||
| Ligne 99: | Ligne 99: | ||
| ====Acti 2-1 : Utiliser des sous programme/ | ====Acti 2-1 : Utiliser des sous programme/ | ||
| - | Pour rendre le programme modulaire (faciliter les modifications ultérieures) nous allons utiliser 3 sous-programmes/ | + | Pour rendre le programme modulaire (faciliter les modifications ultérieures) nous allons utiliser 3 sous-programmes/ |
| + | |||
| + | Nous allons aussi utiliser les voyants pour informer l' | ||
| {{: | {{: | ||
| Ligne 114: | Ligne 116: | ||
| <WRAP round caution> | <WRAP round caution> | ||
| * Si une LED est allumée, l' | * Si une LED est allumée, l' | ||
| - | * A l' | + | * A l' |
| - | * 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 |
| - | * 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 group>< | ||
| < | < | ||
| - | -- [PROG PRINCIPAL] | + | -- [PROG PRINCIPAL] |
| - | 01 Allumer LED rouge (Éteindre verte) | + | 01 Allumer LED rouge (Éteindre verte) |
| - | 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 |
| - | 05 | + | 05 |
| 06 Sinon | 06 Sinon | ||
| - | 07 | + | 07 |
| - | 08 | + | 08 |
| - | 09 Si porte ouverte | + | 09 |
| - | 10 | + | 10 |
| 11 | 11 | ||
| 12 Sinon | 12 Sinon | ||
| - | 13 | + | 13 |
| 14 | 14 | ||
| </ | </ | ||
| + | </ | ||
| + | < | ||
| + | |||
| + | -- [PROC : ARRÊTER] | ||
| + | 01 Arrêter le moteur | ||
| + | |||
| + | -- [PROC : OUVRIR] | ||
| + | 01 Moteur sens ouverture | ||
| + | |||
| + | -- [PROC : FERMER] | ||
| + | 01 Allumer LED rouge (Éteindre verte) | ||
| + | 02 Attendre 3s | ||
| + | 03 Moteur sens fermeture | ||
| + | |||
| + | </ | ||
| + | </ | ||
| ++++ | ++++ | ||
| ====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 | + | Nous voulons que la barrière infra rouge provoque la réouverture de la porte si elle __détecte |
| + | **ATTENTION : Le capteur infrarouge est __désactivé__ si une personne est présente.** | ||
| {{: | {{: | ||
| Ligne 148: | Ligne 168: | ||
| * Je crée une variable ETAT qui prendra les valeurs : 0 Arrêté ; 1 S' | * Je crée une variable ETAT qui prendra les valeurs : 0 Arrêté ; 1 S' | ||
| * 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' | + | * Ajouter dans le programme principal l' |
| </ | </ | ||
| ++++ | ++++ | ||
| - | |||
| {{: | {{: | ||
| + | <WRAP group>< | ||
| < | < | ||
| - | -- [PROG PRINCIPAL] | + | -- [PROG PRINCIPAL] |
| - | 01 Allumer LED rouge (Éteindre verte) | + | 01 Allumer LED rouge (Éteindre verte) |
| - | 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 |
| - | 05 | + | 05 |
| - | 06 | + | 06 |
| - | 07 | + | 07 |
| - | 08 | + | 08 |
| - | 09 Si porte ouverte | + | 09 |
| - | 10 | + | 10 |
| - | 11 | + | 11 |
| - | 12 | + | 12 |
| - | 13 | + | 13 |
| 14 | 14 | ||
| - | 15 Si porte se ferme | + | 14 Si porte se ferme (voir variable ETAT) |
| - | 16 Si barrière I/R active | + | 16 Si barrière I/R désactivé |
| 17 | 17 | ||
| </ | </ | ||
| + | </ | ||
| + | < | ||
| + | |||
| + | -- [PROC : ARRÊTER] | ||
| + | 01 Arrêter le moteur | ||
| + | 02 Variable ETAT = 0 | ||
| + | |||
| + | -- [PROC : OUVRIR] | ||
| + | 01 Moteur sens ouverture | ||
| + | 02 Variable ETAT = 1 | ||
| + | |||
| + | -- [PROC : FERMER] | ||
| + | 01 Allumer LED rouge (Éteindre verte) | ||
| + | 02 Attendre 3s | ||
| + | 03 Moteur sens fermeture | ||
| + | 04 Variable ETAT = 2 | ||
| + | |||
| + | </ | ||
| + | </ | ||
| ++++ | ++++ | ||
| ====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 pour les essais). **Attention, | + | Nous voulons que sans appui sur le bouton de fermeture la porte se referme seule au bout d'un temps défini (5s). **Attention, |
| ===Coup de pousse :=== | ===Coup de pousse :=== | ||
| - | | + | |
| - | * Si la porte est en position " | + | {{: |
| - | * Lorsque la TEMPO est <= 0, je referme la porte comme si j' | + | <WRAP round caution> |
| + | Bloc supplémentaire à utiliser ci-contre. | ||
| + | {{ : | ||
| + | | ||
| + | * Si la porte est en position " | ||
| + | * Sinon j' | ||
| + | </ | ||
| + | ++++ | ||
| + | |||
| + | {{: | ||
| + | <WRAP group>< | ||
| + | < | ||
| + | -- [PROG PRINCIPAL] | ||
| + | 01 Allumer LED rouge (Éteindre verte) | ||
| + | 02 PROC-ARRÊTER | ||
| + | 03 Répéter indéfiniment | ||
| + | 04 Si fin de course porte fermée activé | ||
| + | 05 | ||
| + | 06 | ||
| + | 07 Si bouton fermer appuyé | ||
| + | 08 | ||
| + | 09 Si fin de course porte ouverte activé | ||
| + | 10 | ||
| + | 11 | ||
| + | 12 Si variable | ||
| + | 13 | ||
| + | 14 | ||
| + | 15 | ||
| + | 16 | ||
| + | 17 | ||
| + | 18 Si bouton ouvrir | ||
| + | 19 | ||
| + | 20 Si porte se ferme (voir variable ETAT) | ||
| + | 21 Si barrière I/R désactivée | ||
| + | 22 | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | |||
| + | -- [PROC : ARRÊTER] | ||
| + | 01 Arrêter | ||
| + | 02 Variable ETAT = 0 | ||
| + | |||
| + | -- [PROC : OUVRIR] | ||
| + | 01 Moteur sens ouverture | ||
| + | 02 Variable ETAT = 1 | ||
| + | 03 Variable TEMPO = 5000 | ||
| + | |||
| + | -- [PROC : FERMER] | ||
| + | 01 Allumer LED rouge (Éteindre verte) | ||
| + | 02 Attendre 3s | ||
| + | 03 Moteur sens fermeture | ||
| + | 04 Variable ETAT = 2 | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | ++++ | ||