ENIB 2020 : Thermotige
Sommaire
photo de l'équipe
Description du Thermo Tige
Il s’agit d’un système de relevé automatique de température dans une casserole. Ce système est capable de comparer la température choisie par l’utilisateur et celle présente dans la casserole. Il est capable, grâce aux leds, de fournir l’information suivante : la température est la même que celle choisie par l’utilisateur.
Protocole d’utilisation
- choix de la température avec le curseur
- appuie sur le bouton
- descente de la thermo-résistance jusqu’au relâchement du bouton
- prise de la température pendant 5 secondes
- remonté de la thermo-résistance
- allumage de l’écran (rouge ou verte) en fonction de la comparaison des températures :
- si la température choisie est la même que la température relevée alors l’écran verte s’allume
- si la température choisie est différente de la température relevée alors l’écran rouge s’allume et si la température est supérieure, en plus de l'écran rouge, le buzzer se met en fonctionnement pour un avertissement sonore
Objectif pédagogique
Notre projet permet aux participants de manipuler l’arduino avec un câblage précis et l’écriture du code. Mais aussi d’un cerveau-moteur, d’un écran LCD et d’une thermo-résistance. Nous avons également faire des activités plus manuelles (soudure, pistolet à colle, découpage laser…) et dessiné nos pièces sur Box maker. Conception : Pour la réalisation du projet nous avons dimensionné un boîtier de 20 cm par 20 cm et de hauteur 7,5cm réalisé à la découpe laser. A l’intérieur de cette boîte il y a tout le câblage et la breadboard. Au-dessus, nous avons fixé l’écran LCD, le bouton, et le potentiomètre. Nous avons utilisé la découpe laser afin de créer notre bras. Le moteur est fixé à sont extrémité et, commandé par l’arduino, gère la monté/descente de la thermo-résistance dans la casserole.
Matériel
- Plaque de bois
- Carte Arduino Méga 2560
- Ecran LCD
- Cerveau moteur
- Bouton poussoir
- Potentiomètre
- Câbles
- Breadboard
- PC
- Ficelle
- Thermo résistance
- Buzzer
Réalisation du projet
Nous avons séparé le projet en différentes étapes pour optimiser le temps de réalisation. Réalisation de la boîte et du bras A l’aide du logiciel « Boxe maker » et une fois le projet fini nous avons pris les dimensions et créer la boîte et le bras afin de prendre en compte tous les composants nécessaires à la réalisation du projet. Le bras fait 15/3/3 cm ce qui est suffisamment grand pour que la thermo-résistance passe dans une casserole. [Photo boite et bras] Photo de la boite Photo de la Grue
Réalisation du programme arduino
#include <Wire.h> #include <Servo.h> #include "rgb_lcd.h" rgb_lcd lcd; int colorR; int colorG; int colorB; Servo motor; const int bp = 2; const int buzzer = 8; const int ThermistorPin = A0; const int potar = A1; int Vo; float R1 = 10000; // value of R1 on board float logR2, R2, T; float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741; //steinhart-hart coeficients for thermistor float tlim; unsigned long t1; unsigned long t2; unsigned long chrono; void setup() { // put your setup code here, to run once: motor.attach(10); Serial.begin(9600); // set up the LCD's number of columns and rows: lcd.begin(16, 2); pinMode(bp, INPUT); pinMode(buzzer, OUTPUT); pinMode(potar, INPUT); } void loop() { // put your main code here, to run repeatedly: colorR = 255; colorG = 255; colorB = 255; lcd.setRGB(colorR, colorG, colorB); Serial.println("test"); tlim = analogRead(potar) / 7, 87 + 20; lcd.setCursor(0, 0); lcd.print("reglage temp:"); lcd.setCursor(0, 1); lcd.print(tlim); lcd.print(" C"); /*if (tlim>70) { Serial.println("yes"); digitalWrite(motor,LOW); } else { digitalWrite(motor,HIGH); }*/ if (digitalRead(bp)) { t1=millis(); while (digitalRead(bp)) { motor.write(180); } motor.write(90); t2 = millis() - t1; delay(5000); Vo = analogRead(ThermistorPin); R2 = R1 * (1023.0 / (float)Vo - 1.0); //calculate resistance on thermistor logR2 = log(R2); T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2)); // temperature in Kelvin T = T - 273.15; //convert Kelvin to Celcius // T = (T * 9.0)/ 5.0 + 32.0; //convert Celcius to Farenheit lcd.setCursor(0, 0); lcd.print("Température :"); lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(T); lcd.print(" C"); while (T >= tlim) { digitalWrite(buzzer, HIGH); delay(10); digitalWrite(buzzer, LOW); delay(10); colorR = 255; colorG = 0; colorB = 0; lcd.setRGB(colorR, colorG, colorB); Serial.println("ça buzzz"); } t1=millis(); chrono = millis(); while ((chrono - t1) < t2) { motor.write(0); chrono = millis(); } motor.write(90); // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): } }
[Programme arduino]
Câblage
A l’aide des docs arduino nous avons réalisé le câblage de l’écran, du moteur, du buzzer, ma thermo-résistance et du potentiomètre. Nous avons également soudé le bouton poussoir et le potentiomètre
Équipe
- Mouellic Théo
- Cochard Morgan
- Rivier Raoul
- Davion Christophe
- Atger Valentin
- Thebaud Alexandre