// =======================================================
// Controle fonctionnement moteur
// par mesure front montant et etat bas temporisé
// sur borne W de l'alternateur
// =========================================================
int inputPin = 2; // Define input pin (! 14V AC)
int outputPin = 13; // Define output pin
int memory = 0; // Define memory (Run=1)
int prevInput = 0; // Define previous input state
int currInput = 0; // Define current input state
unsigned long prevTime = 0; // Define previous time
unsigned long currTime = 0; // Define current time
unsigned long Tempo = 1000; // Define Temporisation value
void setup() {
pinMode(inputPin, INPUT); // Set input pin as input
pinMode(outputPin, OUTPUT);
}
void loop() {
currInput = digitalRead(inputPin); // Read current input state
currTime = millis(); // Update current time
if (prevInput == 0 && currInput == 1) { // Check if input has changed from 0 to 1
memory = 1; // Set memory to 1
digitalWrite(outputPin, HIGH); // Set output to 1
prevTime = currTime; // Update previous time
}
if (currTime - prevTime >= Tempo && currInput == 0) { // Check if Temporisation has passed
memory = 0; // Set memory to 0
digitalWrite(outputPin, LOW); // Set output to 0
}
prevInput = currInput; // Update previous input state
}