Bonjour,
J'utilise un capteur de pression : la mesure (en fait la moyenne d'une série de mesures) s'affiche lorsque la commande S est envoyée dans le buffer (via un programme Python).
J'ai un souci car lorsque j'ouvre le moniteur série il m'indique 0.0 alors que je n'ai rien saisi. Je n'arrive pas à trouver d'où provient cette valeur, qui m'embête car lorsque je pilote mes mesures via Python, il me conserve la première valeur (donc 0) qui ne correspond à rien.
Mon programme :
//déclaration des variables fixes du programme
const unsigned long flux = 250000; //flux de la liaison série
const unsigned int cycles = 100; //nombre de cycle pour la moyenne
// Broches de branchement au circuit
const byte mesurePression = 0;
// Déclaration des variables du programme
unsigned long mesure; // initialisation de la variable mesure
float pression; // initialisation de la variable tension
// Déclaration des variables pour le capteur
const float pente = 222.0; //issu de l'étalonnage
const float ordonnee = 105.2; //issu de l'étalonnage
int topDepart = 0; //variable pour lancer l'acquisition
String envoi;
void setup() {
//on initialise le port série pour communiquer avec le PC
Serial.begin(flux);
}
// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop()
{
int messageRecu = 0;
if (Serial.available() > 0)
{
messageRecu = Serial.read();
if (messageRecu == 'S') // commande d'envoi de données
{
mesure = 0 ; //on réinitialise la somme des mesures pour calculer une nouvelle valeur
//boucle sur le nombre de cycles pour faire la moyenne
for (int i = 0 ; i < cycles ; i++)
{
mesure += analogRead(mesurePression) ; //lecture analogique de la tension, entre 0 et 1023
}
pression = ((mesure * 5.0 / 1023.0) / cycles) * pente + ordonnee ; //conversion en tension, calcul de la moyenne puis de la pression
}
// Envoie les données
Serial.println(pression, 1); // donne la valeur recalculée de tension aux bornes de C
}
}
D'où peut venir cet affichage de 0.0 ?
Merci pour votre aide