//Nom: MOUSSAOUI Prénom: Selma
//Projet Arduino_POO, Master2EI
//Barrière Automatique
//bibliotheques:
#include <TimeInterrupt.h>
#include "BP.h"//insertion du fichier header de la classe BP
#include "Const.h" //insertion des constantes
#include "LED.h" //insertion du fichier header de la classe LED
#include "Light_Sensor.h"//insertion du fichier header de la classe Light_Sensor
#include "ServoBarriere.h"//insertion du fichier header de la classe ServoBarriere
//création des differentes classes:
Led led(PORT_LED, true);
LightSensor LSensor(PORT_LIGHT_SENSOR);
Barriere barriere;
BP bp(PORT_BP);
void setup() {
// put your setup code here, to run once:
/*Serial.begin(9600);//initialisation de la communication
attachInterrupt(digitalPinToInterrupt(PORT_BP), TraitementBp, RISING );//déclenchement sur front montant du capteur haut
barriere.attach(PORT_SERVO);*/
// corrigé:(Utilisation de la fonction TimeInterrupt)
barriere.attach(PORT_SERVO);
barriere.write(90);
TimeInterrupt.begin(NORMAL); // lancer le timer
Serial.begin(9600);
}
/*bool car; //Présence ou non du véhicule devant le capteur
bool interrupteur;// état du boutton poussoir
void TraitementBp(){ // Interruption Boutton poussoir
interrupteur = 1; // valeur d'interruption
return;*/
//Fonction Clignotement:
void clignotement() {
led.lightOn(); // Led On
delay(300);
led.lightOff(); // Led Off
delay(300);
}
void loop() {
//Si le conducteur appuis sur le bouton la barriere ouvre et la led clignante
if (bp.getStateBP() == 0) {
barriere.write(0);
delay(100);
TimeInterrupt.addInterrupt(clignotement, 300);
}
//La lecture sur le capteur de luminosité :
//La barriere se ferme si la valeur est >800 cela veux dire que la voiture a quitté le lieu, donc la barriere ce ferme
int lightLux = LSensor.getLightSensor();
if (lightLux < SEUIL_HAUT && lightLux >= SEUIL_BAS) {
// Fermeture de la bar
barriere.write(90);
// Arrêter le clignotement
TimeInterrupt.removeInterrupt(clignotement);
}
}