correction

This commit is contained in:
2026-01-21 07:36:35 +01:00
parent cd65eecb0d
commit ab8364e72b
2 changed files with 64 additions and 4 deletions

View File

@@ -21,6 +21,8 @@ if (etape == 1) {
} }
``` ```
Retour à l'étape 0, si l'interrupteur 1 est éteint.
```c ```c
if (etape == 1 && interrupteur[1] == 0) { if (etape == 1 && interrupteur[1] == 0) {
etape = 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, - passer à la cuve 2, la remplir jusqu'en haut,
- Allumer le voyant `sortie[8]` en rouge (valeur 3) - 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 ### Fonctionnement 2
- Le programme 1 est en cours de fonctionnement. - 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'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 : - 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 - 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] 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 ### Fonctionnement 6
- L'interrupteur 5 est sur "on", Les interrupteurs 1, 2, 3 et 4 sont sur "off". - 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[0] allume le voyant s0
- L'appui sur le bouton B2 sélectionne la pompe 1, Allumer le voyant s1 - L'appui sur le bouton[2] allume le voyant s1
- L'appui sur le bouton B4 sélectionne la pompe 2, Allumer le voyant s2 - 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. - 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. - L'appui sur le bouton "Marche" rempli la pompe sélectionnée.

View File

@@ -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. 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. 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 ### 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. 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.