DistributeurBoisson : Différence entre versions
| 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
Sommaire
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>
- 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>