Arnaud Beauclair / Mbed 2 deprecated regulateur_V2

Dependencies:   mbed

Committer:
arn_beauclair
Date:
Sun Jun 15 15:32:04 2014 +0000
Revision:
0:af7247fcd74c
ADS_technologie

Who changed what in which revision?

UserRevisionLine numberNew contents of line
arn_beauclair 0:af7247fcd74c 1 #include "mbed.h"
arn_beauclair 0:af7247fcd74c 2
arn_beauclair 0:af7247fcd74c 3 extern float TemporisationDemarreur,commandeLimite,comptDem,vitesseMin;
arn_beauclair 0:af7247fcd74c 4 extern int courantLim;
arn_beauclair 0:af7247fcd74c 5 extern int tensionMin, tensionMax;
arn_beauclair 0:af7247fcd74c 6 extern char Etat_Precedant, Etat;
arn_beauclair 0:af7247fcd74c 7 extern int compteur_Demarreur,compteur_Tempo;
arn_beauclair 0:af7247fcd74c 8 extern char demInfini,infini;
arn_beauclair 0:af7247fcd74c 9 DigitalIn frein(p12);
arn_beauclair 0:af7247fcd74c 10 AnalogIn Volts(p20);
arn_beauclair 0:af7247fcd74c 11 AnalogIn Ampere(p17);
arn_beauclair 0:af7247fcd74c 12
arn_beauclair 0:af7247fcd74c 13 void Etat_Futur() {
arn_beauclair 0:af7247fcd74c 14 switch (Etat_Precedant){
arn_beauclair 0:af7247fcd74c 15 //Etat normal
arn_beauclair 0:af7247fcd74c 16 case 0:
arn_beauclair 0:af7247fcd74c 17 if(frein.read()==1)
arn_beauclair 0:af7247fcd74c 18 Etat=6;
arn_beauclair 0:af7247fcd74c 19 else{
arn_beauclair 0:af7247fcd74c 20 if(Volts.read()*100<=tensionMin)
arn_beauclair 0:af7247fcd74c 21 Etat=1;
arn_beauclair 0:af7247fcd74c 22 else{
arn_beauclair 0:af7247fcd74c 23 if(Ampere.read()*48>=commandeLimite)
arn_beauclair 0:af7247fcd74c 24 Etat=3;
arn_beauclair 0:af7247fcd74c 25 else
arn_beauclair 0:af7247fcd74c 26 Etat=0;
arn_beauclair 0:af7247fcd74c 27 }
arn_beauclair 0:af7247fcd74c 28 }
arn_beauclair 0:af7247fcd74c 29 break;
arn_beauclair 0:af7247fcd74c 30 // detection d'une batterie faible
arn_beauclair 0:af7247fcd74c 31 case 1:
arn_beauclair 0:af7247fcd74c 32 if(frein.read()==1)
arn_beauclair 0:af7247fcd74c 33 Etat=6;
arn_beauclair 0:af7247fcd74c 34 else{
arn_beauclair 0:af7247fcd74c 35 if(int(Volts.read()*100)>=(tensionMax))
arn_beauclair 0:af7247fcd74c 36 Etat=0;
arn_beauclair 0:af7247fcd74c 37 else
arn_beauclair 0:af7247fcd74c 38 {
arn_beauclair 0:af7247fcd74c 39 if((infini==0)&&(compteur_Demarreur>=(TemporisationDemarreur*10)))
arn_beauclair 0:af7247fcd74c 40 Etat=2;
arn_beauclair 0:af7247fcd74c 41 else
arn_beauclair 0:af7247fcd74c 42 Etat=1;
arn_beauclair 0:af7247fcd74c 43 }
arn_beauclair 0:af7247fcd74c 44 }
arn_beauclair 0:af7247fcd74c 45 break;
arn_beauclair 0:af7247fcd74c 46 //compteur du demarreur finit
arn_beauclair 0:af7247fcd74c 47 case 2:
arn_beauclair 0:af7247fcd74c 48 if(frein.read()==1)
arn_beauclair 0:af7247fcd74c 49 Etat=7;
arn_beauclair 0:af7247fcd74c 50 else{
arn_beauclair 0:af7247fcd74c 51 if(int(Volts.read()*100)>=(tensionMax))
arn_beauclair 0:af7247fcd74c 52 Etat=0;
arn_beauclair 0:af7247fcd74c 53 else
arn_beauclair 0:af7247fcd74c 54 Etat=2;
arn_beauclair 0:af7247fcd74c 55 }
arn_beauclair 0:af7247fcd74c 56 break;
arn_beauclair 0:af7247fcd74c 57 //detection fort courant
arn_beauclair 0:af7247fcd74c 58 case 3:
arn_beauclair 0:af7247fcd74c 59 if(frein.read()==1)
arn_beauclair 0:af7247fcd74c 60 Etat=6;
arn_beauclair 0:af7247fcd74c 61 else{
arn_beauclair 0:af7247fcd74c 62 if(Ampere.read()*48>=commandeLimite)
arn_beauclair 0:af7247fcd74c 63 Etat=0;
arn_beauclair 0:af7247fcd74c 64 else
arn_beauclair 0:af7247fcd74c 65 {
arn_beauclair 0:af7247fcd74c 66 if(compteur_Tempo>=(comptDem*10))
arn_beauclair 0:af7247fcd74c 67 Etat=4;
arn_beauclair 0:af7247fcd74c 68 else
arn_beauclair 0:af7247fcd74c 69 Etat=3;
arn_beauclair 0:af7247fcd74c 70 }
arn_beauclair 0:af7247fcd74c 71 }
arn_beauclair 0:af7247fcd74c 72 break;
arn_beauclair 0:af7247fcd74c 73 // temporisation lors du fort courant fini
arn_beauclair 0:af7247fcd74c 74 case 4:
arn_beauclair 0:af7247fcd74c 75 if(frein.read()==1)
arn_beauclair 0:af7247fcd74c 76 Etat=6;
arn_beauclair 0:af7247fcd74c 77 else{
arn_beauclair 0:af7247fcd74c 78 if(Ampere.read()*48>=commandeLimite)
arn_beauclair 0:af7247fcd74c 79 Etat=0;
arn_beauclair 0:af7247fcd74c 80 else
arn_beauclair 0:af7247fcd74c 81 {
arn_beauclair 0:af7247fcd74c 82 if((infini==0)&&(compteur_Demarreur>=(TemporisationDemarreur*10)))
arn_beauclair 0:af7247fcd74c 83 {
arn_beauclair 0:af7247fcd74c 84 if(int(Volts.read()*100)<=(tensionMin))
arn_beauclair 0:af7247fcd74c 85 Etat=2;
arn_beauclair 0:af7247fcd74c 86 else
arn_beauclair 0:af7247fcd74c 87 Etat=5;
arn_beauclair 0:af7247fcd74c 88 }
arn_beauclair 0:af7247fcd74c 89 else
arn_beauclair 0:af7247fcd74c 90 Etat=4;
arn_beauclair 0:af7247fcd74c 91 }
arn_beauclair 0:af7247fcd74c 92 }
arn_beauclair 0:af7247fcd74c 93 break;
arn_beauclair 0:af7247fcd74c 94 // fin du demarreur pour un fort courant
arn_beauclair 0:af7247fcd74c 95 case 5:
arn_beauclair 0:af7247fcd74c 96 if(frein.read()==1)
arn_beauclair 0:af7247fcd74c 97 Etat=6;
arn_beauclair 0:af7247fcd74c 98 else{
arn_beauclair 0:af7247fcd74c 99 if(Ampere.read()*48>=commandeLimite)
arn_beauclair 0:af7247fcd74c 100 Etat=0;
arn_beauclair 0:af7247fcd74c 101 else
arn_beauclair 0:af7247fcd74c 102 {
arn_beauclair 0:af7247fcd74c 103 if(int(Volts.read()*100)<=(tensionMin))
arn_beauclair 0:af7247fcd74c 104 Etat=2;
arn_beauclair 0:af7247fcd74c 105 else
arn_beauclair 0:af7247fcd74c 106 Etat=5;
arn_beauclair 0:af7247fcd74c 107 }
arn_beauclair 0:af7247fcd74c 108 }
arn_beauclair 0:af7247fcd74c 109 break;
arn_beauclair 0:af7247fcd74c 110 // freinage
arn_beauclair 0:af7247fcd74c 111 case 6 :
arn_beauclair 0:af7247fcd74c 112 if(frein==0)
arn_beauclair 0:af7247fcd74c 113 Etat=0;
arn_beauclair 0:af7247fcd74c 114 else
arn_beauclair 0:af7247fcd74c 115 Etat=6;
arn_beauclair 0:af7247fcd74c 116 break;
arn_beauclair 0:af7247fcd74c 117 // freinage lors de la recharge de la batterie
arn_beauclair 0:af7247fcd74c 118 case 7:
arn_beauclair 0:af7247fcd74c 119 if(frein==0)
arn_beauclair 0:af7247fcd74c 120 Etat=0;
arn_beauclair 0:af7247fcd74c 121 else
arn_beauclair 0:af7247fcd74c 122 Etat=7;
arn_beauclair 0:af7247fcd74c 123 break;
arn_beauclair 0:af7247fcd74c 124 }
arn_beauclair 0:af7247fcd74c 125 }
arn_beauclair 0:af7247fcd74c 126