From ab8364e72b7338a21a60db1042a2216ef47e03f0 Mon Sep 17 00:00:00 2001 From: medina5 Date: Wed, 21 Jan 2026 07:36:35 +0100 Subject: [PATCH] correction --- maquette16.md | 36 ++++++++++++++++++++++++++++++++---- maquette43.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 4 deletions(-) diff --git a/maquette16.md b/maquette16.md index 6b5f016..cb04f9d 100644 --- a/maquette16.md +++ b/maquette16.md @@ -21,6 +21,8 @@ if (etape == 1) { } ``` +Retour à l'étape 0, si l'interrupteur 1 est éteint. + ```c if (etape == 1 && interrupteur[1] == 0) { etape = 0; @@ -36,6 +38,32 @@ Lors de l'appui sur le bouton "marche" mettre en route le programme suivant : - passer à la cuve 2, la remplir jusqu'en haut, - Allumer le voyant `sortie[8]` en rouge (valeur 3) +```c +if (etape == 1 && marche_frontmontant) { + etape = 2; +} + +if (etape == 2 && capteur[0]) { + etape = 3; +} + +if (etape == 3 && capteur[2]) { + etape = 4; +} + +if (etape == 4 && capteur[4]) { + etape = 5; +} +``` + +Ne pas allumé l'actionneur que si le capteur haut est off. + +```c +actionneur[0] = !capteur[0] && etape == 2; +actionneur[2] = !capteur[2] && etape == 3; +actionneur[4] = !capteur[4] && etape == 4; +``` + ### Fonctionnement 2 - Le programme 1 est en cours de fonctionnement. @@ -59,7 +87,7 @@ Lors de l'appui sur le bouton "marche" mettre en route le programme suivant : - L'interrupteur 4 est sur "on", Les interrupteurs 1, 2 et 3 sont sur "off". Le système est dans un état intermédiaire. - L'appui sur le bouton "Marche" harmonise les niveaux suivant la règle suivante : - - S"lectionner la cuve avec le niveau le plus bas pour atteindre le niveau de la cuve la plus haute, + - Sélectionner la cuve avec le niveau le plus bas pour atteindre le niveau de la cuve la plus haute, - Recommencer pour que les 3 cuves soient toutes au même niveau Les niveaux sont mesuré à l'aide de niveau[0], niveau[1] et niveau[2] @@ -67,9 +95,9 @@ Les niveaux sont mesuré à l'aide de niveau[0], niveau[1] et niveau[2] ### Fonctionnement 6 - L'interrupteur 5 est sur "on", Les interrupteurs 1, 2, 3 et 4 sont sur "off". -- L'appui sur le bouton B0 sélectionne la pompe 0, Allumer le voyant s0 -- L'appui sur le bouton B2 sélectionne la pompe 1, Allumer le voyant s1 -- L'appui sur le bouton B4 sélectionne la pompe 2, Allumer le voyant s2 +- L'appui sur le bouton[0] allume le voyant s0 +- L'appui sur le bouton[2] allume le voyant s1 +- L'appui sur le bouton[4] allume le voyant s2 - Il ne peut y avoir qu'une seule pompe de sélectionnée à la fois. - L'appui sur le bouton "Marche" rempli la pompe sélectionnée. diff --git a/maquette43.md b/maquette43.md index d4fe6da..a2eb263 100644 --- a/maquette43.md +++ b/maquette43.md @@ -23,6 +23,38 @@ Minimiser l'utilisation des moteurs. Démarrer un moteur après 2 secondes aprè Ajouter un compteur pour compter le nombre de démarrage des moteurs. Démarrer le moteur avec le moins de démarrage. Arrêter le moteur avec le moins de démarrage. +```c +int moteur_plusutilise() { + int index = -1; + int max = 0; + + for (int i = 0 ; i < 4 ; i++) { + if (compteur[i] > max) { + max = compteur[i]; + index = i; // Lequel est le maximum + } + } + + return index; +} + +int moteur_moinsutilise() { + int index = -1; + int min = INT32_MAX; + + for (int i = 0; i < 4; i++) + { + if (compteur[i] < min) + { + min = compteur[i]; + index = i; // Lequel est le maximum + } + } + + return index; +} +``` + ### Par temps d'utilisation Mesurer le temps d'utilisation de chaque moteur. Démarrer le moteur avec le moins temps de'utilisation. Arrêter le moteur avec le plus de temps d'utilisation.