Outils pour utilisateurs

Outils du site


start:arduino:bpscl

Ceci est une ancienne révision du document !


Bouton poussoir en interrupteur sans clignotement

Code Arduino

BPsansClig.ino
const int Led1= 2;
const int Bp1  =3;
int MemLed1 =0;
int MemBp1 =0;
int tempo =50;
 
void DebugVar(int nb) {
  Serial.print("temps = ");Serial.println(nb); 
  Serial.print("Bp1 =");Serial.println(digitalRead(Bp1));
  Serial.print("MemBp1 =");Serial.println(MemBp1);
  Serial.print("MemLed1 =");Serial.println(MemLed1);
  delay(250);
}  
 
 
void setup()
{
  Serial.begin(9600);
  pinMode(Led1, OUTPUT);
  pinMode(Bp1, INPUT);
  digitalWrite(Led1, LOW);
  //DebugVar(10);
 
  }   
 
void loop() {
 
  int valeurBp1 = digitalRead(Bp1);// On lit la valeur de Bp1 au début de la boucle
  delay(tempo);
 
  //Temps 0
  if (valeurBp1 == 0 && MemBp1 ==0 && MemLed1 == 0) {// etat present 
      digitalWrite(Led1, LOW);MemBp1 =0;MemLed1 = 0; // Etat futur
      //delay(tempo);DebugVar(0);
  }   
  //Temps  1
  if (valeurBp1 == 1 && MemBp1 ==0 && MemLed1 == 0) {
      digitalWrite(Led1, HIGH);MemBp1 =1;MemLed1 = 1;  
      //delay(tempo);DebugVar(1);   
  }   
  //Temps 2
  if (valeurBp1 == 0 && MemBp1 ==1 && MemLed1 == 1) {
      digitalWrite(Led1, HIGH);MemBp1 =0;MemLed1 = 1;  
      //delay(tempo);DebugVar(2);
  }
  //Temps 3
  if (valeurBp1 == 1 && MemBp1 ==0 && MemLed1 == 1) {
      digitalWrite(Led1, LOW);MemBp1 =1;MemLed1 = 0;  
      //delay(tempo);DebugVar(3);
  }
  //Temps 4
  if (valeurBp1 == 0 && MemBp1 ==1 && MemLed1 == 0) {
      digitalWrite(Led1, LOW);MemBp1 =0;MemLed1 = 0;  
      //delay(tempo);DebugVar(4);
  }
 
}

Diagramme BP sans clignotement

/home/chanteri/www/fablab37110/data/attic/start/arduino/bpscl.1652172901.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)