Coiling jig experiment with buttons for coiling, annealing and testing.

Dependencies:   TextLCD

Committer:
yphilippou
Date:
Fri Dec 21 15:46:23 2018 +0000
Revision:
0:7795c79c9480
Buttons added.

Who changed what in which revision?

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