FabLab Nîmes / Mbed 2 deprecated FabLab_Anemometre

Dependencies:   mbed

Committer:
Giamarchi
Date:
Wed Mar 02 22:28:23 2022 +0000
Revision:
3:c75f8eddeaf4
Parent:
2:c1a4641eeacf
Station Meteo; Anemometre

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Giamarchi 2:c1a4641eeacf 1 //==============================================================================
Giamarchi 2:c1a4641eeacf 2 // Fichier : fonctions.h
Giamarchi 2:c1a4641eeacf 3 //
Giamarchi 2:c1a4641eeacf 4 // Description de fonctions utilisées pour la station météo
Giamarchi 2:c1a4641eeacf 5 //==============================================================================
Giamarchi 3:c75f8eddeaf4 6 #include "mbed.h"
Giamarchi 2:c1a4641eeacf 7 // Déclaration des variables et des constantes
Giamarchi 2:c1a4641eeacf 8
Giamarchi 3:c75f8eddeaf4 9 InterruptIn Anem(PB_4); // La ligne est déclarée en interruption
Giamarchi 3:c75f8eddeaf4 10 Timer Fenetre_Temps; // Déclaration d'un compteur
Giamarchi 3:c75f8eddeaf4 11
Giamarchi 3:c75f8eddeaf4 12 uint16_t nombre;
Giamarchi 2:c1a4641eeacf 13
Giamarchi 3:c75f8eddeaf4 14 void ISR_Compteur(void) // Fonction d'interruption (Interrupt Sub Routine)
Giamarchi 3:c75f8eddeaf4 15 {
Giamarchi 3:c75f8eddeaf4 16 nombre++; // Compte le nombre de rotation de l'axe
Giamarchi 3:c75f8eddeaf4 17 }
Giamarchi 2:c1a4641eeacf 18
Giamarchi 2:c1a4641eeacf 19 void Init_Fonctions(void)
Giamarchi 2:c1a4641eeacf 20 {
Giamarchi 3:c75f8eddeaf4 21 Anem.mode(PullUp); // Activation résistance de Pullup
Giamarchi 3:c75f8eddeaf4 22 Fenetre_Temps.start(); // Déclenche le timer
Giamarchi 3:c75f8eddeaf4 23 Anem.rise(&ISR_Compteur); // Interruption sur front montant
Giamarchi 2:c1a4641eeacf 24 }
Giamarchi 2:c1a4641eeacf 25 //==============================================================================
Giamarchi 2:c1a4641eeacf 26 // Fonction : Girouette
Giamarchi 2:c1a4641eeacf 27 // Entrée : Pas de paramètres en entrée
Giamarchi 3:c75f8eddeaf4 28 // Sortie : vitesse du vent en 16bits
Giamarchi 2:c1a4641eeacf 29
Giamarchi 3:c75f8eddeaf4 30 int16_t Anemometre (void)
Giamarchi 2:c1a4641eeacf 31 {
Giamarchi 3:c75f8eddeaf4 32 int16_t vit; // variable locale
Giamarchi 3:c75f8eddeaf4 33
Giamarchi 3:c75f8eddeaf4 34 if(Fenetre_Temps.read_ms() > 1000) // Mesure d'une fréquence
Giamarchi 3:c75f8eddeaf4 35 {
Giamarchi 3:c75f8eddeaf4 36 vit = nombre/4; // Formule de conversion
Giamarchi 3:c75f8eddeaf4 37 nombre = 0;
Giamarchi 3:c75f8eddeaf4 38 Fenetre_Temps.reset();
Giamarchi 3:c75f8eddeaf4 39 }
Giamarchi 3:c75f8eddeaf4 40 else
Giamarchi 3:c75f8eddeaf4 41 {
Giamarchi 3:c75f8eddeaf4 42 vit = -1; // Lecture non disponible
Giamarchi 3:c75f8eddeaf4 43 }
Giamarchi 3:c75f8eddeaf4 44 return vit;
Giamarchi 3:c75f8eddeaf4 45 }
Giamarchi 3:c75f8eddeaf4 46
Giamarchi 3:c75f8eddeaf4 47 // Nucleo - L432KC
Giamarchi 3:c75f8eddeaf4 48
Giamarchi 3:c75f8eddeaf4 49 // PA_9 Vin
Giamarchi 3:c75f8eddeaf4 50 // PA_10 Gnd
Giamarchi 3:c75f8eddeaf4 51 // NRST NRST
Giamarchi 3:c75f8eddeaf4 52 // Gnd 5V
Giamarchi 3:c75f8eddeaf4 53 // PA_12 PA_2
Giamarchi 3:c75f8eddeaf4 54 // PB_0 PA_7
Giamarchi 3:c75f8eddeaf4 55 // PB_7 PA_6
Giamarchi 3:c75f8eddeaf4 56 // PB_6 PA_5
Giamarchi 3:c75f8eddeaf4 57 // PB_1 PA_4
Giamarchi 3:c75f8eddeaf4 58 // NC PA_3
Giamarchi 3:c75f8eddeaf4 59 // NC PA_1
Giamarchi 3:c75f8eddeaf4 60 // PA_8 PA_0
Giamarchi 3:c75f8eddeaf4 61 // PA_11 Aref
Giamarchi 3:c75f8eddeaf4 62 // PB_5 3V3
Giamarchi 3:c75f8eddeaf4 63 // PB_4 PB_3
Giamarchi 3:c75f8eddeaf4 64
Giamarchi 3:c75f8eddeaf4 65