quentin godbert
/
t2-stm32_thread
avec thread
Fork of T2_STM32 by
Carriage.h@2:ab0ccf9bb38c, 2018-01-14 (annotated)
- Committer:
- Tioneb
- Date:
- Sun Jan 14 15:50:49 2018 +0000
- Revision:
- 2:ab0ccf9bb38c
Test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Tioneb | 2:ab0ccf9bb38c | 1 | #ifndef Carriage_h |
Tioneb | 2:ab0ccf9bb38c | 2 | #define Carriage_h |
Tioneb | 2:ab0ccf9bb38c | 3 | |
Tioneb | 2:ab0ccf9bb38c | 4 | #include "StepperMotor.h" |
Tioneb | 2:ab0ccf9bb38c | 5 | |
Tioneb | 2:ab0ccf9bb38c | 6 | #define Carriage_ExtSensor 99 // NON DEFINI |
Tioneb | 2:ab0ccf9bb38c | 7 | #define Carriage_IntSensor 99 // NON DEFINI |
Tioneb | 2:ab0ccf9bb38c | 8 | |
Tioneb | 2:ab0ccf9bb38c | 9 | #define Degagement 50 |
Tioneb | 2:ab0ccf9bb38c | 10 | #define Ext_Barillet 1900 |
Tioneb | 2:ab0ccf9bb38c | 11 | #define Retrait 100 |
Tioneb | 2:ab0ccf9bb38c | 12 | #define Barillet_Ascenseur 2100 |
Tioneb | 2:ab0ccf9bb38c | 13 | #define Ascenseur_Barillet 2100 |
Tioneb | 2:ab0ccf9bb38c | 14 | #define Barillet_Ext 1800 |
Tioneb | 2:ab0ccf9bb38c | 15 | #define Ext_Ascenseur 3800 |
Tioneb | 2:ab0ccf9bb38c | 16 | #define Ascenseur_Ext 3800 |
Tioneb | 2:ab0ccf9bb38c | 17 | |
Tioneb | 2:ab0ccf9bb38c | 18 | class Carriage: public StepperMotor{ |
Tioneb | 2:ab0ccf9bb38c | 19 | public: |
Tioneb | 2:ab0ccf9bb38c | 20 | Carriage(int, int, int, int, char, char); |
Tioneb | 2:ab0ccf9bb38c | 21 | ~Carriage(void); |
Tioneb | 2:ab0ccf9bb38c | 22 | void Update_Loader(unsigned char, unsigned char); |
Tioneb | 2:ab0ccf9bb38c | 23 | void Reach_Target_Loader(); |
Tioneb | 2:ab0ccf9bb38c | 24 | void Origin_Loader(int); |
Tioneb | 2:ab0ccf9bb38c | 25 | |
Tioneb | 2:ab0ccf9bb38c | 26 | private: |
Tioneb | 2:ab0ccf9bb38c | 27 | |
Tioneb | 2:ab0ccf9bb38c | 28 | }; |
Tioneb | 2:ab0ccf9bb38c | 29 | |
Tioneb | 2:ab0ccf9bb38c | 30 | 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){ |
Tioneb | 2:ab0ccf9bb38c | 31 | } |
Tioneb | 2:ab0ccf9bb38c | 32 | |
Tioneb | 2:ab0ccf9bb38c | 33 | Carriage::~Carriage(void){ |
Tioneb | 2:ab0ccf9bb38c | 34 | } |
Tioneb | 2:ab0ccf9bb38c | 35 | |
Tioneb | 2:ab0ccf9bb38c | 36 | void Carriage::Reach_Target_Loader() { |
Tioneb | 2:ab0ccf9bb38c | 37 | if (sTargetPos == 1){ |
Tioneb | 2:ab0ccf9bb38c | 38 | if (sCurrentPos == 2){ |
Tioneb | 2:ab0ccf9bb38c | 39 | digitalWrite(sdirPin, LOW); |
Tioneb | 2:ab0ccf9bb38c | 40 | for(int x = 0; x < Barillet_Ext; x++){ |
Tioneb | 2:ab0ccf9bb38c | 41 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 42 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 43 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 44 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 45 | } |
Tioneb | 2:ab0ccf9bb38c | 46 | } |
Tioneb | 2:ab0ccf9bb38c | 47 | else if (sCurrentPos == 3){ |
Tioneb | 2:ab0ccf9bb38c | 48 | digitalWrite(sdirPin, LOW); |
Tioneb | 2:ab0ccf9bb38c | 49 | for(int x = 0; x < Ascenseur_Ext; x++){ |
Tioneb | 2:ab0ccf9bb38c | 50 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 51 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 52 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 53 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 54 | } |
Tioneb | 2:ab0ccf9bb38c | 55 | } |
Tioneb | 2:ab0ccf9bb38c | 56 | sCurrentPos = 1; |
Tioneb | 2:ab0ccf9bb38c | 57 | } |
Tioneb | 2:ab0ccf9bb38c | 58 | else if (sTargetPos == 3){ |
Tioneb | 2:ab0ccf9bb38c | 59 | if (sCurrentPos == 1){ |
Tioneb | 2:ab0ccf9bb38c | 60 | digitalWrite(sdirPin, HIGH); |
Tioneb | 2:ab0ccf9bb38c | 61 | for(int x = 0; x < Ext_Ascenseur; x++){ |
Tioneb | 2:ab0ccf9bb38c | 62 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 63 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 64 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 65 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 66 | } |
Tioneb | 2:ab0ccf9bb38c | 67 | } |
Tioneb | 2:ab0ccf9bb38c | 68 | else if (sCurrentPos == 2) { |
Tioneb | 2:ab0ccf9bb38c | 69 | digitalWrite(sdirPin, HIGH); |
Tioneb | 2:ab0ccf9bb38c | 70 | for(int x = 0; x < Barillet_Ascenseur; x++) { |
Tioneb | 2:ab0ccf9bb38c | 71 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 72 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 73 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 74 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 75 | } |
Tioneb | 2:ab0ccf9bb38c | 76 | } |
Tioneb | 2:ab0ccf9bb38c | 77 | sCurrentPos = 3; |
Tioneb | 2:ab0ccf9bb38c | 78 | } |
Tioneb | 2:ab0ccf9bb38c | 79 | else if (sTargetPos == 2){ |
Tioneb | 2:ab0ccf9bb38c | 80 | if (sCurrentPos == 1){ |
Tioneb | 2:ab0ccf9bb38c | 81 | digitalWrite(sdirPin, HIGH); |
Tioneb | 2:ab0ccf9bb38c | 82 | for(int x = 0; x < Ext_Barillet; x++) { |
Tioneb | 2:ab0ccf9bb38c | 83 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 84 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 85 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 86 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 87 | } |
Tioneb | 2:ab0ccf9bb38c | 88 | digitalWrite(sdirPin, LOW); |
Tioneb | 2:ab0ccf9bb38c | 89 | for(int x = 0; x < Retrait; x++) { |
Tioneb | 2:ab0ccf9bb38c | 90 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 91 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 92 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 93 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 94 | } |
Tioneb | 2:ab0ccf9bb38c | 95 | } |
Tioneb | 2:ab0ccf9bb38c | 96 | else if (sCurrentPos == 3) { |
Tioneb | 2:ab0ccf9bb38c | 97 | digitalWrite(sdirPin, LOW); |
Tioneb | 2:ab0ccf9bb38c | 98 | for(int x = 0; x < Ascenseur_Barillet; x++) { |
Tioneb | 2:ab0ccf9bb38c | 99 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 100 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 101 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 102 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 103 | } |
Tioneb | 2:ab0ccf9bb38c | 104 | } |
Tioneb | 2:ab0ccf9bb38c | 105 | sCurrentPos = 2; |
Tioneb | 2:ab0ccf9bb38c | 106 | } |
Tioneb | 2:ab0ccf9bb38c | 107 | } |
Tioneb | 2:ab0ccf9bb38c | 108 | |
Tioneb | 2:ab0ccf9bb38c | 109 | void Carriage::Update_Loader(unsigned char CurrentPos, unsigned char TargetPos) { |
Tioneb | 2:ab0ccf9bb38c | 110 | sTargetPos = TargetPos; |
Tioneb | 2:ab0ccf9bb38c | 111 | sCurrentPos = CurrentPos; |
Tioneb | 2:ab0ccf9bb38c | 112 | Reach_Target_Loader(); |
Tioneb | 2:ab0ccf9bb38c | 113 | CurrentPos = sCurrentPos; |
Tioneb | 2:ab0ccf9bb38c | 114 | } |
Tioneb | 2:ab0ccf9bb38c | 115 | |
Tioneb | 2:ab0ccf9bb38c | 116 | void Carriage::Origin_Loader(int OriginSensor) { |
Tioneb | 2:ab0ccf9bb38c | 117 | digitalWrite(sdirPin, LOW); |
Tioneb | 2:ab0ccf9bb38c | 118 | Serial.print("OriginSensor = "); |
Tioneb | 2:ab0ccf9bb38c | 119 | Serial.println(sOriginSensor); |
Tioneb | 2:ab0ccf9bb38c | 120 | while (digitalRead(sOriginSensor) == true){ |
Tioneb | 2:ab0ccf9bb38c | 121 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 122 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 123 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 124 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 125 | } |
Tioneb | 2:ab0ccf9bb38c | 126 | digitalWrite(sdirPin, HIGH); |
Tioneb | 2:ab0ccf9bb38c | 127 | for(int x = 0; x < Degagement; x++) { |
Tioneb | 2:ab0ccf9bb38c | 128 | digitalWrite(sstepPin,HIGH); |
Tioneb | 2:ab0ccf9bb38c | 129 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 130 | digitalWrite(sstepPin,LOW); |
Tioneb | 2:ab0ccf9bb38c | 131 | delay(1); |
Tioneb | 2:ab0ccf9bb38c | 132 | } |
Tioneb | 2:ab0ccf9bb38c | 133 | sCurrentPos = 1; |
Tioneb | 2:ab0ccf9bb38c | 134 | } |
Tioneb | 2:ab0ccf9bb38c | 135 | |
Tioneb | 2:ab0ccf9bb38c | 136 | #endif |