Skip to main content

Réalisation d'une burette automatique (Groupe H)

Réalisation d'une burette automatique par mesure d'intensité optique:

Dans le cadre du module "Optimisation et contrôle des procédés", notre projet, intitulé "Réalisation d'une burette automatique", vise à concevoir un dispositif innovant pour automatiser les opérations de titrage en laboratoire. Ce projet s’inscrit dans une démarche visant à optimiser la précision, l’efficacité et la reproductibilité des expériences chimiques.

Membres du projet 
  • AIT MBAREK Amani, TOUNSI Imene, CECCAROSSI Giuliano, ENNAZI Fadwa, GHERROUZ Mohamed Amine

  • amani.ait_mbarek@etu.sorbonne-universite.fr; Imene.Tounsi@etu.sorbonne-universite.fr;  Giuliano_Rey.Ceccarossi@etu.sorbonne-universite.fr ; Ennazi.fadwa@etu.sorbonne-universite.fr ; Mohamed_amine.GHERROUZ@etu.sorbonne-universite.fr 

  • Projet MU5CI803 : Optimisation et contrôle des procédés (groupe H)

  • Octobre 2024 - Janvier 2025

Contexte

Dans le cadre de l'UE Optimisation et contrôle de procédés, nous devons effectuer la régulation d'un système à l'aide d'une carte Arduino. Pour ce faire, nous devons déterminer le matériel nécessaire ainsi que les branchements et les différents codes qui permettront l'automatisation de notre procédé. 

Objectifs

Notre sujet porte sur la réalisation d'une burette automatique. Pour effectuer la régulation, nous utiliserons un capteur de mesure d'intensité optique et notre actionneur sera un servomoteur; Le but est d'atteindre une couleur définie dans le récipient rempli d'eau.

Matériels nécessaires:
  • Carte Arduino
  • Photorésistance
  • Servomoteur
  • Breadboard
  • Résistances
  • Transistor
  • LED verte et rouge
  • Tuyaux
  • Fils
  • Récipients : verres
  • Robinet
  • Electrovanne 
  • Agitateur (impression 3D)
  • Plaque peuplier 6mm

Mise en situation 

Le titrage est une technique couramment utilisée en laboratoire pour déterminer la concentration d'une solution chimique. Toutefois, les titrages manuels présentent des limites en termes de précision et de reproductibilité, en raison des erreurs humaines et des variations dans la manipulation. C'est dans ce contexte que s'inscrit notre projet visant à concevoir une burette automatique capable de réguler avec précision l'ajout d'un réactif, jusqu'à l'obtention d'une couleur cible dans le récipient de titrage. 

Pour assurer ceci, nous avons choisi de baser notre système sur une approche innovante utilisant une carte Arduino comme unité de contrôle et d'intégrer un capteur d'intensité optique qui permet de détecter précisément le changement de couleur, tandis qu'un servomoteur qui agit en tant qu'actionneur pour ouvrir et fermer une électrovanne, régulant ainsi l’écoulement du réactif. Ensuite le dispositif sera complété par un ensemble d’éléments mécaniques et électroniques à savoir : une breadboard pour les connexions, des tuyaux pour le transfert des liquides, et un agitateur imprimé en 3D pour homogénéiser la solution. 

Ce système vise à offrir une solution automatisée, économique et efficace, adaptée aux besoins des laboratoires pédagogiques ou de recherche.

Journal de bord
Lundi 14/10/2024 : 

Suite à notre première réunion, nous avons examiné deux approches distinctes. La première consiste à détecter le point d'équivalence par un changement de couleur chimique, en utilisant un dosage colorimétrique (oxydoréduction ou acide-base). L'avantage principal de cette méthode réside dans sa simplicité et sa rapidité d'exécution. La seconde approche, quant à elle, repose sur une détection physique de la couleur. Elle implique l'ajout progressif d'une solution colorée dans un récipient initialement rempli d'eau pure. L'ajout se poursuit jusqu'à l'obtention de la concentration finale souhaitée, ce qui se
traduit par une variation de l'intensité lumineuse. Ce paramètre sera mesuré avec précision à l'aide d'un capteur spécifique.
Après une discussion approfondie et une analyse comparative des deux méthodes, nous avons décidé d’opter la seconde approche qui est plus conforme aux instructions imposées dans le sujet. L’image suivante montre le schéma de discussion et brainstorming : 

