Dosage Colorimétrique Arduino
Le dosage est une technique permettant de déterminer la quantité de matière ou la concentration d'une entité chimique dans une solution connue. Les réactions de dosage sont des réactions rapide, totale et ou le réactif de la solution titrante (solution de concentration connue) doit réagir avec une unique espèce d'un solution titrée (solution de concentration inconnue). Le dosage colorimétrique est une technique permettant de repérer l'équivalence par un changement de couleur du milieu réactionnel. Le changement de couleur de la solution également que les réactifs ont été introduits dans les proportions stœchiométriques.
L'objectif du projet est de réguler et d'automatiser un dosage colorimétrique acido-basique par Arduino. Il s'agira de titré de l'acide acétique (CH3COOH) d'une bouteille de vinaigre commercial, par une solution de soude (NaOH) solution titrante de concentration connue. L'indicateur colorée utilisé est la phénolphtaléine. Pour réaliser le projet, le matériel suivant est utilisé:
- Burette
- Béchers
- Moteur pas à pas step motor 28byj-48 (utilisé pour régler l'ouverture du robinet de la burette)
- Une photorésistance (pour mesurer l'intensité lumineuse)
- une LED pour mettre en évidence le changement de couleur
- 2 Résistances
- Microcontrôleur Arduino
- BreadBoard
I. Matériel
- Arduino
La première partie du projet consiste à réaliser les branchements le moteur pas à pas, la LED, la photorésistance et les résistances sur le microcontrôleur Arduino. Après avoir réalisé un schéma de câblage sur Tinkercad, nous avons branché nos différents équipements sur Arduino.
Figure 1: Schéma de câblage sur Tinkercad
Après avoir branché nos appareils sur Arduino, différents langage informatique ont été mis sur Arduino afin de montrer que les différents équipements pouvait fonctionner indépendamment des autres. Il a donc été démontré que les appareils fonctionnait indépendamment des autres, cependant certains dysfonctionnement ont pu être mis en avant.:
- Le moteur pas à pas qui se bloque après avoir atteint une valeur seuil.
Nous avons trouvé un servo moteur mieux adapté à la plaque Arduino ainsi qu'aux pièces que nous possédons qui relient le moteur à la clé de robinet de la burette. Ainsi, voici notre montage:
Après avoir rentré un langage informatique sur Arduino pour nous assurer que le servomoteur fonctionnait. Le code que nous avons rentré consistait à faire tourner les pales du servomoteur en fonction de la valeur de l'angle (variables que nous rentrons dans le langage informatique). Après plusieurs essais, nous avons pu constater que le servomoteur fonctionnait et qu'il était apte à faire tourner le robinet de la burette.
Enfin, nous avons vérifier l'état de fonctionnement de la photorésistance. Pour cela nous avons utiliser le code suivant pour la faire fonctionner :
int photo = A0; // Déclaration de la photorésistance sur Arduino
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(photo, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int lecture = analogRead(photo); // Lecture de la valeur enregistré par la photorésistance en fonction de l'intensité lumineuse
Serial.println(lecture); // Enregistrement la valeur sur Arduino (Les valeurs sont enregistrés en ligne
}
Ce code nous à permis de calibrer la photorésistance en fonction de l'intensité lumineuse. Ainsi, nous avons pu établir une corrélation entre les valeurs enregistrés par Arduino, et l'intensité lumineuse.
Conditions dans laquelle se trouve la photorésistance | Valeur enregistré par Arduino | Conclusion |
-Boite en carton fermé | Valeur aux alentours de 10 | La photorésistance ne capte aucune lumière |
-Boite en carton en fermé troué pour faire passer un faisceau lumineux | Valeur aux alentours de 170 | |
-Photorésistance éclairé par une lampe torche de téléphone à une distance d'environ 3 à 5 cm | Valeurs aux alentours de 975 | |
-Lampe torche du téléphone collé à la photorésistance | Valeurs supérieur à 1013 | On est presque au maximum de l'intensité lumineuse pouvant être capté par la photorésistance |
-Photorésistance éclairée par la lumière ambiante du FabLab à 17h13 | Valeurs aux alentours de 866 |
2.Impression 3D
3.Code Arduino
En ce qui concerne le code Arduino, nous avons trouvé des codes séparés pour la LED (Fig ), la photorésistance (Fig ) et le servomoteur (Fig ), que nous avons testé afin de vérifier le bon fonctionnement du matériel. Le montage est installé, nous avons ensuite écris un code adapté à faire tourner notre système en prenant compte des trois unités simultanément.
#include <Servo.h> // on inclut la bibliothèque servo
Servo servoMoteur; // on crée un objet servo appelé servoMoteu
//set pin numbers
//const won't change
const int ledPin = 5; //Déclaration de la LED sur ARDUINO
const int ldrPin = A0; //Déclaration de la photorésistance
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT); //iLED en sortie
pinMode(ldrPin, INPUT); //Photorésitance en entrée
servoMoteur.attach(6); // Servo moteur en position 9
}
void loop() {
int ldrStatus = analogRead(ldrPin); //Lecture de la valeur de la photorésistance
//Regarder si la valeur de la photorésistance est inferieur ou égale à <= x
//Si c'est le cas, la LED est éteinte le titrage commence
if (ldrStatus <=x) {
digitalWrite(ledPin, LOW); //LED est eteinte
Serial.println(); //Les valeurs de la photorésitance sont enrgistrés en ligne
servoMoteur.write(0); //Le srvomoteur passe de l'angle 0 à un angle de 90°
delay(1000);
servoMoteur.write(90);
delay(1000);
digitalWrite(ledPin, LOW);
}
else {
digitalWrite(ledPin, HIGH); //LED allumé au changement de couleur
Serial.println();
servoMoteur.write(0); // Le servomoteur repasse en position 0
delay(1000);
}
}