DistributeurBoisson : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 22 : Ligne 22 :
 
==RESISTANCES CHAUFANTE==
 
==RESISTANCES CHAUFANTE==
 
==PROGRAMMATION DU PROJET==
 
==PROGRAMMATION DU PROJET==
 +
Voici le programme qu’on a mis en place pour pouvoir piloter les capteurs, les électrovannes et vérifier le bon fonctionnement du système:
 +
<source lang=c>
 +
#include <Wire.h>
 +
#include "Adafruit_MCP23008.h"
 +
#include "Adafruit_MCP23017.h"
 +
//#define MCP_LED1 8
 +
//#define MCP_INPUTPIN 9
 +
//#define MCP_grille 7
 +
Adafruit_MCP23008 mcp_sortie; //que les electrovannes sur ce mcp
 +
Adafruit_MCP23017 mcp_entree;
 +
//#define MCP_LED1 10
 +
//#define MCP_INPUTPIN 11
 +
 +
int analogPin = A3;
 +
float val = 0;
 +
float valtemperature;
 +
float valtension;// fin des variables CTN
 +
int pinBouton  = 11;
 +
int pinGrille1 = 7;
 +
int pinGrille2 = 6;
 +
bool conditiondepart = 0;
 +
int pinLed1    = 10;
 +
int pinBoutonPoussoir = 13;
 +
int pinBoutonPoussoir2 = 8;
 +
int pinLed2    = 9;
 +
void setup()
 +
{
 +
  mcp_entree.begin(2);
 +
  mcp_sortie.begin();// utiliser l'adresse par défaut
 +
  // définition des broches en sortie
 +
  //Serial.begin(9600);
 +
  mcp_entree.pinMode(pinBouton,  INPUT);
 +
  mcp_entree.pinMode(pinBoutonPoussoir,  INPUT);
 +
    mcp_entree.pinMode(pinBoutonPoussoir2,  INPUT);
 +
  mcp_sortie.pinMode(pinGrille1, OUTPUT);
 +
  mcp_sortie.pinMode(pinGrille2, OUTPUT);
 +
  mcp_entree.pinMode(pinLed1,    OUTPUT);
 +
  mcp_entree.pinMode(pinLed2,    OUTPUT);
 +
pinMode(1,OUTPUT);
 +
Serial.begin(9600);
 +
pinMode(5, OUTPUT);
 +
}
 +
void loop()
 +
{
 +
    val = analogRead(analogPin);
 +
valtension = ((val*5)/1023);
 +
delay(500);
 +
valtemperature = -1.7435415*valtension*valtension-14.246*valtension+127.0755;
 +
Serial.println(valtemperature); //CTN
 +
    if (mcp_entree.digitalRead(pinBoutonPoussoir)==HIGH){
 +
  conditiondepart = !conditiondepart;
 +
  delay(400);
 +
    }
 +
 
 +
  if (conditiondepart == 1)
 +
  {
 +
  if (mcp_entree.digitalRead(pinBouton)==HIGH) //attention c'est l'inverse de la position du flotteur
 +
  {
 +
    mcp_sortie.digitalWrite(pinGrille1,HIGH); //5v
 +
    mcp_sortie.digitalWrite(pinGrille2,LOW);
 +
    mcp_entree.digitalWrite(pinLed1, LOW);
 +
    digitalWrite(1,LOW);
 +
    }
 +
    else
 +
    {
 +
  mcp_sortie.digitalWrite(pinGrille1,LOW);
 +
  mcp_sortie.digitalWrite(pinGrille2,HIGH); //
 +
  mcp_entree.digitalWrite(pinLed1,HIGH); //
 +
  digitalWrite(1, HIGH); //pompe
 +
      }
 +
  delay(100); //petite attente
 +
 
 +
  if (valtemperature <= 40 && mcp_entree.digitalRead(pinBouton)==LOW  ){ //car il faut qu'il y ait de l'eau pour pouvoir chauffer !
 +
  digitalWrite(5, HIGH);
 +
}
 +
else if (valtemperature >= 50 && mcp_entree.digitalRead(pinBouton)==LOW ) {
 +
  digitalWrite(5, LOW); //on stop le système de chauffage puisqu'on a atteint la valeur voulue
 +
}
 +
else {
 +
  //ne rien faire
 +
}
 +
}
 +
  else if (conditiondepart ==0){
 +
    mcp_entree.digitalWrite(pinLed1, LOW);
 +
    digitalWrite(1,LOW);
 +
  }
 +
  delay(1);
 +
 
 +
  }
 +
