quentin godbert
/
t2-stm32_thread
avec thread
Fork of T2_STM32 by
Diff: Carriage.h
- Revision:
- 2:ab0ccf9bb38c
diff -r 979edb6d1559 -r ab0ccf9bb38c Carriage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Carriage.h Sun Jan 14 15:50:49 2018 +0000 @@ -0,0 +1,136 @@ +#ifndef Carriage_h +#define Carriage_h + +#include "StepperMotor.h" + +#define Carriage_ExtSensor 99 // NON DEFINI +#define Carriage_IntSensor 99 // NON DEFINI + +#define Degagement 50 +#define Ext_Barillet 1900 +#define Retrait 100 +#define Barillet_Ascenseur 2100 +#define Ascenseur_Barillet 2100 +#define Barillet_Ext 1800 +#define Ext_Ascenseur 3800 +#define Ascenseur_Ext 3800 + +class Carriage: public StepperMotor{ + public: + Carriage(int, int, int, int, char, char); + ~Carriage(void); + void Update_Loader(unsigned char, unsigned char); + void Reach_Target_Loader(); + void Origin_Loader(int); + + private: + +}; + +Carriage::Carriage(int OriginSensor, int stepPin, int dirPin, int EnablePin, char Pos_Min, char Pos_Max):StepperMotor(OriginSensor, stepPin, dirPin, EnablePin, Pos_Min, Pos_Max){ +} + +Carriage::~Carriage(void){ +} + +void Carriage::Reach_Target_Loader() { + if (sTargetPos == 1){ + if (sCurrentPos == 2){ + digitalWrite(sdirPin, LOW); + for(int x = 0; x < Barillet_Ext; x++){ + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + } + else if (sCurrentPos == 3){ + digitalWrite(sdirPin, LOW); + for(int x = 0; x < Ascenseur_Ext; x++){ + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + } + sCurrentPos = 1; + } + else if (sTargetPos == 3){ + if (sCurrentPos == 1){ + digitalWrite(sdirPin, HIGH); + for(int x = 0; x < Ext_Ascenseur; x++){ + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + } + else if (sCurrentPos == 2) { + digitalWrite(sdirPin, HIGH); + for(int x = 0; x < Barillet_Ascenseur; x++) { + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + } + sCurrentPos = 3; + } + else if (sTargetPos == 2){ + if (sCurrentPos == 1){ + digitalWrite(sdirPin, HIGH); + for(int x = 0; x < Ext_Barillet; x++) { + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + digitalWrite(sdirPin, LOW); + for(int x = 0; x < Retrait; x++) { + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + } + else if (sCurrentPos == 3) { + digitalWrite(sdirPin, LOW); + for(int x = 0; x < Ascenseur_Barillet; x++) { + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + } + sCurrentPos = 2; + } +} + +void Carriage::Update_Loader(unsigned char CurrentPos, unsigned char TargetPos) { + sTargetPos = TargetPos; + sCurrentPos = CurrentPos; + Reach_Target_Loader(); + CurrentPos = sCurrentPos; +} + +void Carriage::Origin_Loader(int OriginSensor) { + digitalWrite(sdirPin, LOW); + Serial.print("OriginSensor = "); + Serial.println(sOriginSensor); + while (digitalRead(sOriginSensor) == true){ + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + digitalWrite(sdirPin, HIGH); + for(int x = 0; x < Degagement; x++) { + digitalWrite(sstepPin,HIGH); + delay(1); + digitalWrite(sstepPin,LOW); + delay(1); + } + sCurrentPos = 1; +} + +#endif \ No newline at end of file