1.11.9

News

Page  1 sur 4  > >>

2020-07-09
Catégorie : General
Posté par : xavier
Un module suivant la norme Scenic pour démontrer les capacites de l'Arduino dans notre hobby, avec pour objectif Savoie Modelisme en Novembre 2021.
2020-07-09
Catégorie : Arduino
Posté par : xavier
Centrale DCC wifi autour de DCC++
2019-01-16
Catégorie : Arduino
Posté par : xavier

Un Circuit imprimé pour plusieurs sketches

CMS - 1.11.9 - Bartolome
 

Les machines d'état

Les machines d'état

Créer une application pour votre Arduino, c'est demander a votre Arduino ne prendre connaissance de son environnement (capteurs) pour agir dessus (actionneurs) en fonction de vos spécifications...

Il faut donc écrire clairement vos spécifications. C'est l'objet de ce chapitre!

Quelques notions pour continuer:

État

Aussi appelé étape.

On y positionne des actionneurs,

Il est ainsi possible d'agir sur l'environnement extérieur

Transition

C'est l'ensemble des conditions à vérifier pour passer d'un État de départ à un État d'arrivée.

Il est ainsi possible d'obtenir des comportements différents de la machine en fonction de l'environnement extérieur

 

Le programme va donc regarder dans quelle étape il se trouve (y positionner les actionneurs, c'est à dire agir sur l'environnement=écriture des sorties) puis voir (en observation l'environnement=lecture des entrées)s'il doit effectuer la transition vers l'étape suivante

 

enum {arret, descente, montee};// liste de Etats possibles

While (1) {
    switch (etat) {
        case arret :
            // Positionner les actionneurs
            Av(0);
            Rec(0);
            // Passer à l'étape suivante
            break;
        case descente :
            // Positionner les actionneurs
            Av(1);
            Rec(0);
            // Passer à l'étape suivante
            if (Bas()) { etat=montee; }
            break;
        case montee :
            // Positionner les actionneurs
            Av(0);
            Rec(1);
            // Passer à l'étape suivante
            if (Haut()) { etat=arret; }
            break;
    }
}

Previous page: Au fait  Page suivante : Plus loin