Serial.print et lcd.print

Bonjour,
J’ai un montage Mega2560, capteur de température Dalla DS18B20, afficheur 16x2.
Le programme “fourni avec” :
#include <OneWire.h> // Inclusion de la librairie OneWire
#include <LiquidCrystal.h>
// LCD=======================================================
//initialize the library with the numbers of the interface pins
LiquidCrystal lcd(32, 11, 5, 24, 3, 22);
#define DS18B20 0x28 // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 27 // Broche utilisée pour le bus 1-Wire

OneWire ds(BROCHE_ONEWIRE); // Création de l’objet OneWire ds

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d’erreur
boolean getTemperature(float *temp){
byte data[9], addr[8];
// data : Données lues depuis le scratchpad
// addr : adresse du module 1-Wire détecté

if (!ds.search(addr)) { // Recherche un module 1-Wire
ds.reset_search(); // Réinitialise la recherche de module
return false; // Retourne une erreur
}

if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l’adresse a été correctement reçue
return false; // Si le message est corrompu on retourne une erreur

if (addr[0] != DS18B20) // Vérifie qu’il s’agit bien d’un DS18B20
return false; // Si ce n’est pas le cas on retourne une erreur

ds.reset(); // On reset le bus 1-Wire
ds.select(addr); // On sélectionne le DS18B20

ds.write(0x44, 1); // On lance une prise de mesure de température
delay(800); // Et on attend la fin de la mesure

ds.reset(); // On reset le bus 1-Wire
ds.select(addr); // On sélectionne le DS18B20
ds.write(0xBE); // On envoie une demande de lecture du scratchpad

for (byte i = 0; i < 9; i++) // On lit le scratchpad
data = ds.read(); // Et on stock les octets reçus

  • // Calcul de la température en degré Celsius*
    _ *temp = ((data[1] << 8) | data[0]) * 0.0625;_

  • // Pas d’erreur*

  • return true;*
    }

// setup()
void setup() {

  • Serial.begin(9600); // Initialisation du port série*

  • // set up the LCD’s number of columns and rows:*

  • lcd.begin(16, 2);*

  • // lcd.print(“Temp Eau”);*
    }

// loop()
void loop() {

  • float temp;*

  • // Lit la température ambiante à ~1Hz*

  • if(getTemperature(&temp)) {*

  • // Affiche la température*

  • Serial.print("Temperature : ");*

  • Serial.print(temp);*

  • Serial.write(176); // caractère °*

  • Serial.write(‘C’);*

  • Serial.println();*

  • // set the cursor to column 0, line 1*

  • // (note: line 1 is the second row, since counting begins with 0):*

  • lcd.setCursor(0, 1);*

  • // print the température:*

  • lcd.print(temp eau);*

  • lcd.print(" deg C");*

  • }*
    }
    A la fin, la partie Serial.blablabla est innopérente.
    La partie lcd fonctionne.
    Quelle différence entre Serial.print et lcd.print ?
    Celà devrait être la même chose, non ?
    Merci à vous.

Bonjour,

Comme leur nom l'indique Serial.print envoie sur le port série du micro et lcd.print envoie au lcd

Pour voir ce qui est envoyé sur le port série, tu dois ouvrir le moniteur série dans l'ide arduino (en haut à droite)

Hooo merci.