Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 1:d92ff88de240, committed 2021-11-30
- 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 |
--- 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