TP3 

2 etats : Allumé et éteint

Dans ce TP on souhaite simplement développer un programme qui lorsque l'on appuie sur le bouton poussoir la LED s'allume et lorsque l'on appuie une nouvelle fois le LED s'éteint. Sous TinkerCAD vous pouvez dupliquer un projet de manière à garder le projet du TP 2 (compter le nombre d'appuis).

Un algorithme permettant de réaliser ce comportement est donné ci-dessous :

Le programme correspondant est donné ci-dessous :

1
const int ETEINT = 0;
2
const int ALLUME = 1;
3
4
5
int compteur = 0; // Initialiser le compteur
6
int etat = ETEINT;
7
8
void setup() // Executer une fois
9
{
10
  pinMode(3, OUTPUT); // LED en sortie sur la broche 3
11
  pinMode(2, INPUT);  // BP en entree sur la broche 2
12
  Serial.begin(9600); // Terminal Serie a 9600 bauds
13
}
14
15
void loop() // Boucle infini 
16
{
17
  
18
  if (digitalRead(2) == 1) // Si Appui sur BP
19
  {
20
    delay(20);
21
    while(digitalRead(2) == 1) // Boucle tanque BP appuye
22
    {
23
      delay(20);                 // delais anti-rebonds
24
    }
25
    if(etat == ETEINT)  //     si etat est eteint
26
    {
27
      etat = ALLUME;               // etat devient allume
28
    }
29
    else if(etat == ALLUME)//   si etat est allume 
30
    {
31
      etat = ETEINT;               // etat devient eteint
32
    }
33
  }
34
                           //Fin du SI  
35
  // GESTION DE LA LED EN FONCTION DE etat
36
  if(etat == ETEINT)// Si etat est eteint
37
  {
38
    digitalWrite(3,LOW); // Eteindre la LED
39
  }else if (etat == ALLUME) // Sinon si etat est allume
40
  {
41
    digitalWrite(3,HIGH);  // Allumer la LED
42
  }
43
  
44
}

Tester sous tinkerCAD ce programme.

3 états :

On souhaite désormais ajouter un troisième état après avoir appuyé sur le BP pour allumer la LED, la LED devra clignoter, un dernier appui arrêtera la LED et ainsi de suite.

En repartant du projet précédent, ajouter cette fois en début de programme :

1
const int ETEINT = 0;
2
const int ALLUME = 1;
3
const int CLIGNOTE = 2;

Modifier la suite pour répondre au cahier des charges ci-dessus.