View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Afficher des nombres dans la fenêtre Terminal du PC

ARDUINO - INITIATION - SERIE
Par X. HINAULT - Créé le 18/08/2010

1.  Présentation

Ce programme montre comment afficher des nombres entiers sous différents formats dans la fenêtre Terminal du PC ainsi que des nombres à virgule. Cette fonctionnalité sera très utile pour visualiser des résultats de calculs réalisés par la carte Arduino et montre au passage la simplicité de mise en oeuvre du système.

Ce programme utilise les fonctionnalités suivantes :

  • la connexion série vers le PC

Ce programme repose en grande partie sur l'instruction print de la librairie dédiée à la communication série.

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 :

Rien à déclarer

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 ( ) :


Serial.println ("*** Affichage valeurs entieres ***");

i=65535;
Serial.print("i = "), Serial.print(i), Serial.println(" en decimal");
Serial.print("i = "), Serial.print(i,HEX), Serial.println(" en Hexadecimal");
Serial.print("i = "), Serial.print(i,BIN), Serial.println(" en Binaire");
Serial.println();
delay(3000);

i=0xF0F0; // expression en hexadécimal
Serial.print("i = "), Serial.print(i), Serial.println(" en decimal");
Serial.print("i = "), Serial.print(i,HEX), Serial.println(" en Hexadecimal");
Serial.print("i = "), Serial.print(i,BIN), Serial.println(" en Binaire");
Serial.println();
delay(3000);

i=B10101010; // expression en binaire - 8 bits maximum
Serial.print("i = "), Serial.print(i), Serial.println(" en decimal");
Serial.print("i = "), Serial.print(i,HEX), Serial.println(" en Hexadecimal");
Serial.print("i = "), Serial.print(i,BIN), Serial.println(" en Binaire");
Serial.println();
delay(3000);

Serial.println ("*** Affichage valeurs a virgule ***");

xf=8456.2569;
Serial.print("xf = "), Serial.print(xf), Serial.println(" en decimal");

xf=3.14159;
Serial.print("pi = "), Serial.print(xf), Serial.println(" en decimal");

Serial.println();

delay(10000);

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 :

11.  Le programme complet en langage Arduino :

A copier/coller directement dans l'éditeur Arduino


// --- Programme Arduino ---
// par X. HINAULT - 08/2010 
// www.mon-club-elec.fr 

// --- Que fait ce programme ? ---
/* Affiche des nombres entiers sous différents formats et des nombres à virgule sur le 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 ---
long i=0; // variable entière
float xf=0.0; // variable à virgule 

// --- 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 valeurs entieres ***");

i=65535;
Serial.print("i = "), Serial.print(i), Serial.println(" en decimal");
Serial.print("i = "), Serial.print(i,HEX), Serial.println(" en Hexadecimal");
Serial.print("i = "), Serial.print(i,BIN), Serial.println(" en Binaire");
Serial.println();
delay(3000);

i=0xF0F0; // expression en hexadécimal
Serial.print("i = "), Serial.print(i), Serial.println(" en decimal");
Serial.print("i = "), Serial.print(i,HEX), Serial.println(" en Hexadecimal");
Serial.print("i = "), Serial.print(i,BIN), Serial.println(" en Binaire");
Serial.println();
delay(3000);

i=B10101010; // expression en binaire - 8 bits maximum
Serial.print("i = "), Serial.print(i), Serial.println(" en decimal");
Serial.print("i = "), Serial.print(i,HEX), Serial.println(" en Hexadecimal");
Serial.print("i = "), Serial.print(i,BIN), Serial.println(" en Binaire");
Serial.println();
delay(3000);

Serial.println ("*** Affichage valeurs a virgule ***");

xf=8456.2569;
Serial.print("xf = "), Serial.print(xf), Serial.println(" en decimal");

xf=3.14159;
Serial.print("pi = "), Serial.print(xf), Serial.println(" en decimal");

Serial.println();

delay(10000);


} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

// --- Fin programme ---