Comptage Impulsion
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Comptage Impulsion



  1. #1
    bobynours

    Comptage Impulsion


    ------

    Bonjour à tous

    J'ai actuellement un gros problème j'essaye de compter les impulsions d'un pluviomètre sous arduino, et de remettre à 0 le compteur à 0 lorsque que cela fait 3 min
    mon problème est lorsque je lance la simulation sela me met des 0 à chaque fois....
    AIDEZ moi svp voici mon code:
    Code:
    const int entree_impulsion = 2;  //on initialise le pin de mesure des impulsions
    int etat_ILS = 0;  //on mesurera l'état du contacteur
    int last_etat_ILS = 0;  //pour garder en mémoire l'ancien état du contacteur
    unsigned int compteur = 0;
    unsigned long chrono = 0;
    
    
    void setup()
    {
      pinMode(entree_impulsion, INPUT); //on met le pin entree impulsion en lecture
      
      Serial.begin(9600); //initialiser la communication serie
    }
    
    void loop()
    {
      
      compteur = 0; //on réinitialise le compteur
      chrono = millis(); //on affecte millis() à notre variable chrono
      Serial.println(compteur); //affichage d'un 0 pour signaler le début de la mesure sur le moniteur série
     
      if (millis() - chrono == 10000) //mesurer 10 secondes
      {
        etat_ILS = digitalRead(entree_impulsion); //lecture de l'état de l'ILS
      
        if (etat_ILS != last_etat_ILS) //en cas de changement de l'état de l'ILS
        {
          compteur++; // on incrémente le compteur
          last_etat_ILS = etat_ILS;
        }
      }
          
      
      delay(5000); //pause entre les mesures
      
    }

    -----
    Dernière modification par Jack ; 19/05/2013 à 13h17. Motif: balises code

  2. #2
    Jack
    Modérateur

    Re : Comptage Impulsion

    Mets des balises code à l'avenir. Ca donne davantage envie de lire ton code.

  3. #3
    Jack
    Modérateur

    Re : Comptage Impulsion

    Je n'y connais pas grand chose en arduino, mais le fait de mettre le compteur à 0 à chaque parcours de la boucle ne va-t-elle pas limiter celui-ci à 1 au maximum?

  4. #4
    Jack
    Modérateur

    Re : Comptage Impulsion

    Pareil pour chrono = milli();

    Ne faudrait-il pas mettre ça dans la fonction setup()?

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

    Re : Comptage Impulsion

    Désolé pour les balises c'est la premiere fois que je post sur ce forum, je n'en ai aucune idée je vais essayé ce que vous m'avez dit

  7. #6
    bobynours

    Re : Comptage Impulsion

    Cette solution est peut etre possible mais elle ne résoud pas mon problème qui est de compter les impulsion quand j'appuie sur le bouton poussoir

  8. #7
    schmo

    Re : Comptage Impulsion

    salut,

    elle est ou ta boucle de mesure?
    ce que je comprend de ta fonction loop:
    - au départ, tu initialise tes compteurs,
    - tu test si le temps écoulé est de 10s
    dans ce cas:
    - tu test l'état de ton entrée et tu compte les changement d'état..ok
    sinon tu fais rien
    - tu attends 5s
    - tu ressort de ta fonction.

    Donc à chaque appel de 'loop' tu initialise tes compteurs, tu test le temps et ... tu ressort de ta fonction... Ton compteur est et reste à 0!

    je dirais qu'il te manque une instruction de type "while".
    genre while (millis() - chrono < 10000) {...}


    Pat

  9. #8
    bobynours

    Re : Comptage Impulsion

    J'ai déjà vu sa sur un forum mais je ne comprend pas comment cette fonction while s'utilise..

  10. #9
    gabuzo

    Re : Comptage Impulsion

    genre while (millis() - chrono < 10000) {...}

    C'est facile. Tant que millis <10000 on reste dans la boucle et après on en sort. Si la boucle dure 10 secondes pendant ce laps de temps tu comptes les impulsions.
    Je suis Charlie

  11. #10
    bobynours

    Re : Comptage Impulsion

    Dac je comprends mieux mais pourtant c est ce que j ai fais dans mon programme mais je n arrive toujours pas à compter les.impulsions excusez moi c est que j ai vraiment un niveau très médiocre en programmation...

  12. #11
    gabuzo

    Re : Comptage Impulsion

    Si compteur=0 se trouve à l'intérieur de ta boucle ça ne peut pas monter bien haut. Il faut initialiser la variable avant la boucle. cela dit c'est une hypothèse, je n'ai jamais programmé d'arduino.
    Dernière modification par gabuzo ; 20/05/2013 à 07h09.
    Je suis Charlie

  13. #12
    Jack
    Modérateur

    Re : Comptage Impulsion

    Citation Envoyé par gabuzo Voir le message
    Si compteur=0 se trouve à l'intérieur de ta boucle ça ne peut pas monter bien haut. Il faut initialiser la variable avant la boucle. cela dit c'est une hypothèse, je n'ai jamais programmé d'arduino.
    C'est globalement ce que je disais dans mon message #3

    Citation Envoyé par Jack Voir le message
    Je n'y connais pas grand chose en arduino, mais le fait de mettre le compteur à 0 à chaque parcours de la boucle ne va-t-elle pas limiter celui-ci à 1 au maximum?

  14. #13
    gabuzo

    Re : Comptage Impulsion

    Oui j'ai vu ton message mais j'ai l'impression qu'il faut insister...
    Je suis Charlie

  15. #14
    bobynours

    Re : Comptage Impulsion

    Merci beaucoup je viens de réussir ce que je voulais faire merci!!!!

Discussions similaires

  1. Comptage énergétique
    Par invitec3a58ed8 dans le forum Électronique
    Réponses: 6
    Dernier message: 24/08/2014, 17h38
  2. Réponses: 11
    Dernier message: 29/07/2014, 22h26
  3. Comptage avec R
    Par invite7306bfe0 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 23/04/2012, 15h03
  4. Comptage d'impulsions
    Par invite0afe998b dans le forum Électronique
    Réponses: 0
    Dernier message: 10/03/2012, 23h24
  5. Un bête comptage
    Par Alegs dans le forum Physique
    Réponses: 8
    Dernier message: 07/03/2009, 06h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.