Mauvaise utilisation fonction tracé de graphe sur Arduino...

chris3874 - Modifié le 4 sept. 2023 à 16:10
[Dal] Messages postés 6181 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 22 mai 2024 - 4 sept. 2023 à 11:41

Bonjour à tous,

J'ai réalisé un programme Arduino(langage C) pour récupérer les données analogiques de la carte issues du port A0.

Si vous lancez le programme, les valeurs défilent en temps réel sous la forme :

tension ; temps

La tension est celle mesurée en sortie A0 par mon capteur et le temps toutes les 0.1s pour chaque mesure.

Mon programme est assez simple car je débute.

const int sensorpin = A0;
int data;
time = 0;

void setup()
{
  serial.begin(9600);
}

void loop()
{
  data = analogRead(sensorpin)
  Serial.Println(String(data) + ';' + String(time));
  delay(100);
  time+=1;
  Serial.flush();
}

Ensuite, pour visualiser mes valeurs qui défilent en temps reel toutes les 100ms je vais sur Moniteur série dans le menu Outils.

Juste que là tout fonctionne mais je souhaiterais ajouter quelques petites commandes comme :

  • Appuyer sur une touche pour stopper la compilation des données
  • Stopper l'alimentation en 5V du circuit sans avoir à débrancher le port USB en appuyant sur une touche quelconque
  • ET SURTOUT Utiliser le fonction Traceur série dans le menu outils pour tracer en tps reel le graphique correspondant aux valeurs qui défilent.

Lorsque j'utilise cette fonction traceur série, je vois apparaître correctement l'axe des abscisses et celui des ordonnées avec l'échelle sur chaque axe mais en aucun cas la courbe ne se trace... Je ne comprends pas pourquoi.

Je souhaiterais aussi ajouter :

  • sur l'axe des abscisses : Temps
  • sur l'axe des ordonnées : Tension
  • Titre : Tracé du graphique de la tension en fonction du temps issu de mon capteur

Si quelqu'un peut m'aider, ça serait sympa, même partiellement... surtout sur la partie tracé du graphique en temps réel...

A bientôt j'espère...

A voir également:

1 réponse

[Dal] Messages postés 6181 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 22 mai 2024 1 084
Modifié le 4 sept. 2023 à 11:43

Salut chris3874,

Je n'ai pas de arduino sous la main.

Cette page semble être une bonne documentation sur l'usage du traceur série :

https://www.redohm.fr/2020/01/arduino-traceur-serie/

Dans les exemples fournis, on voit que tu peux envoyer des valeurs à virgule flottante ou des valeurs entières, mais je ne vois pas que l'on puisse envoyer un type String.

Essaye de coller aux exemples de cette documentation.

Par exemple, remplace :

Serial.Println(String(data)+';'+String(time));

par :

Serial.print(data);
Serial.println();

Je ne sais pas si tu peux mettre une légende, et je n'ai pas de réponses à te proposer sur tes autres questions.

1