FabLab Nîmes / Mbed 2 deprecated FabLab_TP_05_solution

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //==============================================================================
00002 //  FabLab Nîmes
00003 //  Initiation à la Programmation
00004 //  Auteur : Frédéric Giamarchi
00005 
00006 //  Date : 06 janv. 2022
00007 //  TP : Mesure de la température par une résistance CTN de 4,7k Ohm
00008 //  Affichage de la température sur le PC
00009 //==============================================================================
00010 //              Déclarations des ressources
00011 #include "mbed.h"
00012 
00013 //==============================================================================
00014 //              Déclaration des broches
00015 DigitalOut  DEL_RO(PA_11);              // Ligne PA_11 sur la carte Nucléo
00016 Serial      pc(USBTX, USBRX);           // Dialogue Série port USB à 9600 Baud
00017 AnalogIn    POT(PA_0);                  // Ligne PA_0 en entrée analogique
00018 
00019 //==============================================================================
00020 //              Déclaration des variables
00021 uint8_t variable;                        // variable de type entier (0 à 255)
00022 char c;                                 // variable de type caractère
00023 float temp, temp_mes;                           // variable de type réel
00024 uint16_t mesure;
00025 
00026 //==============================================================================
00027 //              Déclaration des Fonctions
00028 float tab[100];
00029 uint8_t k;
00030 float somme;
00031 
00032 //  Fonction qui calcule la moyenne de x valeurs et renvoit un résultat
00033 float Moyenne(float valeur, uint8_t nb)
00034 {
00035     somme = somme - tab[k]+  valeur;    // Calcul de la somme
00036     tab[k] = valeur;                    // Mémorise la nouvelle valeur dans le tableau
00037      
00038     k++;
00039     if (k == nb)                        // Limitation du tableau à "nb" valeurs
00040         k = 0;
00041 
00042     return somme / nb;                  // Calcule de la moyenne et renvoit le résultat
00043 }
00044 
00045 //==============================================================================
00046 //              Début du Programme
00047 int main()                              // Fonction principale
00048 { 
00049     pc.printf("\r\nFabLab TP Mesure Temperature\r\n\n");
00050     k = 0;
00051     
00052 //==============================================================================
00053 //              Boucle Infinie
00054     while(1)
00055     {
00056 //        mesure = POT.read()*3.3f;       // Mesure de la tension
00057         mesure = POT.read_u16()>>4;         // Mesure de la valeur numérique alignée à gauche qui doit être replacer à droite  
00058         temp = (mesure - 966)*0.023f - 2;   // Linéarisation et correction
00059         temp_mes = temp;                    // Température mesurée
00060         temp = Moyenne (temp,50);           // Calcul de la moyenne sur 50 valeurs
00061         
00062         wait_ms(50);
00063         pc.printf("Mes: %.1f  Moy: %.1f\r\n",temp_mes,temp);
00064         
00065     }           // Fin du while(1)
00066 //==============================================================================
00067 }               // Fin du Programme
00068 //==============================================================================