avec thread

Dependencies:   mbed

Fork of T2_STM32 by Atechsys

Committer:
ketingue
Date:
Sun Jan 14 17:39:09 2018 +0000
Revision:
4:b01a3ce6ef01
Parent:
2:ab0ccf9bb38c
test_pwm_01;

Who changed what in which revision?

UserRevisionLine numberNew 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