This is the first version of this code, pre threading

Dependencies:   mbed TextLCD

Committer:
JDickson
Date:
Tue Feb 05 14:41:13 2019 +0000
Revision:
1:bc8670cca9f1
Parent:
0:fa46f9c77bd5
Version 2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JDickson 0:fa46f9c77bd5 1 #include "mbed.h" //Include the mbed libraries
JDickson 0:fa46f9c77bd5 2 #include "STEPPER_MOTOR.hpp" //Include the header file, this acts like a series of forward declarations
JDickson 0:fa46f9c77bd5 3
JDickson 0:fa46f9c77bd5 4 //Constructor
JDickson 0:fa46f9c77bd5 5 STEPPER_MOTOR::STEPPER_MOTOR(PinName N1, PinName N2, PinName N3, PinName N4) : pin1(N1),pin2(N2),pin3(N3),pin4(N4)
JDickson 0:fa46f9c77bd5 6 {
JDickson 0:fa46f9c77bd5 7 _dir = true;
JDickson 0:fa46f9c77bd5 8 _step = 0;
JDickson 0:fa46f9c77bd5 9 }
JDickson 0:fa46f9c77bd5 10
JDickson 0:fa46f9c77bd5 11 STEPPER_MOTOR::~STEPPER_MOTOR(){} //Destructor
JDickson 0:fa46f9c77bd5 12
JDickson 0:fa46f9c77bd5 13 void STEPPER_MOTOR::Rotate_Steps(int Steps)
JDickson 0:fa46f9c77bd5 14 {
JDickson 0:fa46f9c77bd5 15 #define STIME 1000
JDickson 0:fa46f9c77bd5 16
JDickson 0:fa46f9c77bd5 17 Steps = Steps*50;
JDickson 0:fa46f9c77bd5 18 //int correctionfactor;
JDickson 0:fa46f9c77bd5 19 //int timeofturn=correctinfactor*speed;
JDickson 0:fa46f9c77bd5 20
JDickson 0:fa46f9c77bd5 21 int mystep=0;
JDickson 0:fa46f9c77bd5 22 printf("START!!! step value is=%d\n\r",mystep);
JDickson 0:fa46f9c77bd5 23 for(int x =0 ; x <= Steps; x++)
JDickson 0:fa46f9c77bd5 24 {
JDickson 0:fa46f9c77bd5 25 printf("FOR LOOP! step value is=%d %d\n\r",mystep,x); // debugging feedback
JDickson 0:fa46f9c77bd5 26 // phase pulse order
JDickson 0:fa46f9c77bd5 27 this->pin1 = 0;
JDickson 0:fa46f9c77bd5 28 this->pin2 = 1;
JDickson 0:fa46f9c77bd5 29 this->pin3 = 0;
JDickson 0:fa46f9c77bd5 30 this->pin4 = 1;
JDickson 0:fa46f9c77bd5 31 mystep=1;
JDickson 0:fa46f9c77bd5 32 wait_us(1000);
JDickson 0:fa46f9c77bd5 33
JDickson 0:fa46f9c77bd5 34 printf("FOR LOOP! step value is=%d %d\n\r",mystep,x);
JDickson 0:fa46f9c77bd5 35 this->pin1 = 0;
JDickson 0:fa46f9c77bd5 36 this->pin2 = 1;
JDickson 0:fa46f9c77bd5 37 this->pin3 = 1;
JDickson 0:fa46f9c77bd5 38 this->pin4 = 0;
JDickson 0:fa46f9c77bd5 39 mystep=2;
JDickson 0:fa46f9c77bd5 40 wait_us(1000);
JDickson 0:fa46f9c77bd5 41
JDickson 0:fa46f9c77bd5 42 printf("FOR LOOP! step value is=%d %d\n\r",mystep,x);
JDickson 0:fa46f9c77bd5 43 this->pin1 = 1;
JDickson 0:fa46f9c77bd5 44 this->pin2 = 0;
JDickson 0:fa46f9c77bd5 45 this->pin3 = 1;
JDickson 0:fa46f9c77bd5 46 this->pin4 = 0;
JDickson 0:fa46f9c77bd5 47 mystep=3;
JDickson 0:fa46f9c77bd5 48 wait_us(1000);
JDickson 0:fa46f9c77bd5 49
JDickson 0:fa46f9c77bd5 50 printf("FOR LOOP! step value is=%d %d\n\r",mystep,x);
JDickson 0:fa46f9c77bd5 51 this->pin1 = 1;
JDickson 0:fa46f9c77bd5 52 this->pin2 = 0;
JDickson 0:fa46f9c77bd5 53 this->pin3 = 0;
JDickson 0:fa46f9c77bd5 54 this->pin4 = 1;
JDickson 0:fa46f9c77bd5 55 mystep=4;
JDickson 0:fa46f9c77bd5 56 wait_us(1000);;
JDickson 0:fa46f9c77bd5 57
JDickson 0:fa46f9c77bd5 58 /* printf("FOR LOOP! step value is=%d %d\n\r",mystep,x);
JDickson 0:fa46f9c77bd5 59 this->pin1 = 0;
JDickson 0:fa46f9c77bd5 60 this->pin2 = 1;
JDickson 0:fa46f9c77bd5 61 this->pin3 = 0;
JDickson 0:fa46f9c77bd5 62 this->pin4 = 0;
JDickson 0:fa46f9c77bd5 63 mystep=5;
JDickson 0:fa46f9c77bd5 64 wait_ms(0.6);
JDickson 0:fa46f9c77bd5 65 printf("FOR LOOP! step value is=%d %d\n\r",mystep,x);
JDickson 0:fa46f9c77bd5 66 this->pin1 = 1;
JDickson 0:fa46f9c77bd5 67 this->pin2 = 1;
JDickson 0:fa46f9c77bd5 68 this->pin3 = 0;
JDickson 0:fa46f9c77bd5 69 this->pin4 = 0;
JDickson 0:fa46f9c77bd5 70 mystep=6;
JDickson 0:fa46f9c77bd5 71 wait_ms(0.6);
JDickson 0:fa46f9c77bd5 72 printf("FOR LOOP! step value is=%d %d\n\r",mystep,x);
JDickson 0:fa46f9c77bd5 73 this->pin1 = 1;
JDickson 0:fa46f9c77bd5 74 this->pin2 = 0;
JDickson 0:fa46f9c77bd5 75 this->pin3 = 0;
JDickson 0:fa46f9c77bd5 76 this->pin4 = 0;
JDickson 0:fa46f9c77bd5 77 mystep=7;
JDickson 0:fa46f9c77bd5 78 wait_ms(0.6);
JDickson 0:fa46f9c77bd5 79
JDickson 0:fa46f9c77bd5 80 this->pin1 = 1;
JDickson 0:fa46f9c77bd5 81 this->pin2 = 0;
JDickson 0:fa46f9c77bd5 82 this->pin3 = 0;
JDickson 0:fa46f9c77bd5 83 this->pin4 = 1;
JDickson 0:fa46f9c77bd5 84 mystep=0;
JDickson 0:fa46f9c77bd5 85 wait_ms(0.6);
JDickson 0:fa46f9c77bd5 86
JDickson 0:fa46f9c77bd5 87 this->pin1 = 0;
JDickson 0:fa46f9c77bd5 88 this->pin2 = 0;
JDickson 0:fa46f9c77bd5 89 this->pin3 = 0;
JDickson 0:fa46f9c77bd5 90 this->pin4 = 0;
JDickson 0:fa46f9c77bd5 91 mystep=0;
JDickson 0:fa46f9c77bd5 92 wait_ms(0.6);*/
JDickson 0:fa46f9c77bd5 93 }
JDickson 0:fa46f9c77bd5 94 }
JDickson 0:fa46f9c77bd5 95
JDickson 0:fa46f9c77bd5 96 /*
JDickson 0:fa46f9c77bd5 97 switch(mystep){
JDickson 0:fa46f9c77bd5 98 case 0:{
JDickson 0:fa46f9c77bd5 99
JDickson 0:fa46f9c77bd5 100 break;
JDickson 0:fa46f9c77bd5 101 case 1:{
JDickson 0:fa46f9c77bd5 102
JDickson 0:fa46f9c77bd5 103 break;
JDickson 0:fa46f9c77bd5 104 case 2:
JDickson 0:fa46f9c77bd5 105
JDickson 0:fa46f9c77bd5 106 break;
JDickson 0:fa46f9c77bd5 107 case 3:
JDickson 0:fa46f9c77bd5 108
JDickson 0:fa46f9c77bd5 109 break;
JDickson 0:fa46f9c77bd5 110 case 4:
JDickson 0:fa46f9c77bd5 111
JDickson 0:fa46f9c77bd5 112 break;
JDickson 0:fa46f9c77bd5 113 case 5:
JDickson 0:fa46f9c77bd5 114
JDickson 0:fa46f9c77bd5 115 break;
JDickson 0:fa46f9c77bd5 116 case 6:
JDickson 0:fa46f9c77bd5 117
JDickson 0:fa46f9c77bd5 118 break;
JDickson 0:fa46f9c77bd5 119 case 7:
JDickson 0:fa46f9c77bd5 120
JDickson 0:fa46f9c77bd5 121 break;
JDickson 0:fa46f9c77bd5 122 default:
JDickson 0:fa46f9c77bd5 123
JDickson 0:fa46f9c77bd5 124 break;
JDickson 0:fa46f9c77bd5 125 }
JDickson 0:fa46f9c77bd5 126
JDickson 0:fa46f9c77bd5 127 if(_dir){
JDickson 0:fa46f9c77bd5 128 _step++;
JDickson 0:fa46f9c77bd5 129 }else{
JDickson 0:fa46f9c77bd5 130 _step--;
JDickson 0:fa46f9c77bd5 131 }
JDickson 0:fa46f9c77bd5 132 if(_step>7){
JDickson 0:fa46f9c77bd5 133 _step=0;
JDickson 0:fa46f9c77bd5 134 }
JDickson 0:fa46f9c77bd5 135 if(_step<0){
JDickson 0:fa46f9c77bd5 136 _step=7;
JDickson 0:fa46f9c77bd5 137 }
JDickson 0:fa46f9c77bd5 138 */
JDickson 0:fa46f9c77bd5 139 //wait_ms(1);
JDickson 0:fa46f9c77bd5 140
JDickson 0:fa46f9c77bd5 141
JDickson 0:fa46f9c77bd5 142 void STEPPER_MOTOR::Permanent_Rotate_clock_wise()
JDickson 0:fa46f9c77bd5 143 {
JDickson 0:fa46f9c77bd5 144 switch(_step){
JDickson 0:fa46f9c77bd5 145 case 0:
JDickson 0:fa46f9c77bd5 146 pin1 = 0;
JDickson 0:fa46f9c77bd5 147 pin2 = 0;
JDickson 0:fa46f9c77bd5 148 pin3 = 0;
JDickson 0:fa46f9c77bd5 149 pin4 = 1;
JDickson 0:fa46f9c77bd5 150 break;
JDickson 0:fa46f9c77bd5 151 case 1:
JDickson 0:fa46f9c77bd5 152 pin1 = 0;
JDickson 0:fa46f9c77bd5 153 pin2 = 0;
JDickson 0:fa46f9c77bd5 154 pin3 = 1;
JDickson 0:fa46f9c77bd5 155 pin4 = 1;
JDickson 0:fa46f9c77bd5 156 break;
JDickson 0:fa46f9c77bd5 157 case 2:
JDickson 0:fa46f9c77bd5 158 pin1 = 0;
JDickson 0:fa46f9c77bd5 159 pin2 = 0;
JDickson 0:fa46f9c77bd5 160 pin3 = 1;
JDickson 0:fa46f9c77bd5 161 pin4 = 0;
JDickson 0:fa46f9c77bd5 162 break;
JDickson 0:fa46f9c77bd5 163 case 3:
JDickson 0:fa46f9c77bd5 164 pin1 = 0;
JDickson 0:fa46f9c77bd5 165 pin2 = 1;
JDickson 0:fa46f9c77bd5 166 pin3 = 1;
JDickson 0:fa46f9c77bd5 167 pin4 = 0;
JDickson 0:fa46f9c77bd5 168 break;
JDickson 0:fa46f9c77bd5 169 case 4:
JDickson 0:fa46f9c77bd5 170 pin1 = 0;
JDickson 0:fa46f9c77bd5 171 pin2 = 1;
JDickson 0:fa46f9c77bd5 172 pin3 = 0;
JDickson 0:fa46f9c77bd5 173 pin4 = 0;
JDickson 0:fa46f9c77bd5 174 break;
JDickson 0:fa46f9c77bd5 175 case 5:
JDickson 0:fa46f9c77bd5 176 pin1 = 1;
JDickson 0:fa46f9c77bd5 177 pin2 = 1;
JDickson 0:fa46f9c77bd5 178 pin3 = 0;
JDickson 0:fa46f9c77bd5 179 pin4 = 0;
JDickson 0:fa46f9c77bd5 180 break;
JDickson 0:fa46f9c77bd5 181 case 6:
JDickson 0:fa46f9c77bd5 182 pin1 = 1;
JDickson 0:fa46f9c77bd5 183 pin2 = 0;
JDickson 0:fa46f9c77bd5 184 pin3 = 0;
JDickson 0:fa46f9c77bd5 185 pin4 = 0;
JDickson 0:fa46f9c77bd5 186 break;
JDickson 0:fa46f9c77bd5 187 case 7:
JDickson 0:fa46f9c77bd5 188 pin1 = 1;
JDickson 0:fa46f9c77bd5 189 pin2 = 0;
JDickson 0:fa46f9c77bd5 190 pin3 = 0;
JDickson 0:fa46f9c77bd5 191 pin4 = 1;
JDickson 0:fa46f9c77bd5 192 break;
JDickson 0:fa46f9c77bd5 193 default:
JDickson 0:fa46f9c77bd5 194 pin1 = 0;
JDickson 0:fa46f9c77bd5 195 pin2 = 0;
JDickson 0:fa46f9c77bd5 196 pin3 = 0;
JDickson 0:fa46f9c77bd5 197 pin4 = 0;
JDickson 0:fa46f9c77bd5 198 break;
JDickson 0:fa46f9c77bd5 199 }
JDickson 0:fa46f9c77bd5 200 if(_dir){
JDickson 0:fa46f9c77bd5 201 _step++;
JDickson 0:fa46f9c77bd5 202 }else{
JDickson 0:fa46f9c77bd5 203 _step--;
JDickson 0:fa46f9c77bd5 204 }
JDickson 0:fa46f9c77bd5 205 if(_step>7){
JDickson 0:fa46f9c77bd5 206 _step=0;
JDickson 0:fa46f9c77bd5 207 }
JDickson 0:fa46f9c77bd5 208 if(_step<0){
JDickson 0:fa46f9c77bd5 209 _step=7;
JDickson 0:fa46f9c77bd5 210 }
JDickson 0:fa46f9c77bd5 211 }
JDickson 0:fa46f9c77bd5 212
JDickson 0:fa46f9c77bd5 213 void STEPPER_MOTOR::Permanent_Rotate_anti_clock_wise()
JDickson 0:fa46f9c77bd5 214 {
JDickson 0:fa46f9c77bd5 215
JDickson 0:fa46f9c77bd5 216 //Rotate
JDickson 0:fa46f9c77bd5 217 switch(_step){
JDickson 0:fa46f9c77bd5 218 case 0:
JDickson 0:fa46f9c77bd5 219 pin1 = 1;
JDickson 0:fa46f9c77bd5 220 pin2 = 0;
JDickson 0:fa46f9c77bd5 221 pin3 = 0;
JDickson 0:fa46f9c77bd5 222 pin4 = 1;
JDickson 0:fa46f9c77bd5 223 break;
JDickson 0:fa46f9c77bd5 224 case 1:
JDickson 0:fa46f9c77bd5 225 pin1 = 1;
JDickson 0:fa46f9c77bd5 226 pin2 = 0;
JDickson 0:fa46f9c77bd5 227 pin3 = 0;
JDickson 0:fa46f9c77bd5 228 pin4 = 0;
JDickson 0:fa46f9c77bd5 229 break;
JDickson 0:fa46f9c77bd5 230 case 2:
JDickson 0:fa46f9c77bd5 231 pin1 = 1;
JDickson 0:fa46f9c77bd5 232 pin2 = 1;
JDickson 0:fa46f9c77bd5 233 pin3 = 0;
JDickson 0:fa46f9c77bd5 234 pin4 = 0;
JDickson 0:fa46f9c77bd5 235 break;
JDickson 0:fa46f9c77bd5 236 case 3:
JDickson 0:fa46f9c77bd5 237 pin1 = 0;
JDickson 0:fa46f9c77bd5 238 pin2 = 1;
JDickson 0:fa46f9c77bd5 239 pin3 = 0;
JDickson 0:fa46f9c77bd5 240 pin4 = 0;
JDickson 0:fa46f9c77bd5 241 break;
JDickson 0:fa46f9c77bd5 242 case 4:
JDickson 0:fa46f9c77bd5 243 pin1 = 0;
JDickson 0:fa46f9c77bd5 244 pin2 = 1;
JDickson 0:fa46f9c77bd5 245 pin3 = 1;
JDickson 0:fa46f9c77bd5 246 pin4 = 0;
JDickson 0:fa46f9c77bd5 247 break;
JDickson 0:fa46f9c77bd5 248 case 5:
JDickson 0:fa46f9c77bd5 249 pin1 = 0;
JDickson 0:fa46f9c77bd5 250 pin2 = 0;
JDickson 0:fa46f9c77bd5 251 pin3 = 1;
JDickson 0:fa46f9c77bd5 252 pin4 = 0;
JDickson 0:fa46f9c77bd5 253 break;
JDickson 0:fa46f9c77bd5 254 case 6:
JDickson 0:fa46f9c77bd5 255 pin1 = 0;
JDickson 0:fa46f9c77bd5 256 pin2 = 0;
JDickson 0:fa46f9c77bd5 257 pin3 = 1;
JDickson 0:fa46f9c77bd5 258 pin4 = 1;
JDickson 0:fa46f9c77bd5 259 break;
JDickson 0:fa46f9c77bd5 260 case 7:
JDickson 0:fa46f9c77bd5 261 pin1 = 0;
JDickson 0:fa46f9c77bd5 262 pin2 = 0;
JDickson 0:fa46f9c77bd5 263 pin3 = 0;
JDickson 0:fa46f9c77bd5 264 pin4 = 1;
JDickson 0:fa46f9c77bd5 265 break;
JDickson 0:fa46f9c77bd5 266 default:
JDickson 0:fa46f9c77bd5 267 pin1 = 0;
JDickson 0:fa46f9c77bd5 268 pin2 = 0;
JDickson 0:fa46f9c77bd5 269 pin3 = 0;
JDickson 0:fa46f9c77bd5 270 pin4 = 0;
JDickson 0:fa46f9c77bd5 271 break;
JDickson 0:fa46f9c77bd5 272 }
JDickson 0:fa46f9c77bd5 273 if(_dir){
JDickson 0:fa46f9c77bd5 274 _step++;
JDickson 0:fa46f9c77bd5 275 }else{
JDickson 0:fa46f9c77bd5 276 _step--;
JDickson 0:fa46f9c77bd5 277 }
JDickson 0:fa46f9c77bd5 278 if(_step>7){
JDickson 0:fa46f9c77bd5 279 _step=0;
JDickson 0:fa46f9c77bd5 280 }
JDickson 0:fa46f9c77bd5 281 if(_step<0){
JDickson 0:fa46f9c77bd5 282 _step=7;
JDickson 0:fa46f9c77bd5 283 }
JDickson 0:fa46f9c77bd5 284 //wait_ms(1);
JDickson 0:fa46f9c77bd5 285 }
JDickson 0:fa46f9c77bd5 286