Twisting jig experiment.

Dependencies:   TextLCD

Committer:
yphilippou
Date:
Fri Dec 21 15:38:53 2018 +0000
Revision:
0:273dc75dc8fa
Buttons for experiment steps added.

Who changed what in which revision?

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