image.png

Ensuite nous avons fait un schéma qui résumé l’idée que nous avons choisie :

image.png

Lundi 04/11/2024 :

Aujourd'hui, nous avons discuté des approches pratiques pour la réalisation du projet en examinant les matériels disponibles et nécessaires. Nous avons également pris en compte les dimensions spécifiques de chaque élément, comme le volume du récipient destiné au mélange ou le débit du système de pompage à intégrer.

Par ailleurs, nous avons abordé les expériences de dilution à réaliser afin de déterminer des valeurs fixes (consignes), notamment le volume de solution colorée à ajouter, ainsi que les concentrations initiale (C₀) et finale (Cf).

image.pngl33image.png

Lundi 18/11/2024 : 

1) Expérimental design pour trouver la concentration de la solution colorée : Cm 

Pour cela, nous aurons besoin d'une balance analytique et de plusieurs récipients. L'objectif est de déterminer une concentration optimale de colorant qui permette d'obtenir une solution colorée, ni trop foncée ni trop claire. Nous réaliserons plusieurs dilutions en maintenant un volume fixe d'eau, en variant uniquement la masse de colorant ajoutée. La balance analytique sera utilisée pour mesurer avec précision les masses d'eau et de colorant.

En connaissant la masse d'eau et de colorant ajoutée, nous pourrons calculer la concentration de chaque dilution préparée, exprimée en pourcentage massique (%wt). Ensuite, à l'œil nu, nous déterminerons quelle dilution sera la plus adaptée pour notre travail.

Le plan experimental sera montrée à continuation : 

2) Expérimental design pour trouver la volume de solution colorée à ajouter (V)

Pour ce faire, il sera nécessaire de définir au préalable la concentration finale souhaitée. Ensuite, en connaissant la concentration de la solution colorée initiale, nous pourrons calculer le volume à ajouter pour atteindre la concentration finale visée à l'aide de la regle de dilution : 

Vsc*Csc  = Veau * Cf

Vsc = Veau*Cf / Vsc

avec :

  • Vsc = volume solution colorée à ajouter
  • Csc = cconcentration solution colorée à ajouter (calculé précedemment)
  • Veau = volume d'eau initial dans le récipient
  • Cf = concentration final souhaité dans le récipient 

3) Expérimental design pour l'étalonnage de la pompe : 

Lundi 18/11/2024 :

Conception expérimentale pour déterminer la concentration de la solution colorée (Cm)
Nous avons utilisé une balance analytique et plusieurs récipients pour préparer différentes dilutions de colorant dans un volume fixe d’eau. En ajustant les masses de colorant, nous avons calculé les concentrations (% massique) pour chaque dilution. Ensuite, à l'œil nu, nous avons sélectionné la dilution offrant une teinte optimale.

Conception expérimentale pour déterminer le volume de solution colorée à ajouter (V)
En connaissant la concentration initiale de la solution colorée (Csc) et le volume d'eau dans le récipient (Veau), nous avons calculé le volume de solution colorée à ajouter pour obtenir la concentration finale souhaitée (Cf) à l’aide de la formule :

Vsc*Csc  = Veau * Cf

Vsc = Veau*Cf / Vsc

avec :

  • Vsc = volume solution colorée à ajouter
  • Csc = cconcentration solution colorée à ajouter (calculé précedemment)
  • Veau = volume d'eau initial dans le récipient
  • Cf = concentration final souhaité dans le récipient 

Conception expérimentale pour l'étalonnage de la pompe
L'étalonnage visait à mesurer et ajuster les performances de la pompe pour garantir son bon fonctionnement dans le système.

Mercredi 04/12/2024 :

Dans le cadre de notre projet, nous avons réalisé plusieurs manipulations afin de déterminer la concentration optimale à utiliser par la suite. Voici les étapes suivies :

Préparation des solutions de colorant

Nous avons préparé deux solutions :

    • La première en dissolvant 10 gouttes de colorant dans 100 ml d’eau.
    • La deuxième en dissolvant 18 gouttes de colorant dans 100 ml d’eau.

