/* Lycée PE MARTIN
Le 173/11/2023
Titre : Système d'Aspiration
Matériels : Arduino Uno, 2 led, 5 switchs et 2 boutons-poussoir sur Pull-Up interne
Description : voir sujet du TP
*/

// Entrées
#define E_P2 12 // Etat logique (Activé / Non Activé) de l'aspiration sur le Poste 2 
#define E_P3 10 //  " Poste 3
#define E_P4 11 //  " Poste 4 
#define E_TP 9  // Trémie pleine
#define E_P 8  // Vide trop poussé
#define E_BPM1 7 // Activation de l'aspiration sur le Poste 1
#define E_BPA1 6 // Désactivation de l'aspiration sur le poste 1

// Sorties
#define S_LED_D1 3
#define S_LED_P1 2

// Initialisation des variables (globales)
bool P1, X, Reset, Set, D1 = LOW;

void setup() {
  // Configuration des E/S
  pinMode(E_P2, INPUT_PULLUP); pinMode(E_P3, INPUT_PULLUP);
  pinMode(E_P4, INPUT_PULLUP); pinMode(E_TP, INPUT_PULLUP);
  pinMode(E_P, INPUT_PULLUP); pinMode(E_BPM1, INPUT_PULLUP);
  pinMode(E_BPA1, INPUT); pinMode(S_LED_D1, OUTPUT);
  pinMode(S_LED_P1, OUTPUT);
}

void loop() {
  // Lecture des entrées
  bool P2 = !digitalRead(E_P2);
  bool P3 = !digitalRead(E_P3);
  bool P4 = !digitalRead(E_P4);
  bool TP = !digitalRead(E_TP);
  bool P = !digitalRead(E_P);
  bool BPM1 = !digitalRead(E_BPM1);
  bool BPA1 = !digitalRead(E_BPA1);

  // Traitement
  X = (P2 && P3) || (P2 && P4) || (P3 && P4);
  Reset = !BPA1 || TP || P;
  Set = !X && BPM1;
  P1 = (P1 || Set) && !Reset;
  D1 = (X || TP || P) && BPM1;

  // Ecriture sur les sorties
  digitalWrite(S_LED_D1, D1);
  digitalWrite(S_LED_P1, P1);
}
P1
P2
P3
P4
P
TP
M1
A1
D1
R1
R2
R3
P1
P2
P4
P
D1
R1
R2
R3
<< Aspiration centralisée V1 (Poste 1) >>
M1 : Activation de l'aspiration sur le Poste 1
A1 : Désactivation de l'aspiration sur le Poste 1
D1 : Défaut sur TP ou P
P1 : Etat de l'électrovanne du Poste 1
P2 : Simulation état électrovanne Poste 2
P3 : Simulation état électrovanne Poste 3
P4 : Simulation état électrovanne Poste 4
TP : Simulation trémie pleine sur Poste 1
P : Simulation vide trop poussé sur Poste 1
0
1