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

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
start:arduino:bpscl [2022/05/10 10:51] gerardadminstart:arduino:bpscl [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 2: Ligne 2:
  
 [[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: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  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);
 +  }
 +  
 +}
 +</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.1652172669.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)