Bonjour,
J'ai modifié un programme trouvé sur Internet qui a pour but de programmer un servo-moteur pour qu'il rende l'inverse de l'angle que le gyroscope MPU capte (le servo-moteur, le gyroscope et la carte nano sont sur la même plaque).
J'aimerais récupérer la valeur que le moteur réalise dans le moniteur série avec un Serial.print(val) mais cela ne marche pas. Il apparait juste les signes style point d'interrogation ou carré noir.
Voici le programme :
#include "Wire.h"
#include "MPU6050.h"
#include "Servo.h"
MPU6050 mpu; //Déclaration variables : accéléromètre/gyroscope MPU6050
int16_t ax, ay, az;
int16_t gx, gy, gz;
Servo servo; //servomoteur
int val; //valeur actuelle
int prevVal; //valeur précédente
void setup()
{
Wire.begin();
Serial.begin(11520);
Serial.println("Initialize MPU");
mpu.initialize();
Serial.println(mpu.testConnection() ? "Connected" : "Connection failed"); // savoir si MPU6050 est conncecté ou non
servo.attach(6); //port d'attache du servomoteur (D6)
}
void loop()
{
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); //récupère les valeurs du MPU6050
val = map(-ay, -17000, 17000, 0, 179); //-ay dans la fonc map car on cherche à contrer l'angle détecté -> - valeur
Serial.print(val);
if (val != prevVal) //si la valeur lue est différente de celle lue précédemment
{
servo.write(val);//envoie l'angle à effectuer au servo
prevVal = val; //la valeur précédente devient notre valeur actuelle
}
delay(0);
}
Est-ce que quelqu'un peut m'aider svp ?
Merci d'avance
Emma