Initiation Arduino (4ème séance)
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 »
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
//*************************************** //* * //* 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 <Wire.h> // Inclure la librairie I2C #include <LiquidCrystal_I2C.h> // 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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
//*************************************** //* * //* 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")); } |