« Kidule Ascenseur » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-\b(c|C)omm?[ae]nc(ement|er|é(s?)|ée(s?)|e|ent)\b +\1ommenc\2)
m Robot : Remplacement de texte automatisé (-\b (1|I) ?i?er\b + \1{{er}})
Ligne 281 :
* allume successivement les Leds 0 à 7 du Kidule Dé.
* puis si on presse sur le poussoir du Kidule dé, allume toutes les LEDs (qui se feront par la suite éteindre par le premier point)
* si on presse sur le Bouton du 1er1{{er}} sur le Kidule ascenseur, on entre dans un mode où le bouton du 2eme fait monter et le bouton du Rez fait descendre. Les LEDs 0 à 2 du Kidule Dé reflettent l'état des switchs de l'ascenseur
 
<source lang="c">
Ligne 397 :
# Lancez le programme et laisser une fois clignotter toutes les LED.
# Pressez sur le Poussoir du kidule Dé jusqu'à ce que toutes les LED s'allument.
# Ensuite Pressez sur le bouton du 1er1{{er}} jusqu'à ce que que plus aucune LED du Kidule Dé ne soit allumées.
# Jouez en pressant le le bouton 2eme et Bouton 1er1{{er}}. Qu'est ce qu'il se passe si on presse sur un Bouton puis sur les deux?
{{Solution|contenu=
Si on essaye toutes les solutions, on observe le comportement suivant
Ligne 413 :
C'est le moment de s'attaquer au programme proprement dit pour faire bouger notre ascenseur.
 
Mais avant de programmer, il faut réfléchir à ce que l'on veut faire. Première chose à remarquer, c'est que l'on devra faire plusieurs choses à la fois: lire des boutons, actionner le moteur, allumer et éteindre les Leds et se rappeler ce que l'ascenseur doit faire (monter au 1er1{{er}} étage par exemple).
 
Lorsque l'on a ce genre de problème (ce qui est très fréquent dans une machine ou dans un robot), la solution est souvent de dessiner un '''graphe d'états'''. Un graphe d'état est un dessin où on met une bulle par état possible de la machine. par exemple ici '''AuRez''' pour dire que l'on est au rez à attendre, ou encore '''Monte2eme''' pour dire que l'on va au 2eme.
Ligne 433 :
# avoir une instruction qui nous permet de faire un bout de programme différent pour chaque état
 
Pour le 1er1{{er}} point, il existe en C une instruction pour déclarer un type énuméré (qui énumère toutes les possibilités d'une variable de ce type)
{{Définition|titre=enum|contenu=
enum permet de déclarer une énumération, et pour chaque énumération de lui attribuer la valeur qui sera utilisée dans le microprocesseur (optionnel). Dans notre cas, on peut écrire cela de la manière suivante: