ENIB 2020 : Thermotige

De Les Fabriques du Ponant
Aller à : navigation, rechercher

photo de l'équipe

Groupe thermo.jpg

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 :
  1. si la température choisie est la même que la température relevée alors l’écran verte s’allume
  2. 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] Boite thermo.jpg Photo de la boite Gru thermo.jpg 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


Catégories