/*attiny aiguillage KATO BP
  04/09/2023
  Dominique Hudry
  commande d'un aiguillage KATO par un BP avec affichage de la voie sélectionnée
  l'étage de puissance est un L293D
  lien:

               Brochage Attiny85

                 =|1  U  8|= VCC
  CdeInput2 <--3 =|2     7|= 2--> LedVoieDeviee
  CdeInput1 <--4 =|3     6|= 1--> LedVoieDirecte
             GND =|4     5|= 0<-- BPcommande--GND

*/

#include "simpleBouton.h"

const byte BPcommande = 0;
const byte LedVoieDirecte = 1;
const byte LedVoieDeviee = 2;
const byte CdeInput1 = 4;
const byte CdeInput2 = 3;
bool variableEtat = false;
int dureeImpulsion = 200;
simpleBouton bouton(BPcommande);

void setup() {
  pinMode(CdeInput1, OUTPUT);
  pinMode(CdeInput2, OUTPUT);
  digitalWrite(CdeInput1, LOW);
  digitalWrite(CdeInput2, LOW);
  pinMode(LedVoieDirecte, OUTPUT);
  pinMode(LedVoieDeviee, OUTPUT);
  digitalWrite(LedVoieDirecte, HIGH);
  digitalWrite(LedVoieDeviee, HIGH);
  delay(200);
  digitalWrite(LedVoieDirecte, LOW);
  digitalWrite(LedVoieDeviee, LOW);
} // fin setup

void loop() {
  bouton.actualiser();
  if (bouton.vientDEtreEnfonce())  {
    variableEtat = !variableEtat;
    if (variableEtat)  {
      digitalWrite(LedVoieDeviee, LOW);
      digitalWrite(CdeInput1, HIGH);
      delay(dureeImpulsion);
      digitalWrite(CdeInput1, LOW);
      digitalWrite(LedVoieDirecte, HIGH);
    } //fin if
    else  {
      digitalWrite(LedVoieDirecte, LOW);
      digitalWrite(CdeInput2, HIGH);
      delay(dureeImpulsion);
      digitalWrite(CdeInput2, LOW);
      digitalWrite(LedVoieDeviee, HIGH);
    } // fin else
  } // fin if
} // fin loop
ATTINY8520PU