Mesures et tests de coloration

Pour chacune des solutions préparées, nous avons procédé de la manière suivante :

À l’aide d’une burette graduée, nous avons versé la solution goutte à goutte dans un bécher contenant 100 ml d’eau.

Nous avons surveillé la coloration obtenue jusqu’à atteindre la teinte désirée.

Nous avons noté le volume de solution versé pour chaque essai.

Choix de la solution optimale

Après avoir comparé les résultats pour les deux solutions, nous avons décidé d’utiliser la première solution (10 gouttes dans 100 ml d’eau). Cette option permet d’atteindre la coloration souhaitée avec un volume de solution plus important, offrant ainsi une meilleure précision et une marge de manœuvre dans les ajustements.

Préparation de la solution diluée

À partir de la solution mère (10 gouttes dans 100 ml d’eau), nous avons prélevé 20 ml que nous avons ajoutés à 100 ml d’eau pour préparer une solution fille diluée.

Mesure de l’intensité lumineuse

Nous avons ensuite inséré un code dans le logiciel Arduino pour mesurer la valeur de l’intensité lumineuse de la couleur rouge dans chacune des solutions. Ces mesures permettront d’affiner notre choix et d’intégrer ces paramètres dans notre système automatisé.

Ci-dessous le code utilisé: 

// Définition des broches du capteur TCS3200
const int S0 = 2;
const int S1 = 3;
const int S2 = 4;
const int S3 = 5;
const int sensorOut = 6;

void setup() {
  // Configurer les broches de sortie
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);

  // Régler le scaling à 20% (S0 HIGH, S1 LOW)
  digitalWrite(S0, HIGH);
  digitalWrite(S1, LOW);

  Serial.begin(9600);
}

void loop() {
  int redFrequency, greenFrequency, blueFrequency;

  // Lecture de la composante Rouge
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);
  redFrequency = pulseIn(sensorOut, LOW);

  // Lecture de la composante Verte
  digitalWrite(S2, HIGH);
  digitalWrite(S3, HIGH);
  greenFrequency = pulseIn(sensorOut, LOW);

  // Lecture de la composante Bleue
  digitalWrite(S2, LOW);
  digitalWrite(S3, HIGH);
  blueFrequency = pulseIn(sensorOut, LOW);

  // Affichage des valeurs dans le moniteur série
  Serial.print("Rouge: ");
  Serial.print(redFrequency);
  Serial.print("  Vert: ");
  Serial.print(greenFrequency);
  Serial.print("  Bleu: ");
  Serial.println(blueFrequency);

  delay(500); // Attente avant la prochaine lecture
}

image.png

image.pngimage.png

Mercredi 18/12/2024 :

Nous avons préparé le support destiné à la présentation de notre projet en suivant plusieurs étapes. Tout d’abord, nous avons démonté l’ancien support en dévissant ses différentes parties afin de récupérer les plaques et les éléments réutilisables. Ensuite, nous avons pris avec précision les dimensions des anciennes plaques pour nous assurer que les nouvelles soient parfaitement adaptées aux besoins du projet. Une fois ces mesures relevées, nous avons découpé les nouvelles plaques à l’aide d’une scie, en veillant à obtenir des découpes nettes et précises. Enfin, nous avons assemblé le nouveau support en fixant solidement les plaques découpées, tout en vérifiant la stabilité et la solidité de l’ensemble. Ce support est maintenant prêt à accueillir notre projet pour une présentation optimale.

y6k8dbiy.png

Lundi 30/12/2024

Nous avons effectué les différents branchements entre la carte Arduino, la breadboard, la pompe et le capteur de couleur. Cela nous a permis de préparer l’intégration de ces composants pour les prochaines étapes de notre projet.

Mercredi 15/01/2025

Nous avons lu le manuel d’utilisation de la découpeuse laser sur le Wiki du Fablab pour bien comprendre son fonctionnement et ses consignes de sécurité.

Ensuite, nous avons utilisé la découpeuse laser pour fabriquer un support destiné à couvrir le verre. Ce support comprend des trous conçus spécifiquement pour permettre le passage des tuyaux, du capteur de couleur et de l’agitateur.

