Arduino - Afficher une température sur un LCD

ic2-repere


Installer et configurer le LCD1602 - I2C

Arduino - Afficheur LCD1602 - I2C


J'utilise pour la température les matériels ci-dessous

Un capteur LM35

Le capteur de température LM35 est un capteur analogique de température
Le capteur LM35 supporte des températures de -55°C/+150°C (Mais pas l'Arduino)


Une sonde DS18B20

La sonde de température DS18B20 est une sonde digitale de température
La sonde de température DS18B20 supporte des températures de -55°C/+125°C (Mais pas l'Arduino)



le schéma avec le capteur lm35

  • arduino-lcd-lm35-temp
  • 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

  • lm35-temperature-code
  • lm35-temperature


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 floaten 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

  • arduino-lcd-ds18b20
  • 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

  • onewire
  • dallas temperature
  • arduino-lcd-ds18b20-code
  • arduino-lcd-ds18b20


Nous installons des bibliothéques

  • One Wire de Jim Sdudt
  • Dallas Température de Miles Burton
La bibliothèque wire est déjà présente


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
}



Personnaliser

Google Analytics

Google Analytics est un service utilisé sur notre site Web qui permet de suivre, de signaler le trafic et de mesurer la manière dont les utilisateurs interagissent avec le contenu de notre site Web afin de l’améliorer et de fournir de meilleurs services.

Facebook

Notre site Web vous permet d’aimer ou de partager son contenu sur le réseau social Facebook. En l'utilisant, vous acceptez les règles de confidentialité de Facebook: https://www.facebook.com/policy/cookies/

Twitter

Les tweets intégrés et les services de partage de Twitter sont utilisés sur notre site Web. En activant et utilisant ceux-ci, vous acceptez la politique de confidentialité de Twitter: https://help.twitter.com/fr/rules-and-policies/twitter-cookies