IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Algorithme par code Arduino


Sujet :

Arduino

  1. #1
    Candidat au Club
    Homme Profil pro
    sti2d
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : sti2d
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Par défaut Algorithme par code Arduino
    J'ai pu acquérir ce code arduino pour mon projet, il s'agit d'un programme de moteur fonctionnant avec deux relais et alimenté par une batterie, le tout actionné par miu pannel via smartphone, j'aimerais en ressortir un algorithme mais je n'y comprends pas grand chose, je sollicite votre aide, voici le code arduino:


    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    void setup() {
     
      // Initialize Serial Port
      Serial.begin(57600);
     
      // Let uPanel start 
      delay(3000);
     
      // Discharge old partial messages
      Serial.println("");
     
      // Send The Panel (A LED and a Switch)
      Serial.println("$P:D!88Fg26;{%100,y10^!69F,T*20#FFFFF:Portail Automatique;}///Tfb*16:Ouverture du Portail;/{!00C,06C^%90,20r30-5*12B1:Ouvrir;|L1B:0;}///Tfb*16:Fermeture du Portail;/{!06C,36F^%90,20r30-5*12B2:Ouvrir;|L2B:0;}");
     
      // Initialize digital output pin
      digitalWrite(8, 0);
      pinMode(8,OUTPUT);
      digitalWrite(9, 0);
      pinMode(9,OUTPUT);
     
     
    }
     
    String Msg;
     
    void loop() {
     
      int c;
      while ((c = Serial.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
      if (c == '\n')                                       // is the message complete?
      { 
            if (Msg.equals("#B1P")) 
        {digitalWrite(8,1); Serial.println("#L11");}
     
          if (Msg.equals("#B2P")) 
     
            {digitalWrite(9,1); Serial.println("#L21"); }
     
        Msg = "";
      } 
     
    }

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Bonsoir,

    ce code n'a pas l'air compliqué. Ce qui rend sa lecture difficile est l'indentation qui est mal faite et des lignes qui contiennent parfois 2 instructions.
    Où bloques-tu ?

  3. #3
    Candidat au Club
    Homme Profil pro
    sti2d
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : sti2d
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Par défaut
    Bonsoir, il se trouve que j'ai vraiment du mal à concevoir des algorithmes mêmes simplistes, je connais le principe mais je ne sais pas l'exposer

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bah ce n'est pas trop compliqué. Tu as la fonction setup() qui est exécutée lors de la mise sous tension du microcontrôleur, puis tu as le contenu de la fonction loop() qui est exécuté indéfiniment. Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    - initialisation du port série (bit : 57600 bauds)
    - attendre 3000ms
    - écrire sur le port série : ""
    - écrire sur le port série : "$P:D!88Fg26;{%100,y10^!69F,T*20#FFFFF:Portail Automatique...." 
     
    - écrire sur le pin 8 : 0
    - configurer le pin 8 en sortie
    - écrire sur le pin 9 : 0
    - configurer le pin 9 en sortie
     
    - tant que (infini)
    -- déclarer c en entier
    -- lire sur le port série un caractère c
    -- tant que (c!='\n")
    --- Msg = msg + c;
    --- lire sur le port série un caractère c
    -- fin tant que
    (... suite du code)
    - fin tant que
    je te laisse terminer. Par contre, mettre une voie à "1" (pin 8 et 9 dans le setup) puis ensuite la déclarer en tant que sortie, il y a un problème dans l'ordre des commandes
    Cette partie est donc à corriger :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      // Initialize digital output pin
      digitalWrite(8, 0);
      pinMode(8,OUTPUT);
      digitalWrite(9, 0);
      pinMode(9,OUTPUT);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fermeture fenetre crée par code javascript
    Par Kerod dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 27/02/2010, 00h04
  2. Tri par Codes Postaux + Noms d'entreprises
    Par matperino dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/07/2005, 14h04
  3. Retirer une clé primaire par code
    Par Arrown dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2004, 15h15
  4. [VCL] Scroller un contrôle par code
    Par sbeu dans le forum Composants VCL
    Réponses: 3
    Dernier message: 31/03/2004, 10h39
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo