Arduino
Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

Arduino



  1. #1
    invite3e837cd9

    Arduino


    ------

    bonjours, je voudrais savoir comment faire pour que quand on appui sur un bouton la LED s'allume et qu'au bout de 3s elle se met a clignoter 5s et qu'elle s’arrête .
    merci

    -----

  2. #2
    Jack
    Modérateur

    Re : Arduino

    Bonjour,

    ne petite lecture s'impose:
    http://forums.futura-sciences.com/el...-rappeler.html

    A+

  3. #3
    invite3e837cd9

    Re : Arduino

    Code:
    const int bouton = 12; //le bouton est connecté à la broche 2 de la carte Adruino
    const int led = 13; //la LED à la broche 13
    int etatBouton; //variable qui enregistre l'état du bouton
    void setup()
    {
       pinMode(led, OUTPUT); //la led est une sortie
       pinMode(bouton, INPUT); //le bouton est une entrée
       etatBouton = HIGH; //on initialise l'état du bouton comme "relaché"
    }
    void loop()
    {
       etatBouton = digitalRead(bouton); //Rappel : bouton = 2
       
       if(etatBouton == HIGH) //test si le bouton a un niveau logique HAUT
       {
           digitalWrite(led,HIGH); //la LED reste éteinte
       }
       else  //test si le bouton a un niveau logique différent de HAUT (donc BAS)
       {
           digitalWrite(led,LOW); //le bouton est appuyé, la LED est allumée
       }
    }
    j'ai dejat une partie de mon programme mais quand j'ajoute un delay au lieu qu'elle reste allumée 3s elle s'allume au bout de 3s.
    je vois pas comment si prendre si quelqu'un pouvais me donner juste une petite aide ?
    Dernière modification par HULK28 ; 03/12/2012 à 14h54. Motif: merci d'utiliser les balises [code]!

  4. #4
    PA5CAL

    Re : Arduino

    Bonjour

    Le programme que tu donnes ici est similaire à l'exemple "Button" fourni avec l'Arduino. Mais sa fonction est de recopier en temps-réel l'état du bouton sur la led, et ne correspond donc pas vraiment à ce que tu dois réaliser, qui est de déclencher une séquence particulière d'allumage de la led dès qu'on a appuyé sur le bouton.

     Cliquez pour afficher


    Quant au placement du délai d'éclairement de la led, il doit se situer entre l'allumage et l'extinction de celle-ci.

     Cliquez pour afficher
    Dernière modification par PA5CAL ; 03/12/2012 à 10h12.

  5. A voir en vidéo sur Futura
  6. #5
    invite3e837cd9

    Re : Arduino

    merci cela fonctionne mai elle clignote indéfiniment et je voudrait seulement pendant 5s et je sais pas comment faire?
    Code:
    void loop()
    {
      // teste l'état du bouton (LOW si bouton appuyé, HIGH si bouton relâché)
      if (digitalRead(entreeBouton)==LOW) 
      {
        // si le bouton est appuyé, on déroule la séquence :
        digitalWrite(sortieLed, LOW); // on allume la LED
        delay(3000);   // pendant un durée de 3s
         // allume la led
        digitalWrite(sortieLed, HIGH);
        // attend 3 secondes (=3000 millisecondes)
        delay(3000);
        // éteint la led
        digitalWrite(sortieLed, LOW);
    
      }
    }
    Dernière modification par HULK28 ; 03/12/2012 à 14h55.

  7. #6
    invite3e837cd9

    Re : Arduino

    j'ai un problème enfaite elle clignote même sans appuyer sur le bouton. J'ai ressayer et quand je fait ceci :
    Code:
    if (digitalRead(entreeBouton)==LOW) 
      {
        // si le bouton est appuyé, on déroule la séquence :
        digitalWrite(sortieLed, LOW); // on allume la LED
        
        delay(3000);   // pendant un durée de 3s
    elle ne s'allume qu'au bout de 3s alors que je voudrait l'inverse :/
    Dernière modification par HULK28 ; 03/12/2012 à 14h55.

  8. #7
    PA5CAL

    Re : Arduino

    D'après ton programme, elle ne clignote pas « indéfiniment » mais seulement tant que tu restes appuyé sur le bouton (du moins si la configuration électrique est correcte, notamment en ce qui concerne la résistance de rappel).

    Ta séquence n'est constituée que de :
    - une extinction de 3 secondes
    - un allumage de 3 secondes
    - une extinction
    et elle est exécutée en boucle tant qu'on détecte que le bouton est appuyé.


    Concernant ton code, la séquence devrait commencer par l'allumage et non pas par l'extinction, et elle devrait contenir également toutes les commandes correspondant au clignotement pendant 5 secondes qui doit suivre.

    Par ailleurs, s'il faut comprendre dans ton « ... et qu'elle s’arrête » qu'il faut que le programme cesse définitivement de détecter l'appui sur le bouton afin de ne plus recommencer la séquence, alors il faut inclure dans cette séquence une commande adéquate. Si ton programme ne fait rien d'autre à côté, alors tu peux le bloquer en mettant une boucle infinie (« while(1); ») à la fin de la séquence (et pour redémarrer, il faudra appuyer sur le petit bouton RESET ou bien débrancher puis rebrancher l'Arduino). Sinon tu pourrais positionner une variable qui sera testée au début de la boucle, avant ou en même temps que l'état du bouton, pour que la séquence ne soit pas exécutée une seconde fois.
    Dernière modification par PA5CAL ; 03/12/2012 à 10h59.

  9. #8
    invite3e837cd9

    Re : Arduino

    Je doit avoir un problème dans ma configuration électrique je vais chercher comment y brancher correctement merci .

  10. #9
    PA5CAL

    Re : Arduino

    Si tu connectes le bouton poussoir entre l'entrée et la masse, alors tu dois avoir une résistance de rappel entre l'entrée et Vcc (+5V).

    Deux solutions s'offrent à toi :
    - soit tu ajoutes physiquement cette résistance à ton montage
    - soit tu actives logiciellement la résistance interne dont l'entrée de l'ATMega est pourvue : l'exemple que j'ai fourni dans mon premier « spoiler » montre comment procéder.

  11. #10
    invite3e837cd9

    Re : Arduino

    le pourrai avoir le lien de l'exemple svp?

  12. #11
    PA5CAL

    Re : Arduino

    Pour voir mon exemple, il suffit de cliquer sur la première zone « Cliquez pour afficher » de mon post #4 ci-dessus.

    (NB: Je pourrais donner un exemple complet et fonctionnel réalisant la séquence attendue. Mais comme l'a rappelé Jack, en matière de travail scolaire il n'est pas dans la politique du forum de donner tout de suite le résultat.)
    Dernière modification par PA5CAL ; 03/12/2012 à 13h14.

  13. #12
    invite3e837cd9

    Re : Arduino

    ok, mais sinon es que vous auriez un schéma de montage pour ma programmation? que j'ai rechercher sur internet et j'arrive pas a trouver un tuto avec une LED et un bouton?

  14. #13
    invite3e837cd9

    Re : Arduino

    et je n'est pas de résistance de rappel *

  15. #14
    invite3e837cd9

    Re : Arduino

    j'ai finalement réussi a faire mon branchement , excuser moi . Mais j'ai toujours le même problème qui est qu'elle s'allume 3secondes après :/

  16. #15
    invite3e837cd9

    Re : Arduino

    après plusieurs teste j'ai pue résoudre le problème mon programme fonctionne bien il me reste plus que sa :
    digitalWrite(led, LOW);
    delay(1000);
    digitalWrite(led, HIGH);
    delay(100);
    je voudrait qu'il l’exécute 5 seconde , comment je pourrait le faire svp?

  17. #16
    PA5CAL

    Re : Arduino

    Citation Envoyé par Darrkshadow Voir le message
    et je n'est pas de résistance de rappel *
    Cela explique que le clignotement soit permanent. Le niveau de l'entrée reste à l'état bas après un premier appui sur le bouton du fait des charges électriques emmagasinées dans la capacité parasite de l'entrée.


    Citation Envoyé par Darrkshadow Voir le message
    ok, mais sinon es que vous auriez un schéma de montage pour ma programmation? que j'ai rechercher sur internet et j'arrive pas a trouver un tuto avec une LED et un bouton?
    On trouve des exemples de montage sur le site officiel de l'Arduino.

    Pour la led, on utilise la led intégrée à la carte Arduino.

    Pour le bouton-poussoir, il y a deux façons de le brancher :
    - soit entre l'entrée et le +5V, avec une résistance entre l'entrée et GND (voir premier schéma) : le niveau d'entrée est à l'état bas (LOW) au repos, et passe à l'état haut (HIGH) lorsqu'on appuie sur le bouton ;
    - soit entre l'entrée et GND, avec une résistance entre l'entrée et le +5V (voir second schéma) : le niveau d'entrée est à l'état haut (HIGH) au repos, et passe à l'état bas (LOW) lorsqu'on appuie sur le bouton.

    Comme je l'ai expliqué, on peut se passer de la résistance dans ce dernier cas (voir troisième schéma), à condition d'utiliser la résistance intégrée à l'entrée de l'ATMega. L'activation de cette résistance est réalisée en écrivant un niveau logique haut sur le port correspondant à l'entrée (commande « digitalWrite(numéro de l'entrée, HIGH); »). J'admets qu'il n'est pas très logique de devoir écrire sur une entrée, mais c'est comme cela que fonctionne cette astuce.

    button_schem.png

    button_schem_inv.png

    button_schem_inv_rr.png

  18. #17
    invite03481543

    Re : Arduino

    Bonjour,

    merci d'utiliser dès à présent les balises [*code]....[/code] (enlever juste l'étoile) pour une meilleure lisibilité.
    J'ai déjà modifié vos premiers posts.

  19. #18
    invite3e837cd9

    Re : Arduino

    j'en ai fini avec cette programmation . Merci de m'avoir aider , j'ai pue comprendre mes erreurs .

Discussions similaires

  1. Arduino
    Par askico dans le forum Électronique
    Réponses: 1
    Dernier message: 24/01/2012, 21h31
  2. arduino
    Par invitead1af344 dans le forum Électronique
    Réponses: 6
    Dernier message: 03/01/2011, 20h22
  3. Arduino
    Par qwintine dans le forum Électronique
    Réponses: 18
    Dernier message: 18/11/2010, 19h07
  4. Arduino
    Par invite85ff08e6 dans le forum Électronique
    Réponses: 8
    Dernier message: 17/03/2010, 11h49
  5. Arduino
    Par sdow dans le forum Électronique
    Réponses: 3
    Dernier message: 29/10/2007, 20h42
Découvrez nos comparatifs produits sur l'informatique et les technologies.