LOCODUINO

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

dimanche 16 mai 2021

74 visiteurs en ce moment

Les interruptions (1)

. Par : Jean-Luc

Principe de fonctionnement des interruptions On a vu dans « La programmation, qu’est ce que c’est » que l’Arduino exécutait son programme en séquence, instruction par instruction, dans l’ordre. Certaines instructions permettent de rompre cet ordre : les instructions conditionnelles comme le if ... else ou les instructions de boucle comme le for(...). (...)

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.)

57 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 concevoir rationnellement votre système

Comment gérer l’aléatoire ?

Calculer avec l’Arduino (1)

Calculer avec l’Arduino (2)

La compilation d’un projet Arduino

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

Ces tableaux qui peuvent nous simplifier le développement Arduino

Les chaînes de caractères

Trucs, astuces et choses à ne pas faire !

Processing pour nos trains

Arduino : toute première fois !

Démarrer en Processing (1)

TCOs en Processing (1)

TCOs en Processing (2)

Comment réussir son projet Arduino

Passage à niveau géré par Arduino (1)

Passage à niveau géré par Arduino (2)

Passage à niveau géré par Arduino (3)

Passage à niveau géré par Arduino (4)

Passage à niveau géré par Arduino (5)

Du sketch à l’exécutable

Programmer vos Arduino avec un fichier hexadécimal

L’assembleur (1)

L’assembleur (2)

L’assembleur (3)

L’assembleur (4)

L’assembleur (5)

L’assembleur (6)

L’assembleur (7)

L’assembleur (8)

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)

Piloter son Arduino avec son navigateur web et Node.js (1)

Piloter son Arduino avec son navigateur web et Node.js (2)

Piloter son Arduino avec son navigateur web et Node.js (3)

Piloter son Arduino avec son navigateur web et Node.js (4)

Les derniers articles

L’assembleur (8)


Christian

L’assembleur (7)


Christian

L’assembleur (6)


Christian

L’assembleur (5)


Christian

L’assembleur (4)


Christian

L’assembleur (3)


Christian

L’assembleur (2)


Christian

L’assembleur (1)


Christian

Programmer vos Arduino avec un fichier hexadécimal


Christian

Du sketch à l’exécutable


Christian

Les articles les plus lus

Les interruptions (1)

Les Timers (I)

Instructions conditionnelles : le if … else

Comment gérer le temps dans un programme ?

Ces tableaux qui peuvent nous simplifier le développement Arduino

Les fonctions

Piloter son Arduino avec son navigateur web et Node.js (1)

Calculer avec l’Arduino (2)

Répéter des instructions : les boucles

Instructions conditionnelles : le switch … case