Arduino – Capteur de température + LCD

DevFrançaisTutorials

On part sur la base du post précédent http://blog.quidquid.fr/fr/2010/11/arduino-capteur-de-temperature/ et on y ajoute :
une platine labdec 400 points (breadboard)
un afficheur LCD
– un potentiomètre (fourni avec l’écran LCD)
– une pile… et son connecteur
Le tout acheté chez oomlout et expédié 30 minutes après la commande, je recommande chaudement ! (pas de sponsoring inside)

L’objectif est d’obtenir sur un écran LCD (luminosité réglable avec un potentiomètre) la température observée à l”endroit où l’on se trouve.

L’API de référence pour utiliser l’écran LCD se trouve ici http://arduino.cc/en/Reference/LiquidCrystal et il est indispensable d’importer les librairies afin d’utiliser cette API.
La librairie se télécharge là : http://arduino.cc/en/uploads/Tutorial/LiquidCrystal.zip

Et un tutoriel très complet se trouve ici : http://www.arduino.cc/en/Tutorial/LCDLibrary

Pour installer la librarie dans Arduini IDE il suffit de dézipper la librairie dans le répertoire
arduino-xxxx/lib/targets/libraries où xxxx est votre numéro de version d’arduino IDE.

Voici le petit schéma de câblage:

Une vue d’en haut :

Le code à transmettre à la carte :

/*
 * WTF Public License
 *
 * The circuit:
 * LCD RS pin -> digital pin 9
 * LCD Enable pin -> digital pin 8
 * LCD D4 pin -> digital pin 13
 * LCD D5 pin -> digital pin 12
 * LCD D6 pin -> digital pin 11
 * LCD D7 pin -> digital pin 10
 * LCD R/W pin -> GND
 * Potentiometre qui fait office de 10K resistor:
 */

#include <math.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(9, 8, 13, 12, 11, 10);

void setup() {
  // On précise le nombre de colonnes et de lignes
  lcd.begin(16, 2);

  // On place le curseur sur la colonne 0 de la premiere ligne
  lcd.home();
  // Afficher la phrase suivante :
  lcd.print("Temperature : ");
}

void loop() {
  // 0 est le port analogique sur lequel est branché mon capteur de température
  int temp = int( getTemp( analogRead( 0 ) ) );

  // On place le curseur sur la colonne 7 (pour afficher la 
  // température environ au milieu) de la seconde ligne
  lcd.setCursor(7, 1);
  // Afficher la temperature en provenance du capteur
  lcd.print(temp);
  // avec un semblant d'unite derriere
  lcd.print(" C");

  // On attend 5 seconde avant de refaire une autre mesure
  delay(5000);
}

double getTemp(int rawData) {
  double temperature = log( ( ( 10240000 / rawData ) - 10000 ) );
  temperature = 1 / (0.001129148 + (0.000234125 * temperature) +
                      (0.0000000876741 * temperature * temperature * temperature));
  // Convert Kelvin to Celcius
  return temperature - 273.15;
}

Il est bien entendu possible d’améliorer ce code en remplaçant :

lcd.setCursor(0, 0);

par

lcd.home()

qui doit faire la même chose.

De plus il est certainement mieux de n’écrire qu’une seule fois “Temperature :” en le faisant dans setup pour ne modifier que la température dans loop.

Pour la prochaine étape nous écrirons les données captées sur une carte microSD…

Previous
Arduino – Capteur de température
Next
Arduino – Capteur de luminosité

Leave a comment

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.