• Post category:Serial
  • Post comments:0 commentaire
  • Post last modified:mars 11, 2022
  • Temps de lecture :5 min de lecture

Serial.print()

Description :

Imprime les données sur le port série sous forme de texte ASCII lisible par l’homme. Cette commande peut prendre plusieurs formes. Les nombres sont imprimés en utilisant un caractère ASCII pour chaque chiffre. Les flottants sont également imprimés sous forme de chiffres ASCII, par défaut à deux décimales. Les octets sont envoyés sous la forme d’un seul caractère. Les caractères et les chaînes sont envoyés tels quels. Par example-

  • Serial.print(78) donne « 78 »
  • Serial.print(1.23456) donne « 1,23 »
  • Serial.print('N') donne « N »
  • Serial.print("Bonjour tout le monde") donne « Bonjour tout le monde. »

Un deuxième paramètre facultatif spécifie la base (format) à utiliser ; les valeurs autorisées sont BIN(binary, or base 2)OCT(octal, or base 8)DEC(decimal, or base 10)HEX(hexadecimal, or base 16) .

Pour les nombres à virgule flottante, ce paramètre spécifie le nombre de décimales à utiliser. Par example-

  • Serial.print(78, BIN) donne « 1001110 »
  • Serial.print(78, OCT) donne « 116 »
  • Serial.print(78, DEC) donne « 78 »
  • Serial.print(78, HEX) donne « 4E »
  • Serial.print(1.23456, 0) donne « 1 »
  • Serial.print(1.23456, 2) donne « 1,23 »
  • Serial.print(1.23456, 4) donne « 1.2345 »

Vous pouvez passer des chaînes basées sur la mémoire flash Serial.print() en les enveloppant avec F() . Par example:

Serial.print(F("Hello World"))

Pour envoyer des données sans conversion en leur représentation sous forme de caractères, utilisez Serial.write() .

Syntaxe :

Serial.print(val)
Serial.print(val, format)

Paramètres :

Serial : objet port série. Consultez la liste des ports série disponibles pour chaque carte sur la page principale Serial .
val : la valeur à imprimer. Types de données autorisés : tout type de données.

Retour :

print() renvoie le nombre d’octets écrits, bien que la lecture de ce nombre soit facultative. Type de données : size_t .

Exemple de code :

/*
  Utilise une boucle for pour imprimer des nombres dans divers formats.
*/
void setup() {
  Serial.begin(9600); // ouvrez le port série à 9600 bps :
}

void loop() {
  // print labels
  Serial.print("NO FORMAT");  // imprime une étiquette
  Serial.print("\t");         // imprime un onglet

  Serial.print("DEC");
  Serial.print("\t");

  Serial.print("HEX");
  Serial.print("\t");

  Serial.print("OCT");
  Serial.print("\t");

  Serial.print("BIN");
  Serial.println();        // retour chariot après la dernière étiquette

  for (int x = 0; x < 64; x++) { // seulement une partie de la carte ASCII, changez en fonction
    // l'imprimer dans de nombreux formats:
    Serial.print(x);       // imprimer sous forme de nombre décimal codé en ASCII - identique à "DEC"
    Serial.print("\t\t");  // imprime deux onglets pour s'adapter à la longueur de l'étiquette

    Serial.print(x, DEC);  // imprimer sous forme de nombre décimal codé en ASCII
    Serial.print("\t");    // imprime un onglet

    Serial.print(x, HEX);  // imprimer en hexadécimal codé en ASCII
    Serial.print("\t");    // imprime un onglet

    Serial.print(x, OCT);  // imprimer en octal codé en ASCII
    Serial.print("\t");    // imprime un onglet

    Serial.println(x, BIN);  // imprimer sous forme de binaire codé en ASCII
    // puis ajoute le retour chariot avec "println"
    delay(200);            // retard 200 millisecondes
  }
  Serial.println();        // imprime un autre retour chariot
}

 

Remarques et avertissements

Pour plus d’informations sur l’asyncronicité de Serial.print() , consultez la section Notes et avertissements de la page de référence Serial.write() .

 


 

Source : https://www.arduino.cc/reference/en/language/functions/communication/serial/print/

 

Laisser un commentaire