Arduino - Afficher une température sur un LCD
Installer et configurer le LCD1602 - I2C
Arduino - Afficheur LCD1602 - I2C
J'utilise pour la température les matériels ci-dessous
Un capteur LM35
Une sonde DS18B20
le schéma avec le capteur lm35
Connecter le LCD1602 - I2C et le capteur LM35 à l'Arduino Uno suivant le schéma ci-contre
Cablage LCD
- Gnd au Gnd
 - Vcc au +5v
 - SDA sur la broche 18 - A4
 - SCL sur la broche 19 - A5
 
Cablage LM35
- Vcc au +5v
 - Out sur la broche 14 - A0
 - Gnd au Gnd
 
.
Un condensateur céramic de 100nF est recommandé entre le +5v et le Gnd
Afficher la température - capteur LM35 - Lcd1602-I2c
Régle de calcul de la température avec le capteur LM35
Température LM35 ou LM335 
Transformer le résultat de la mesure en un nombre à virgule (type float) en faisant un simple produit en croix.
- 5V = 5000mV = 1023
 - en sortie analogRead() 10mV = 1°C
 - température = valeur_mesurée * (5.0 / 1023.0 * 100.0)
 
Le code
/*
 Temperature LM35 ou LM335
 Transformer le résultat de la mesure en un nombre à virgule (type float)
 en faisant un simple produit en croix.
 5V = 5000mV = 1023 
 en sortie analogRead(), 10mV = 1°C
 température = valeur_mesurée * (5.0 / 1023.0 * 100.0)
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Definition des variables
int tempPin = 0;  // Broche A0
float valBrute;   // Valeur brute sur A0
float valTemp;    // Temperature
LiquidCrystal_I2C lcd(0x27,16,2);  // LCD1602 I2C 0x27 
void setup()
{
  lcd.init();   // Initialisation du LCD 
 }
void loop()
{ 
  // Mesure la tension sur la broche A0
  float valBrute = analogRead(tempPin);
  // Calcul de la température en degré Celcius
  float valTemp = valBrute * (5.0/1023.0 *100.0);
  // Affichage sur LCD.
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Temperature : ");
  lcd.setCursor(1,1);
  lcd.print(valTemp);
  lcd.setCursor(6,1);
  lcd.print(" Celcius");
  delay(1000);
}
Le schéma avec une sonde DS18B20
Connecter le LCD1602 - I2C et la sonde DS18B20 à l'Arduino Uno suivant le schéma ci-contre
Cablage LCD
- Gnd au Gnd
 - Vcc au +5v
 - SDA sur la broche 18 - A4
 - SCL sur la broche 19 - A5
 
Cablage DS18B20
- Vcc au +5v
 - Data sur la broche 8 - Digital 8
 - Gnd au Gnd
 
.
Ne pas oublier la résistance de 4700 Ohms entre +5V et le fils Data de la sonde DS18B20
Afficher la température - sonde DS18B20 - lcd1602-I2c
Nous installons des bibliothéques
- One Wire de Jim Sdudt
 - Dallas Température de Miles Burton
 
Dans l'Arduino IDE, cliquer sur
- Croquis
 - Inclure une bibliothèque
 - Gérer les bibliothéques [Ctrl]+[Maj]+[i]
 
Dans la fenêtre "Gestionnaire de bibliothèques"
Rechercher "One Wire" de Jim Studt et "Dallas Temperature" de Miles Burton
Une fois trouver, cliquer sur [Installer] pour chaques bibliothèques
Le code
/* 
  Température DS18B20 - LCD 1602 - I2C
 */
#include <Wire.h>                         // Librairie I2C  
#include <LiquidCrystal_I2C.h>     // Librairie Lcd1602 I2C
#include <OneWire.h>                   // Librairie OneWire bus 
#include <DallasTemperature.h>  // Librairie DS18B20 temperature
#define ONE_WIRE_BUS 8             //DS18B20 broche 8
OneWire oneWire(ONE_WIRE_BUS);         // Instance oneWire pour communiquer avec tous les appareils OneWire
DallasTemperature sensors(&oneWire);  // Transfert de OneWire à DallasTemperature
LiquidCrystal_I2C lcd(0x27,16,2);             // LCD1602 adresse 0x27 16 colonnes 2 lignes
void setup()
{
  lcd.init();
  lcd.backlight();       //Turns backlight on
  sensors.begin();
}
void loop()
{  
  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);  // Lecture DS18B20
  lcd.setCursor (0, 0 );                    // Affichage
  lcd.print("Temperature : ");
  lcd.setCursor(1,1);
  lcd.print(temp);
  lcd.setCursor(6,1);
  lcd.print(" Celcius");
  delay(100);                               // Tempo 0.1 sec
}










