Régulation de température d'une cuve
Régulation de température d’d'une cuve
Informations
Noms et Prénoms :
SEJDI Linda (linda.sejdi@etu.sorbonne-universite.fr)
SOSA VERGAS Luis Angel (la.sosa.vergas@gmail.com)
THAVARAJAH Roshani (roshani.thavarajah@etu.sorbonne-universite.fr)
VASANTHAN Luxcheni (luxcheni.vasanthan@etu.sorbonne-universite.fr)fr)
Période : Lundi 7 octobreOctobre 2024 –- Janvier 2025
CursusCursur : Master 2 Chimie parcours Ingénierie Chimique
Tuteur : PULPYTEL Jerome (jerome.pulpytel@sorbonne-universite.fr)fr)
Contexte
Ce projet, réalisé dans le cadre de l’l'UE 803 "Optimisation et Contrôle des Procédés,s", porte sur la régulation et l’l'automatisation de la température d’d'une cuve contenant un liquide. Ce projet vise à développer des compétences pratiques en régulation, automatisation et intégration électronique.
Objectif
Objectifs
L’L'objectif de ce projet est de concevoir et de réaliser un système automatisé de régulation de température pour d'une cuve. Il s’s'appuie sur une carte Arduino, un module de Peltier, une sonde de température et un circuit électronique intégrant un écran LCD, une LED et un buzzer. Ces éléments permettent de mesurer, d’d'afficher en temps réel et de réguler automatiquement la température pour atteindre une consigne définie par l’l'utilisateur. Le système devra être capable d’d'assurer les fonctions suivantes :
Imposer une température cible
La température cible est fixée dans le code Arduino au démarrage. Cette consigne initiale sert de référence pour la régulation.
Afficher en temps réel
La température mesurée par une sonde immergée dans la cuve est affichée en temps réel sur un écran LCD. Cela permet une visualisation claire de l’l'évolution de la température.
Réguler via le module de Peltier
Le module de Peltier est chargé de chauffer ou de refroidir la cuve pour maintenir la température souhaitée.
Une LED RGB indique visuellement l’l'état de la régulation. Suivant la couleur on a des informations sur l’l'état de la régulation/température.
Rouge
dans le cas oùsi la température est inférieure à laconsigne.Bleue
dans le cas oùsi la température est supérieure à laconsigne.Vert
dans le cas oùsi la température correspond à laconsigne.
Dans ce dernier cas, un buzzer retentit comme confirmation sonore.
L’écran LCD continue d’afficher les variations jusqu’à ce que la consigne soit atteinte.
Ajuster dynamiquement la température cible
Deux boutons poussoirs permettent à l’l'utilisateur de modifier la température cible en l’l'augmentant ou en la diminuant.
L’L'écran LCD met immédiatement à jour la nouvelle consigne et le système reprend sa régulation jusqu’jusqu'à ce que la nouvelle température cible soit atteinte.
Ajouter au moins une image de votre projet
Matériels riel
Cuve1enplancheAluminiumde CP peuplier 3mm (dimensions 300*600mm)Pompescotch decirculationpeintreSupportcollepouràla CuveboisPince en CcutterModule PeltierPâte thermiqueSonde DS1 (capteurpapier detempérature)verre TransistorgrainNMOSmoyen (IRF540N ou similaire)Alimentation externe de 12V (adaptateur secteur ou batterie)Carte Arduino UNOCâble USB pour ArduinoLED RGBÉcran LCD 16x2BuzzerBouton poussoirPlatine d’essaiFils de Connexion (10 fils mâle-mâle, 10 fils mâle-femelle, 10 fils femelle-femelle)MultimètreFer à souder et étain80-100)
Machines utilisées
ConnexionsTrotec Speedy 100
Construction
Module(Fichiers, Peltierphotos, :code, explications, paramètres d'usinage, photos, captures d'écran...)
Pôle + : Alimentation externe
Pôle - : Source du transistor
Sonde DS1 :
VCC : Alimentation 5V
GND : GND
Signal : Broche D2 de l’Arduino
Résistance de 4,7 kΩ en série avec le signal
Transistor NMOS (IRF540N ou similaire) :
Source : À GND
Drain : Circuit du module Peltier
Gate : À la broche D12 de l’Arduino
Drain relié à une borne du module Peltier, l’autre borne reliée au +12V de l'alimentation externe
Résistance de 220 Ω entre la Gate et la sortie D12
LED RGB :
Cathode : Commune à GND
Broches rouge, verte et bleue : Connectées respectivement à D10, D9, et D8 de l'Arduino, via des résistances de 220 Ω
Écran LCD 16x2 :
SCL : Broche A5 de l'Arduino
SDA : Broche A4 de l'Arduino
VCC : Connecté à +5V de l'Arduino
GND : Connecté à GND de l'Arduino
Buzzer :
Buzzer : Connecté à la broche D13 de l'Arduino
Résistance de 100 Ω en série avec le buzzer
Bouton poussoir :
Une broche : Connectée à +5V
Résistance de pull-down de 10 kΩ entre la broche et GND
Construction
(Schéma, étapes clés, code)Figure 1 : Schéma manuel du système de régulation de température avec Arduino et module de Peltier
Etapes clés
Étape 1
: Conception et préparationLa première étape consiste à bien comprendre le sujet et à établir une liste détaillée des composants nécessaires. Cette phase inclut également l'organisation des tâches au sein de l’équipe, chaque membre se voyant attribuer des responsabilités spécifiques.
----
Étape 2
: Montage et assemblageLa deuxième étape implique la réception du matériel et l'assemblage des composants. L'équipe installe le kit de refroidissement Peltier sur la cuve et relie tous les éléments électroniques sur une platine d'essai.
----
Étape 3
: Programmation et testLa troisième étape est dédiée au développement du code pour l’Arduino UNO, qui contrôle le module Peltier et régule la température de la cuve. Le programme inclut l’implémentation d’un régulateur PID pour assurer un contrôle précis de la température.
----
Programme Arduino
#include <Wire.h> // Pour la communication I2C
#include <LiquidCrystal_I2C.h> // Pour l'écran LCD I2C
#include <OneWire.h> // Pour la communication avec le capteur DS18B20
#include <DallasTemperature.h> // Pour lire la température du capteur DS18B20
// Définition des broches
#define ONE_WIRE_BUS 2 // Broche pour le capteur DS18B20
#define BTN_UP_PIN 3 // Bouton poussoir pour augmenter la température de consigne
#define BTN_DOWN_PIN 4 // Bouton poussoir pour diminuer la température de consigne
#define LED_R_PIN 10 // Broche pour la LED RGB rouge
#define LED_G_PIN 9 // Broche pour la LED RGB verte
#define LED_B_PIN 8 // Broche pour la LED RGB bleue
#define MOTOR_PIN 12 // Broche pour contrôler le module Peltier
#define BUZZER_PIN 13 // Broche pour le buzzer
LiquidCrystal_I2C lcd(0x27, 16, 2); // Initialisation de l'écran LCD I2C (adresse: 0x27)
OneWire oneWire(ONE_WIRE_BUS); // Initialisation de la communication OneWire
DallasTemperature sensors(&oneWire); // Initialisation du capteur DS18B20
int targetTemp = 27; // Température cible initiale
float currentTemp;
void setup() {
// Initialisation de l'écran LCD I2C
lcd.begin();
lcd.backlight(); // Activer le rétroéclairage
// Afficher un message d'accueil
lcd.setCursor(0, 0);
lcd.print("Regulation Temp");
delay(2000);
lcd.clear();
// Configuration des broches
pinMode(BTN_UP_PIN, INPUT_PULLUP);
pinMode(BTN_DOWN_PIN, INPUT_PULLUP);
pinMode(LED_R_PIN, OUTPUT);
pinMode(LED_G_PIN, OUTPUT);
pinMode(LED_B_PIN, OUTPUT);
pinMode(MOTOR_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
// Initialisation du capteur de température
sensors.begin();
}
void loop() {
// Lire la température actuelle du DS18B20
sensors.requestTemperatures(); // Demande de mise à jour de la température
currentTemp = sensors.getTempCByIndex(0); // Obtenir la température en Celsius
// Afficher la température actuelle sur l'écran LCD
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(currentTemp);
lcd.print(" C "); // Espaces pour effacer les caractères restants
// Gestion des boutons poussoirs pour ajuster la température cible
if (digitalRead(BTN_UP_PIN) == LOW) {
targetTemp++;
delay(200); // Anti-rebond
}
if (digitalRead(BTN_DOWN_PIN) == LOW) {
targetTemp--;
delay(200); // Anti-rebond
}
// Afficher la température cible sur la deuxième ligne de l'écran LCD
lcd.setCursor(0, 1);
lcd.print("Cible: ");
lcd.print(targetTemp);
lcd.print(" C ");
// Gestion du module Peltier et des LEDs en fonction de la température
if (currentTemp < targetTemp) {
digitalWrite(MOTOR_PIN, HIGH); // Active le module Peltier
digitalWrite(LED_R_PIN, HIGH); // Allumer la LED rouge
digitalWrite(LED_G_PIN, LOW);
digitalWrite(LED_B_PIN, LOW);
digitalWrite(BUZZER_PIN, LOW); // Ne pas activer le buzzer
} else if (currentTemp > targetTemp) {
digitalWrite(MOTOR_PIN, LOW); // Désactive le module Peltier
digitalWrite(LED_R_PIN, LOW);
digitalWrite(LED_G_PIN, LOW);
digitalWrite(LED_B_PIN, HIGH); // Allumer la LED bleue (température dépassée)
digitalWrite(BUZZER_PIN, LOW); // Ne pas activer le buzzer
} else {
digitalWrite(MOTOR_PIN, LOW); // Désactive le module Peltier
digitalWrite(LED_R_PIN, LOW);
digitalWrite(LED_G_PIN, HIGH); // Allumer la LED verte (température atteinte)
digitalWrite(LED_B_PIN, LOW);
digitalWrite(BUZZER_PIN, HIGH); // Activer le buzzer
delay(1000); // Sonner une seconde
digitalWrite(BUZZER_PIN, LOW); // Éteindre le buzzer
}
delay(500); // Pause pour stabiliser les lectures et les réactions
}
Journal de
Bord
Lundi 7 octobre 2024
AttributionAvancée du projetde régulation de la température dans une cuve.Réflexion sur la méthode de régulationàutiliserchaque étape, difficultés rencontrées, modifications etpriseadaptationsde contact avec le groupe(facultatif pourorganiserleslapetitspremière réunion.projets)
03/04/2022
VendrediDuis 11tincidunt octobremattis 2024
- Aenean
- posuere
tellusPremièresapienréunionaentremetuslesconsectetur,membresutdeblanditl’équipe.finibus. - Vivamus
Comparaisonconvallis tincidunt metus, ut fringilla eros gravida nec. Cras dignissim urna etvalidationvestibulumdefeugiat.laPhaselluslistetempor,finalenuncdequismatériel.lobortis volutpat, dolor arcu fermentum elit, in eleifend enim sem fringilla metus. 🚨 Donec quis libero vehicula, varius tortor quis, vehicula libero !!! Cras ultricies tempus ante gravida hendrerit.
11/04/2022
JeudiPhasellus 17in octobrepurus 2024
- justo
- feugiat
velRendez-vousvestibulumavecquislaeututricelacus.pour😎validationEtiamdemaximuslametusliste.massa - pharetra
velRécupérationconvallis.duCurabiturmatériel.nunc - orci.
pellentesqueCommandePraesentdudolormoduledui,delaoreetPeltiernon(prévuemassapournon,mi-novembre).vestibulum - quam.
pulvinar,ProchaineSedétapeposuere,:duiSimulationquissursemperTinkercad.eros
Dimanchecommodo 3elit, novembrenec 2024
- arcu
Deuxième réunion entre les membres de l’équipe.Comparaison des simulations réalisées sur Tinkercad.Demande d’avis au tuteur sur le montageest etle code.purus.
18/04/2022
LorsqueMaecenas nousinterdum avonsturpis présentésit notreamet simulationrutrum àelementum. notreAenean tuteur,eget nousaccumsan luiligula. avons expliqué que nous rencontrions un problème avec les boutons poussoirs qui ne semblaient pas fonctionner. Nous lui avons demandé des remarquesPhasellus et suggestionsscelerisque pourlectus. nousCras aidervel àvenenatis avancer.nulla. EnInteger réponse,tristique ilnon nous a précisé que les boutons fonctionnaient correctement. Lorsqu’on appuie sur le bouton, la tension passe bien de 4,17 V à 0 V. Cependant, il a souligné que le problème venait des fonctions « delay »diam et dumolestie. tempsPellentesque decondimentum simulationenim nonarcu, réel.in Ilcommodo estnunc nécessairecommodo devel. maintenirInteger levitae boutonneque enfoncéfacilisis, pendantmattis environelit 3sit àamet, 4gravida secondesturpis. pourMaecenas quelectus l’incrémentmauris, defringilla températureut soitlectus priseu, encondimentum compte.finibus tortor 🤩🤩🤩
Figure 2 :
Jeudi 7 novembre 2024
Récupération du matériel manquant :
Module de Peltier
Module de Peltier
Transistor MOS
Breadboard
Pâte thermique
Écran LCD
Jeudi 21 novembre 2024
Première réunion au FabLab.Mise en place du montage.Problème de port identifié.