Les fonctions mathématiques sont un outil précieux pour les scientifiques et les ingénieurs. Elles peuvent être utilisées pour résoudre des problèmes complexes et trouver des solutions efficaces. Cependant, il peut être difficile de visualiser les résultats de ces fonctions. Heureusement, il est possible d’afficher les résultats de ces fonctions mathématiques dans la fenêtre Terminal du PC. Dans cet article, nous allons examiner comment afficher les résultats de ces fonctions mathématiques dans la fenêtre Terminal du PC.
Afficher des résultats de fonctions mathématiques dans la fenêtre Terminal du PC.

1. Présentation
Ce programme montre comment afficher des résultats de fonctions mathématiques dans la fenêtre Terminal du PC. Les fonctions mathématiques testées ici sont les fonctions sinus, cosinus, racine carrée et puissance. On pourra ainsi se rendre compte des capacités de calcul potentielles d’une carte Arduino qui peut réaliser des calculs tout de même assez élaborés au besoin, ce qui pourra être utile pour des applications de calcul de position par triangulation avec un robot par exemple.
On comparera ici le résultat fourni par la carte Arduino avec le résultat fourni par le logiciel de calcul opensource Scilab.
Ce programme utilise les fonctionnalités suivantes :
- la connexion série vers le PC
Ce programme utilisera :
- l’instruction print de la librairie dédiée à la communication série
- les fonctions mathématiques du langage Arduino.
2. Matériel Nécessaire
2.1 L’espace de développement Arduino
- … pour éditer, compiler le programme et programmer la carte Arduino.

2.2 Aucun montage associé
3. Instructions de montage
- Connexion série entre la carte Arduino et le PC (utilise les broches 0 et 1)
4. Le schéma théorique du montage

Le schéma théorique du montage
5. Le circuit du montage

Le schéma du montage à réaliser
6. Explication du programme
6.1 Structure globale du programme
Ce programme simple comprend :
- une entête déclarative
- une partie « configuration » qui ne sera exécutée qu’une fois (fonction setup( ) )
- une partie constituée d’une boucle sans fin que le programme répètera à l’infini ( fonction loop( ) ) : c’est le coeur du programme.
6.2 Déroulement du programme
Le programme se déroule de la façon suivante :
- Après avoir pris en compte les instructions de la partie déclarative,
- puis après avoir exécuté la partie configuration ( fonction setup( ) ),
- le programme bouclera sans fin ( fonction loop ( ) ), exécutant de façon répétée le code compris dans la boucle sans fin.

Le déroulement du programme
7. Au niveau de la partie déclarative :
On déclare plusieurs variables de type float pour les calculs mathématiques :
float xf=0.0, yf=0.0, zf=0.0; // variables float pour calculs
8. Au niveau de la fonction d’initialisation setup( ) :
Initialisation des fonctionnalités utilisées :
- On initialise les différentes fonctionnalités utilisées :
- Initialisation de la communication série avec le PC
Serial.begin(115200); // initialise connexion série à 115200 bauds // IMPORTANT : régler le terminal côté PC avec la même valeur de transmission
9. Au niveau de la boucle principale, la fonction loop ( ) :
- On réalise l’affichage des différentes valeurs grâce à l’instruction print de la librairie dédiée à la communication série.
- Ce programme utilise les fonctions mathématiques du langage Arduino.
- On réalise ensuite une courte pause entre chaque affichage.
Serial.println("***** Affichage de resultat de fonctions mathematiques *****"); // affiche texte Serial.println(""); // saut de ligne // fonction sinus xf=8.59; // valeur en radians yf=sin(xf); // calcul du sinus Serial.println("** Fonction Sinus **"); // affiche texte Serial.print("Valeur="), Serial.print(xf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Sinus (valeur)="), Serial.print(yf,4), Serial.println(""); // affiche resultat float - 4 décimales affichées Serial.println("");// saut de ligne delay (2000); // fonction cosinus xf=40.56; // valeur en radians yf=cos(xf); // calcul du cosinus Serial.println("** Fonction Cosinus **"); // affiche texte Serial.print("Valeur="), Serial.print(xf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Cosinus (valeur)="), Serial.print(yf,4), Serial.println(""); // affiche resultat float - 4 décimales affichées Serial.println("");// saut de ligne delay (2000); // fonction racine carrée xf=49.00; // valeur yf=sqrt(xf); // calcul de la racine carrée Serial.println("** Fonction Racine Carree **"); // affiche texte Serial.print("Valeur="), Serial.print(xf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Racine Carree (valeur)="), Serial.print(yf,4), Serial.println(""); // affiche resultat float - 4 décimales affichées Serial.println("");// saut de ligne delay (2000); // fonction puissance xf=10.0; // valeur de la base yf=5.0; // valeur de l'exposant zf=pow(xf,yf); // calcul du sinus Serial.println("** Fonction Puissance (base,exposant) **"); // affiche texte Serial.print("Base="), Serial.print(xf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Exposant="), Serial.print(yf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Puissance (base,exposant)="), Serial.print(zf,4), Serial.println(""); // affiche resultat float - 4 décimales affichées Serial.println("");// saut de ligne
10. Mise en oeuvre du programme
10.1 Préparation du montage et programmation de la carte Arduino :
- Commencer par réaliser le montage indiqué sur plaque d’expérimentation
- Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procédure habituelle
10.2 Préparation du Terminal côté PC dans le logiciel Arduino
- Côté PC, il faut ouvrir la fenêtre terminal de l’IDE Arduino : pour ce faire, un simple clic sur le bouton « Sérial Monitor ».

