LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

vendredi 23 juin 2017

27 visiteurs en ce moment

Les interruptions (1)

. Par : Jean-Luc

La façon dont un Arduino se programme a été présentée dans « La programmation, qu’est ce que c’est » et les articles suivants de la série. Vous savez donc que le logiciel qui vient avec l’Arduino appelle une fois la fonction setup() puis appelle ensuite loop() de manière répétitive. Généralement, pour mettre en œuvre un système, on va, dans loop(), lire (...)

Retourner à l'article

Vous répondez à :

Les interruptions (1) question ILS anémometre 25 mars 2016 15:51, par Clement

Bonjour, ce sujet date un peu mais j’espère que vous trouverez mon message.
Je suis en terminale sti2d et j’étudie un anémomètre (je précise que je débute en programmation).
Je suis actuellement bloqué pour une histoire de timer.
Lorsque l’anemometre va tourner il va activer l’ILS, le programme va alors entrer dans la boucle compteur.
Cependant je cherche un moyen de compter le nombre de fois que l’ILS va s’activer pendant une seconde. Pour cela il me faut enclencher un timer lorsque le programme entre dans la boucle compteur et incrémenter jusqu’a ce que le timer atteigne une seconde. Le problème étant que a chaque interruption la boucle recommence donc le timer se reset a chaque fois. Merci d’avance.
voici la datasheet   de l’anémomètre ainsi que le code que j’ai réaliser pour le moment. J’ai besoin d’aide merci.
datasheet   : https://www.sparkfun.com/datasheets...

  1. int anemometre = 3; //pin pour compter le nombre d'impulsion
  2. int compt = 0; //fonction pour compter le nombre d'impulsio
  3. float vitesse = 0; //vitesse du vent
  4. float valeur = 2.4; //2,4 km/h par activation de l'ILS par seconde
  5.  
  6. void setup()
  7. {
  8. Serial.begin(9600);
  9. attachInterrupt(digitalPinToInterrupt(3),compteur,RISING); //fonction pour compter le nombre d'interruption
  10. }
  11.  
  12.  
  13. void loop()
  14. {
  15. Serial.println("ca tourne pas");
  16. }
  17.  
  18. void compteur()
  19. {
  20. static unsigned long temps_dernier = 0;
  21. unsigned long temps = millis();
  22.  
  23. while ((temps - temps_dernier) <= 1000);
  24. {
  25. compt++;
  26. temps_dernier = temps;
  27. }
  28. affichage();
  29. }
  30.  
  31. void affichage()
  32. {
  33. vitesse = valeur*compt; //calcul de la vitesse du vent
  34. Serial.print("vitesse du vent :");
  35. Serial.println(vitesse);
  36. compt = 0;
  37. }
Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

29 Messages

Rubrique Programmation

Comment gérer le temps dans un programme ?

La programmation, qu’est ce que c’est

Types, constantes et variables

Installation de l’IDE Arduino

Répéter des instructions : les boucles

Les interruptions (1)

Instructions conditionnelles : le if … else

Instructions conditionnelles : le switch … case

Comment gérer l’aléatoire ?

Calculer avec l’Arduino (1)

Calculer avec l’Arduino (2)

Les structures

Systèmes de numération

Les fonctions

Trois façons de déclarer des constantes

Transcription d’un programme simple en programmation objet

Les chaînes de caractères

Trucs, astuces et choses à ne pas faire !

Le monde des objets (1)

Le monde des objets (2)

Le monde des objets (3)

Le monde des objets (4)

Les pointeurs (1)

Les pointeurs (2)

Les Timers (I)

Les Timers (II)

Les Timers (III)

Les Timers (IV)

Les Timers (V)

Bien utiliser l’IDE d’Arduino (1)

Bien utiliser l’IDE d’Arduino (2)

Les derniers articles

Bien utiliser l’IDE d’Arduino (2)


Thierry

Bien utiliser l’IDE d’Arduino (1)


Christian Bézanger, Dominique, Jean-Luc, Thierry

Les Timers (V)


Christian Bézanger

Trucs, astuces et choses à ne pas faire !


Dominique

Le monde des objets (4)


Thierry

Les pointeurs (2)


Thierry

Les chaînes de caractères


Thierry

Transcription d’un programme simple en programmation objet


Dominique, Guillaume, Jean-Luc

Les pointeurs (1)


Thierry

Comment gérer l’aléatoire ?


Dominique, Guillaume, Jean-Luc

Les articles les plus lus

Les interruptions (1)

Les Timers (I)

Comment gérer le temps dans un programme ?

Les Timers (IV)

Les Timers (III)

Calculer avec l’Arduino (1)

Répéter des instructions : les boucles

Les Timers (II)

La programmation, qu’est ce que c’est

Instructions conditionnelles : le if … else