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 :

Programmation simple Arduino


Sujet :

Arduino

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Programmation simple Arduino
    Bonjour

    Je suis entrain de faire une petite programmation avec Arduino. Je dispose d'une carte, d'un bouton poussoir et d'une led.
    Je dois faire le programme suivant :
    - Appuie sur le bouton, la led s'allume
    - Appuie une deuxième fois, la led clignote
    - Appuie une troisième fois la LED s'éteint

    Je sais qu'il faut utiliser la commande If/ Else if/ mais je n'arrive pas le mettre en forme.
    Est ce que quelqu'un peut m'aider?
    Merci

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Bonjour,

    peux-tu nous montrer ce que tu as fait ?

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 783
    Points
    30 783
    Par défaut
    Montre le programme que tu as déjà écrit...
    Où rencontres-tu un problème ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Voici ce que j'ai pu faire

    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
    21
    22
    23
    24
    // ******** Déclaration des constatnts ********//
    const int LED_1 = 2;
    const int BUTTON_1 = 12;
     
    // ******** Fonction SETUP = Code d'initialisation ********//
    void setup(){  
      pinMode(LED_1, INPUT); 
      pinMode(BUTTON_1, OUTPUT); 
      }
     
    void loop(){
      int b = 1;
      int a = digitalRead(2); 
     
      if(a==b) 
      {digitalWrite(12,HIGH); 
      }else if (a==b)
      {digitalWrite(12, HIGH);
      delay(1000)
      digitalWrite(13,LOW)
      delay(1000)
      }else (a==b)
      {digitalWrite(12, LOW);
      }

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 783
    Points
    30 783
    Par défaut
    Il manque dans ton programme une variable pour "suivre" les appuis successifs sur ton bouton.

    La structure pourrait être :
    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
    21
    22
    23
    Setup : 
      Etape := 1
      Etat_Bouton := Relaché
    Loop :
      Etat_Lu := Lire_Bouton()
      Si Etat_bouton <> Etat_Lu
       {
        Si Etat_Bouton == Appuyé
         {
          Si Etape == 1
            <opération premier appui>
          Si Etape == 2
            <opération deuxième appui>
          Si Etape == 3
            <opération troisième appui>
         }
        Sinon // bouton relaché
         {
           Etape += 1
           Si Etape > 3
             Etape := 1
         }
       }
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    euh....
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      pinMode(LED_1, INPUT); 
      pinMode(BUTTON_1, OUTPUT);
    tu es sûre que la LED est une entrée et le bouton une sortie ?

    http://www.allaboutcircuits.com/proj...s-digital-i-o/

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Je ne connais pas trop le language Arduino. Je suis novice dans ce milieu.
    Je dois juste réaliser ce montage pour un boitier électronique au niveau du bouton et de la led.
    Je me suis documentée sur les différents tutoriels mais en rentrant la programmation, cela ne fonctionne pas

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Le bouton (ou interrupteur) est ce que l'on appelle une commande : grâce à lui tu envois un ordre à ta carte. Donc c'est une entrée : INPUT
    La LED te permet de connaître un état : si elle est allumée il y a du courant qui passe, si elle est éteinte tu n'as pas de courant. C'est donc une sortie : OUTPUT.

    La conséquence est la suivante :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pinMode(LED_1, OUTPUT); 
    pinMode(BUTTON_1, INPUT);


    Le langage Arduino est du C++.
    Si tu débutes, ton premier travail consiste à câbler les éléments : peux-tu me montrer comment tu as câblé ton interrupteur ? De même comment tu as a câblé ta LED (elle est polarisée) ?
    Ensuite, réaliser un programme tout simple : allumer et éteindre ta LED avec le bouton. Pour la suite (clignotement), on verra.

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    En faite le boitier est déjà monter.
    C'est un boitier déjà existant avec une led en façade et un bouton à l'arrière.
    Le but c'est que quand on appuie sur le bouton en arrière, cela permet de faire une boucle de test pour valider le bon fonctionnement.
    J'ai juste cette partie du code à faire pour ensuite le charger sur le puce.
    Je n'ai rien câbler c'était déjà câbler au départ.

  10. #10
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    bonsoir,

    tu as pu avancer un peu dans la programmation de ton arduino ?

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Oui j'ai un peu avancé
    Voici ce que j'ai pu faire mais je ne suis pas sur que c'est dans la bonne syntaxe :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    int bp=4;
    int led=A0;
    int VarBp=0;
    int Val=0;
     
    void setup ()
     
    {
     
        pinMode (bp, INPUT);
        pinMode (bd, OUTPUT);
     
    }
     
    void loop ()
     
       {
        VarBp= digitalRead(bp);
        If (VarBp==1) {
          Val=Vam+1;
          delay (450);
        }
        If (Val==3) {
            Val=0;
            delay (25);
        }
        If (Val==0){
          digitalWrite(led, LOW);
        }
        If (Val==1) {
           digitalWrite (led,HIGH);}
           If (Val==2) {
           digitalWrite (led,HIGH);
               delay (250);
               digitalWrite (led,LOW);
               delay(250);
     
    }

  12. #12
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Il y a des incohérences :
    Tu déclares
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int bp=4;
    int led=A0;
    puis dans la fonction setup tu écris :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        pinMode (bp, INPUT);
        pinMode (bd, OUTPUT);

    Et en C++, on écrit if pas If. Attention à la syntaxe !

  13. #13
    Nouveau Candidat au Club
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Comment dois je procéder car là je suis complètement bloquée...

  14. #14
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    procède par étape.
    1- lis la valeur de l'état du bouton
    ensuite :
    2- Allume la LED quand tu appuies sur le bouton une 1ère fois et éteins la quand tu appuies une seconde fois. La variable Val sera incrémentée et remise à 0 au 2ème appui, après extinction de la LED.
    Une fois que tu auras fait ces deux étapes, tu feras le clignotement.

    Pour t'aider :
    constantes HIGH / LOW
    digitalRead() (regarde les valeurs retournées par cette fonction...)
    digitalWrite()
    if
    if.. else


    Voici un début, avec déclaration des variables et la fonction setup(). A toi de faire la fonction loop.
    btn et led : des constantes pour ton entrée (le bouton) et ta sortie (la led)
    VarBp : contiendra l'état du bouton après lecture de l'entrée
    Val : ton compteur.

    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
     
    const int btn=4;
    const int led=A0;
    int VarBp=0;
    int Val=0;
     
    void setup ()
    {
       pinMode (btn, INPUT);
       pinMode (led, OUTPUT);
    }
     
    void loop()
    {
       // lecture de l'état du bouton
       // si état bouton == HIGH alors.... ?
       //
    }

Discussions similaires

  1. programme simple mais besoin d'aide
    Par newvo dans le forum Windows
    Réponses: 15
    Dernier message: 07/03/2007, 16h56
  2. Réponses: 11
    Dernier message: 12/12/2006, 00h53
  3. Quel langage de programmation pour des programmes simples ?
    Par Pierre.g dans le forum Langages de programmation
    Réponses: 18
    Dernier message: 22/11/2006, 14h22
  4. Programme "simple" devient très lent ?
    Par Invité dans le forum Delphi
    Réponses: 8
    Dernier message: 18/09/2006, 22h32
  5. Création de programme simple
    Par mz-hacker dans le forum Windows
    Réponses: 1
    Dernier message: 06/08/2006, 00h34

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