mesure de l'angle sur AS5048 par SPI

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
michelmoulin
Date:
Tue Nov 30 13:37:45 2021 +0000
Parent:
0:5a1830df0b66
Commit message:
Lecture de l'angle depuis l'AS5048 en SPI

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 5a1830df0b66 -r d92ff88de240 main.cpp
--- a/main.cpp	Tue Oct 08 14:59:11 2019 +0000
+++ b/main.cpp	Tue Nov 30 13:37:45 2021 +0000
@@ -1,47 +1,31 @@
 #include "mbed.h"
 #include "as5048spi.h"
 
-#define rayon_roue 0.0045
 #define pi 3.14159
 
-#define intervalle 0.005
-
 As5048Spi sensor(PB_15, PB_14, PB_13, PB_12);   //MOSI, MISO, SCKL, CS
 Serial pc(USBTX, USBRX); // tx, rx
-InterruptIn bouton(PC_13);
-Ticker timer;
-int angle, degrees_avant, degrees_maintenant, degrees_vitesse;
-float vitesse;
+
+float mesure_angle_encodeur();
 
-void donnee_saisie()
+float mesure_angle_encodeur()
 {
+    int angle;
     const int* angles = sensor.read_angle();
     angle = angles[0];
-    //Récupération de l'angle précédent
-    degrees_avant = degrees_maintenant;
-        
-    //Aquisition du nouvel angle
-    degrees_maintenant = sensor.degrees(angle)/100;
-        
-    //Calcul de la différence
-    degrees_vitesse = (degrees_maintenant - degrees_avant) / intervalle;
+    float degre;
         
-    vitesse = (rayon_roue * degrees_vitesse * 2 * pi / 360) /*/ (5 + 0.01 / (2 * pi))*/;
-}
-
-void print_speed()
-{
-    timer.detach();
-    //Affichage du résultat
-    pc.printf("rotation = %d degrees/s, vitesse = %.4f mm/s     \r", degrees_vitesse, vitesse * 1000);
-    timer.attach(&donnee_saisie, intervalle); //Lancement de la fonction "donnee_saisie()" toutes les 1 sec
+    //Aquisition de l'angle
+    degre = sensor.degrees(angle)/100.0;
+    return degre;
 }
 
 int main() {
-    bouton.rise(&print_speed);
-    timer.attach(&donnee_saisie, intervalle); //Lancement de la fonction "donnee_saisie()" toutes les 1 sec
+    float angle_encodeur;
     while(1) 
     {
-        
+        angle_encodeur = mesure_angle_encodeur();
+        pc.printf("angle = %.2f degrees \n\r", angle_encodeur);
+        wait(1);
     }
 }
\ No newline at end of file