- La fenêtre « Terminal » s’ouvre alors :

- Il faut alors régler le débit de communication sur la même valeur que celle utilisée par le programme avec lequel nous allons programmer la carte Arduino :

10.3 Fonctionnement
- Une fois le programme programmé dans la carte Arduino, le texte doit s’afficher dans la fenêtre Terminal :

10.4 Vérifications des résultats avec Scilab
On vérifie le résultat fourni par la carte Arduino avec le résultat fourni par le logiciel de calcul opensource Scilab.
Pour le premier calcul, Scilab nous donne :

Arduino calcule donc le sinus avec une précision d’au moins 4 décimales.
Pour le second calcul, Scilab nous confirme le calcul correct réalisé par Arduino :

Pour le troisième calcul, Scilab donne encore raison à Arduino :

Pour le quatrième calcul, Scilab confirme une fois de plus le résultat Arduino :

11. Le programme complet en langage Arduino :
A copier/coller directement dans l’éditeur Arduino
// --- Programme Arduino --- // par X. HINAULT - 01/2010 // www.mon-club-elec.fr // --- Que fait ce programme ? --- /* Affiche des résultats de fonctions mathématiques dans le Terminal côté PC*/ // --- Fonctionnalités utilisées --- // Utilise la connexion série vers le PC // --- Circuit à réaliser --- // Connexion série entre la carte Arduino et le PC (utilise les broches 0 et 1) //**************** Entête déclarative ******* // A ce niveau sont déclarées les librairies, les constantes, les variables... // --- Inclusion des librairies utilisées --- // --- Déclaration des constantes --- // --- constantes des broches --- // --- Déclaration des variables globales --- float xf=0.0, yf=0.0, zf=0.0; // variables float pour calculs // --- Initialisation des fonctionnalités utilisées --- //**************** FONCTION SETUP = Code d'initialisation ***** // La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme void setup() { // debut de la fonction setup() // --- ici instructions à exécuter au démarrage --- Serial.begin(115200); // initialise connexion série à 115200 bauds // IMPORTANT : régler le terminal côté PC avec la même valeur de transmission } // fin de la fonction setup() // ******************************************************************************** //*************** FONCTION LOOP = Boucle sans fin = coeur du programme ************* // la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension void loop(){ // debut de la fonction loop() // --- ici instructions à exécuter par le programme principal --- Serial.println("***** Affichage de resultat de fonctions mathematiques *****"); // affiche texte Serial.println(""); // saut de ligne // fonction sinus xf=8.59; // valeur en radians yf=sin(xf); // calcul du sinus Serial.println("** Fonction Sinus **"); // affiche texte Serial.print("Valeur="), Serial.print(xf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Sinus (valeur)="), Serial.print(yf,4), Serial.println(""); // affiche resultat float - 4 décimales affichées Serial.println("");// saut de ligne delay (2000); // fonction cosinus xf=40.56; // valeur en radians yf=cos(xf); // calcul du cosinus Serial.println("** Fonction Cosinus **"); // affiche texte Serial.print("Valeur="), Serial.print(xf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Cosinus (valeur)="), Serial.print(yf,4), Serial.println(""); // affiche resultat float - 4 décimales affichées Serial.println("");// saut de ligne delay (2000); // fonction racine carrée xf=49.00; // valeur yf=sqrt(xf); // calcul de la racine carrée Serial.println("** Fonction Racine Carree **"); // affiche texte Serial.print("Valeur="), Serial.print(xf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Racine Carree (valeur)="), Serial.print(yf,4), Serial.println(""); // affiche resultat float - 4 décimales affichées Serial.println("");// saut de ligne delay (2000); // fonction puissance xf=10.0; // valeur de la base yf=5.0; // valeur de l'exposant zf=pow(xf,yf); // calcul du sinus Serial.println("** Fonction Puissance (base,exposant) **"); // affiche texte Serial.print("Base="), Serial.print(xf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Exposant="), Serial.print(yf,4), Serial.println(""); // affiche valeur float - 4 décimales affichées Serial.print("Puissance (base,exposant)="), Serial.print(zf,4), Serial.println(""); // affiche resultat float - 4 décimales affichées Serial.println("");// saut de ligne //delay (10000); while(1); // stoppe le programme } // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin // ******************************************************************************** // --- Fin programme ---
Articles similaires:
- Test de l’affichage des float avec Serial.print
- Afficher du texte dans la fenêtre Terminal du PC
- Test de la fonction math pow()
- Afficher des nombres dans la fenêtre Terminal du PC
- http://web.archive.org/web/20210804223007/http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ATELIERSSerieAfficheMessageTerminal
Articles Liés
- Recevoir une valeur numérique entière saisie dans la fenêtre du Terminal Série
Lorsque vous travaillez avec des systèmes embarqués, il est souvent nécessaire de recevoir des données…
- Afficher le résultat brut d'une conversion analogique-numérique dans la fenêtre Terminal du PC
L'affichage du résultat brut d'une conversion analogique-numérique dans la fenêtre Terminal du PC est une…
- "Symbiose numérique" Arduino / PC
L'utilisation d'Arduino et de PC est devenue une pratique courante pour les développeurs et les…