<source lang=c>
  
 
==CONCLUSION==
 
==CONCLUSION==

Version du 2 avril 2021 à 18:14

Partie1

SOMMAIRE

INTRODUCTION

[ [ Au cours de notre deuxième année de DUT GEII à L’IUT de Troyes, nous avons été amenés à réaliser un projet. Notre encadrant nous a proposé la réalisation d’une machine à café. Celle-ci permettrait de produire un café de qualité. Nous avons donc commencé par établir un cahier des charges préliminaire.] ]

Cahier de charges

[Concevoir une carte électronique de commande d’une machine à café]

Partie2

PILOTAGE DES CAPTEURS

[Le capteur est un système qui permet de transformer une grandeur physique en un signal électrique. Il existe 3 grandes familles de capteurs.]

Simulation

Microship

Schématique

Carte Capteur

Programmation

PILOTAGE DES ACTIONNEURS

RESISTANCES CHAUFANTE

PROGRAMMATION DU PROJET

Voici le programme qu’on a mis en place pour pouvoir piloter les capteurs, les électrovannes et vérifier le bon fonctionnement du système: <source lang=c>

  1. include <Wire.h>
  2. include "Adafruit_MCP23008.h"
  3. include "Adafruit_MCP23017.h"

//#define MCP_LED1 8 //#define MCP_INPUTPIN 9 //#define MCP_grille 7 Adafruit_MCP23008 mcp_sortie; //que les electrovannes sur ce mcp Adafruit_MCP23017 mcp_entree; //#define MCP_LED1 10 //#define MCP_INPUTPIN 11

int analogPin = A3; float val = 0; float valtemperature; float valtension;// fin des variables CTN int pinBouton = 11; int pinGrille1 = 7; int pinGrille2 = 6; bool conditiondepart = 0; int pinLed1 = 10; int pinBoutonPoussoir = 13; int pinBoutonPoussoir2 = 8; int pinLed2 = 9; void setup() {

  mcp_entree.begin(2);
 mcp_sortie.begin();// utiliser l'adresse par défaut
 // définition des broches en sortie
 //Serial.begin(9600);
 mcp_entree.pinMode(pinBouton,  INPUT);
  mcp_entree.pinMode(pinBoutonPoussoir,  INPUT);
    mcp_entree.pinMode(pinBoutonPoussoir2,  INPUT);
 mcp_sortie.pinMode(pinGrille1, OUTPUT);
 mcp_sortie.pinMode(pinGrille2, OUTPUT);
 mcp_entree.pinMode(pinLed1,    OUTPUT);
  mcp_entree.pinMode(pinLed2,    OUTPUT);
pinMode(1,OUTPUT);
Serial.begin(9600);

pinMode(5, OUTPUT); } void loop() {

   val = analogRead(analogPin);

valtension = ((val*5)/1023); delay(500); valtemperature = -1.7435415*valtension*valtension-14.246*valtension+127.0755; Serial.println(valtemperature); //CTN

   if (mcp_entree.digitalRead(pinBoutonPoussoir)==HIGH){
  conditiondepart = !conditiondepart;
  delay(400);
   }
  
  if (conditiondepart == 1)
  {
  if (mcp_entree.digitalRead(pinBouton)==HIGH) //attention c'est l'inverse de la position du flotteur
 {
   mcp_sortie.digitalWrite(pinGrille1,HIGH); //5v
   mcp_sortie.digitalWrite(pinGrille2,LOW);
    mcp_entree.digitalWrite(pinLed1, LOW); 
   digitalWrite(1,LOW); 
   }
   else
   {
  mcp_sortie.digitalWrite(pinGrille1,LOW);
  mcp_sortie.digitalWrite(pinGrille2,HIGH); //
 mcp_entree.digitalWrite(pinLed1,HIGH); //
 digitalWrite(1, HIGH); //pompe
     }
 delay(100); //petite attente
  
  if (valtemperature <= 40 && mcp_entree.digitalRead(pinBouton)==LOW  ){ //car il faut qu'il y ait de l'eau pour pouvoir chauffer !
 digitalWrite(5, HIGH);

} else if (valtemperature >= 50 && mcp_entree.digitalRead(pinBouton)==LOW ) {

 digitalWrite(5, LOW); //on stop le système de chauffage puisqu'on a atteint la valeur voulue

} else {

 //ne rien faire

} }

  else if (conditiondepart ==0){
   mcp_entree.digitalWrite(pinLed1, LOW);
   digitalWrite(1,LOW);
 }
  delay(1);
  
  }

<source lang=c>

CONCLUSION