En parallèle, nous avons travaillé sur le code en intégrant la partie nécessaire au bon fonctionnement du capteur de couleur. Cela inclut l’interfaçage avec la carte Arduino et les tests initiaux pour valider les valeurs captées.

Jeudi 16/01/2025

Nous avons découpé différents socles qui serviront de supports pour les récipients. Ces supports ont été ajustés pour assurer la stabilité et l’ergonomie de l’ensemble du dispositif.

Nous avons également consulté le manuel d’utilisation de l’imprimante 3D Raise3D afin de l’utiliser pour imprimer notre agitateur. Après avoir exporté le modèle de l’agitateur depuis notre logiciel de conception, nous l’avons redimensionné selon les besoins du projet. Finalement, nous avons imprimé l’agitateur avec les dimensions adéquates. Celui-ci sera fixé au moteur pour assurer un bon mélange.

Vendredi 17/01/2025

Nous avons effectué d’autres découpages sur la plaque principale et avons commencé à visser les socles pour fixer solidement les différents composants.

Ensuite, nous avons testé individuellement chaque appareil (pompe, capteur de couleur, agitateur, etc.) pour nous assurer de leur bon fonctionnement. Pendant ces tests, nous avons constaté que la résistance utilisée n’était pas adaptée, ce qui a nécessité de la remplacer par une autre correspondant aux spécifications requises.

Par ailleurs, nous avons également dû changer le transistor, car nous avions initialement sélectionné une référence incorrecte. Après avoir installé le bon transistor, les tests ont été repris avec succès.

Lundi 20/01/2025 :

Nous avons finalisé les derniers éléments du montage et avancé sur le branchement des différents composants entre eux. Cette étape nous a permis de tester l’intégration complète du système et de nous assurer que le code fonctionne correctement en interaction avec les composants.

Voici le code après les ajustements réalisés :

#include <Wire.h>
 #include <LiquidCrystal_I2C.h>
 # définir 5
 #définir S2 4
 #définir S3 3
 int R,V,B; unsigned long temps; int pomp = 8 ;
 int agitateur = 6 ;
 LiquidCrystal_I2C écran LCD ( 0x 27 , 16 , 2 ) ;

 configuration vide () {
 pinMode ( sortie, ENTRÉE ) ;
 pinMode ( S2, SORTIE ) ;
 pinMode ( S3, SORTIE ) ;

 pinMode ( pompe,SORTIE ) ;
 pinMode ( agitateur,OUTPUT ) ;
 lcd . init () ; // Initialiser l'écran LCD
 LCD . rétroéclairage () ;
 écran LCD.setCursor ( 0 , 0 ) ;
 lcd . print ( "Ca,commance !" ) ;
 retard ( 2000 ) ;
 digitalWrite ( agitateur, 1 ) ;
 digitalWrite ( pompe, 1 ) ;
 }

 boucle vide () {
 écriturenumérique ( S2, 0 ) ;
 écriture numérique ( S3, 0 ) ;
 R = pulseIn ( sortie, 0 ) ;
 retard ( 10 ) ;
 int temps = millis () ;

 si ( R< 220 ) {
 digitalWrite ( pomp, 0 ) ;
 débit flottant = ( 27,77 *temps ) / 1000 ;
 lcd .clear () ; // Efface l'affichage
 écran LCD.setCursor ( 0 , 0 ) ;
 écran LCD . print ( " Le débit est : " ) ;
 écran LCD.setCursor ( 0 , 1 ) ;
 écran LCD . imprimer ( flux ) ;
 écran LCD.imprimer ( "ml" ) ;
 }

 }

Mercredi 22/01/2025 :

En testant le bon fonctionnement de l’ensemble du montage, nous avons constaté que l’afficheur LCD n’affiche pas les résultats comme prévu. Pour identifier la cause du problème, nous avons décidé d’effectuer un test isolé. Nous avons utilisé un code simple pour afficher un message basique sur le LCD sans qu’il soit lié au reste du montage. Cette méthode nous permet de vérifier si le problème provient du module LCD lui-même ou d’une autre partie du système.