J'ai corrigé ça mais apparemment aucune correspondance avec la fonctionMMA7660::getAcclemeter(float *ax,float *ay,float *az)
Fais voir ton code
Le voici :
#include <Wire.h>
#include "MMA7660.h"
MMA7660 acc;
void setup()
{
acc.init();
pinMode(13, OUTPUT);
Serial.begin(115200);
}
void loop()
{
static long cnt = 0;
static long cntout = 0;
float ax,ay,az;
int8_t x, y, z;
acc.getXYZ(&x,&y,&z);
Serial.print("x = ");
Serial.println(x);
Serial.print("y = ");
Serial.println(y);
Serial.print("z = ");
Serial.println(z);
if(acc.getAcclemeter(float *ax,float *ay,float *az))
{
Serial.print("get data ok: ");
}
else
{
Serial.print("tiem out: ");
}
Serial.println("accleration of X/Y/Z: ");
Serial.print(ax);
Serial.println(" g");
Serial.print(ay);
Serial.println(" g");
Serial.print(az);
Serial.println(" g");
Serial.println();
delay(50);
}
J'ai essayé de mettre aussiif(acc.getAcclemeter(ax,ay,az))
ou
if(acc.getAcclemeter(&ax,&ay,&az))
J'ai modifié et ça compile effectivement le programme, maintenant comment le lancer ? Je veux dire, il est téléversé (je pense qu'il fonctionne) mais comment le lancer et avoir les valeurs d'accélération affichées à l'écran ?
Le téléversement se fait, ça écrit "Téléversement terminé" mais dans l'historique des erreurs ça met "Bibliothèque non valide dans C:\ etc"
Hello, la je suis via mobile donc ça va être chaud.
Alors déjà pour ton code, la bonne manière d'écrire est bien:
acc.getAcclemeter(&ax,&ay,&az)
Si tu veux savoir pourquoi il faut mettre le "&" renseigne toi sur l'utilisation des pointeurs (genre sur openclassroom).
Ensuite ton if ici est inutile, car la méthode "getAccelemeter" ne retourne rien (void). Donc en fait, Tu testes toujours un void.
Si tu as bien fais le câblage , ici ça devrait fonctionner tu devrais pouvoir afficher les différents axes comme tu le fais.
Pour info une fois le televersement effectué, le code est "sauvegardé" sur la carte arduino et à chaque fois que tu l'allume c'est toujours le même code qui est exécuté (jusqu'au prochain televersement bien sûr).
Pour afficher les valeurs à l'écran, normalement il y a une console permettant de simuler un port série sur l'IDE. Donc t'as juste à indiquer le bon baudrate (dans ton cas 115200) Et tu devrais voir les valeurs affichées.
Pour le message d'erreur concernant la librairie, Je ne sais pas. Regarde sur Google en tapant le texte de l'erreur.
Ok merci de ton aide, j'essaierai ce que tu m'as dit.
Cependant je n'ai pas de console moi.
Pour la console, c'est le bouton en haut à droite. Clique dessus après avoir connecté ton arduino à ton ordinateur:
Pour ce qui est du code, je viens de voir qu'un exemple existait sur le site:
https://github.com/Seeed-Studio/Accelerometer_MMA7660/blob/master/examples/MMA7660FC_Demo/MMA7660FC_Demo.ino
C'est marrant qu'ils utilisent directement "getXYZ". Mais bon, tu peux tester. L'autre fonction fait la même chose mais je ne sais pas pourquoi divise le résultat par 21.
Je testerai merci.
Je n'ai pas d'ordi actuellement.
Up
Auriez-vous des idées pour une calibration et un étalonnage ?
Personne ?
C'est bon ça fonctionne
Maintenant reste plus qu'à calibrer et étalonner, quelqu'un aurait des idées ?
Des conseils ou un truc comme ça. Pour la calibration il faut un autre prograe je suppose ?
Personne ?
Up
Je pense que l'étalonnage est déjà fait.
Après si tu veux changer la précision etc, tu peux toujours lire la datasheet et voir quelles valeurs il faut envoyer pour configurer autrement l'accéléromètre.
http://garden.seeedstudio.com/images/e/ee/MMA7660FC.pdf