Le vendredi 12 avril 2019
Une soirée où nous nous sommes retrouvés à huit (André, Clément, Daniel, Eric, Jean-Pierre, Michel, Olivier, Pascal
Sans oublier la présence de Patrick qui m’a aidé à résoudre quelques soucis.
Mesure d’une tension sur une entrée analogique
Pour exécuter cet exercice, il est utile de préparer un potentiomètre de 10 K, en y soudant un fil munit d’une pine mâle, sur les trois contacts
Les contacts extérieures seront respectivement connectés au “+5V” et au “GND”
Le contact central du potentiomètre sera connecté sur l’entrée/sortie “A1”
//***************************************
//* *
//* Initiation à Arduino par l’exemple *
//* *
//* Par Stievenart Freddy ON6FS *
//* Version 1.0 – 13/03/2019 *
//* *
//***************************************
//* *
//* Exercice 6 *
//* Mesure analogique + *
//* affichage de la valeur sur LCD I2C *
//* *
//***************************************
#include // Inclure la librairie I2C
#include // Inclure la librairie pour écran LCD en I2C
const int potar = A1; //Adresse de l’entrée analogique raccordée au potentiomètre
int valeurLue; //Etiquette pour la valeur numérique lue
float tension; //Etiquelle pour la conversion en tension
LiquidCrystal_I2C lcd(0x27,20,4); // Appel de la librairie
// Détails des paramètres :
// – adresse 0x27 ou 0x3F est a changer en fonction de votre écran LCD
// – Nombre de caractères par ligne de votre écran LCD
// – Nombre de lignes de votre écran LCD
// Les 2 types les plus courrant sont 2 lignes de 16 caractères et
// 4 lignes de 20 caractères
void setup()
{
// on se contente de démarrer la liaison série
//Serial.begin(9600);
lcd.init(); // Initialisation du LCD
lcd.backlight(); // Démarrage de l’éclairage du LCD
}
void loop()
{
// on convertit en nombre binaire la tension lue en sortie du potentiomètre
valeurLue = analogRead(potar);
// on traduit la valeur brute en tension (produit en croix)
tension = valeurLue * 5.0 / 1023;
// on affiche la valeur lue sur la liaison série
lcd.clear();
lcd.setCursor(0,1); // Position du curseur (position sur la ligne [1])
lcd.print(“Valeur lue = “);
lcd.print(valeurLue);
// on affiche la tension calculée
lcd.setCursor(0,2); // Position du curseur (position sur la ligne [2])
lcd.print(“Tension = “);
lcd.print(tension,2);
lcd.print(” V”);
// on attend une demi-seconde pour que l’affichage ne soit pas trop rapide
delay(500);
}
Mesure de température et d’humidité avec le composant DHT22
Vous avez besoin de 2 librairies :
Une fois téléchargé cette librairie, vous devrez l’installer dans l’IDE.
ATTENTION : La librairie devra rester en .zip !!!!
Il faut maintenant câbler votre composant DHT22 de la manière suivante :

//***************************************
//* *
//* Initiation à Arduino par l’exemple *
//* *
//* Par Stievenart Freddy ON6FS *
//* Version 1.0 – 09/04/2019 *
//* *
//***************************************
//* *
//* Exercice 7 *
//* Mesure de température et *
//* d’humidité *
//* *
//***************************************
// Written by ladyada, public domain
// Les librairies Arduino suivantes sont REQUISES :
// – DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// – Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor
#include “DHT.h”
#define DHTPIN 2 // Le DHT senseur est connecté à la pin 2
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// Connecter la pin 1 (côté gauche) du senseur au +3.3 V
// Connecter la pin 2 du senseur du senseur à la pin assignée à DHTPIN
// Connecter la pin 4 (côté droit) du senseur to GROUND
// Connecter une résistance de 10K entre la pin 2 (data) et pin 1 (alim) du senseur
// Initiation du senseur DHT.
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F(“DHTxx test!”));
dht.begin();
}
void loop() {
// Attente de 2 secondes entre les mesures.
delay(2000);
// Lecture de la température ou d’humidité prend 250 milliseconds!
// Les lectures de détecteur peuvent aussi être de l’ordre de 2 secondes (C’est un senseur très lent !)
float h = dht.readHumidity();
// Lecture de la temperature en degré Celsius (Par défaut)
float t = dht.readTemperature();
// Lecture de la temperature en degré Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// On vérifie si des lectures ont échoué, avec sortie (Pour essayer de nouvelles lectures).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F(“Echec de lecture du sensor DHT !”));
return;
}
// Calcul de l’indice de température en Fahrenheit (par défaut)
float hif = dht.computeHeatIndex(f, h);
// Calcul de l’indice de température en Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F(“Humidité: “));
Serial.print(h);
Serial.print(F(“% Température: “));
Serial.print(t);
Serial.print(F(“°C “));
Serial.print(f);
Serial.print(F(“°F Indice de température : “));
Serial.print(hic);
Serial.print(F(“°C “));
Serial.print(hif);
Serial.println(F(“°F”));
}