Outils pour utilisateurs

Outils du site


start:arduino:bpscl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
start:arduino:bpscl [2022/05/10 10:49] – créée gerardadminstart:arduino:bpscl [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ======== Bouton poussoir en interrupteur sans clignotement ======== ======== Bouton poussoir en interrupteur sans clignotement ========
  
-{{ :start:arduino:bp_inter_sans_clignote.jpeg?400 |}}+[[https://www.tinkercad.com/things/i88z7oI6mJI-boutoninterrupteursansclignotement/editel?sharecode=X4bVnO5QV8NhO0-UJs09Ysq2YP1wROGkg5U2ILfU9hw|{{ :start:arduino:bp_inter_sans_clignote.jpeg?400 |}}]] 
 + 
 +[[https://www.tinkercad.com/things/i88z7oI6mJI-boutoninterrupteursansclignotement/editel?sharecode=X4bVnO5QV8NhO0-UJs09Ysq2YP1wROGkg5U2ILfU9hw|{{ :start:arduino:schema_bp_led.jpeg?direct&600 |}}]] 
 + 
 + 
 +==== Code Arduino ==== 
 + 
 +<code c 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 
 +  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); 
 +  } 
 +   
 +
 +</code> 
 + 
 +==== Diagramme BP sans clignotement ==== 
 + 
 +{{ :start:arduino:capture_d_ecran_du_2022-05-10_09-09-01.png?direct&600 |}} 
 + 
 + 
 +==== Explication Diagramme BP ==== 
 + 
 +__Explications diagramme bouton poussoir en interrupteur sans clignotement__  
 + 
 +Le bouton poussoir est cablé avec un pullup à GND ( plus facile à comprendre ...) 
 + 
 +Le bouton poussoir est actif quand on envoie un + 5V ( 1 ) sur la broche D3 de l'arduino  
 + 
 +**T0** : le bp1 est inactif = 0 , tous le reste est à 0. 
 + 
 +**T1** : le Bp1 est actif = 1 =>  La memoire du Bp1 est à 0 ( voir BP1 T0), Led1 devient allumée = 1 ( 1er front montant de Bp1), la memoire de la Led1 est =  0 ( voir Led1 T0). 
 + 
 +**T2** : le Bp1 est inactif = 0 =>  La memoire du Bp1 est à 1 ( voir Bp1 T1), Led1 reste allumée = 1 ( c'est le but) , la memoire de la Led1 est =  1 ( voir Led1 T1). 
 + 
 +**T3** : le Bp1 est actif = 1 =>  La memoire du Bp1 est à 0 ( voir Bp1 T2), Led1 est eteinte = 0 ( 2eime fronts montant de Bp1) , la memoire de la Led1 est =  1 ( voir Led1 T2). 
 + 
 +**T4** : le Bp1 est inactif = 0 =>  La memoire du Bp1 est à 1 ( voir Bp1 T3), Led1 est eteinte = 0 ( Le Led1 doit rester eteinte) , la memoire de la Led1 est =  0 ( voir Led1 T3). 
 + 
 +On revient à T0
/home/chanteri/www/fablab37110/data/attic/start/arduino/bpscl.1652172596.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)