Remote inc coolant nozzle control program

Dependencies:   mbed reScale USBDevice

Dependents:   Nozzle_inputs Nozzle_display

Committer:
BETZtechnik
Date:
Thu Apr 11 23:22:45 2019 +0000
Revision:
22:a3ada529b264
Parent:
21:db507362ca7a
Child:
23:baedb9e32b6d
Child:
24:55fafbb82a37
everything including twitch appears to be working, no freezing 2019-04-11;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
BETZtechnik 0:09419d572e90 1 #include "mbed.h"
BETZtechnik 2:79c03ac27b72 2
BETZtechnik 0:09419d572e90 3 #include "reScale.h"
BETZtechnik 2:79c03ac27b72 4
BETZtechnik 2:79c03ac27b72 5
BETZtechnik 2:79c03ac27b72 6 //Serial pc(USBTX, USBRX);
BETZtechnik 0:09419d572e90 7
BETZtechnik 5:18c6ff1370d0 8 //InterruptIn aux1(P0_7, PullUp); // index pulse
BETZtechnik 0:09419d572e90 9
BETZtechnik 5:18c6ff1370d0 10 DigitalIn aux1(P0_7);
BETZtechnik 5:18c6ff1370d0 11 DigitalIn cw(P1_24);
BETZtechnik 5:18c6ff1370d0 12 DigitalIn ccw(P2_7);
BETZtechnik 5:18c6ff1370d0 13
BETZtechnik 5:18c6ff1370d0 14 int cwRequested = 0;
BETZtechnik 5:18c6ff1370d0 15 int ccwRequested = 0;
BETZtechnik 5:18c6ff1370d0 16
BETZtechnik 5:18c6ff1370d0 17 int aux1State = 0;
BETZtechnik 5:18c6ff1370d0 18
BETZtechnik 5:18c6ff1370d0 19
BETZtechnik 5:18c6ff1370d0 20 DigitalOut dir(P0_15);
BETZtechnik 5:18c6ff1370d0 21
BETZtechnik 8:6bb07a893f53 22 Serial display(P0_14, P0_13, 19200); // RS 485 TX RX?
BETZtechnik 8:6bb07a893f53 23 Serial inputs(P1_23,P0_20, 9600); //rs232 TX RX
BETZtechnik 8:6bb07a893f53 24
BETZtechnik 8:6bb07a893f53 25
BETZtechnik 21:db507362ca7a 26 int maxServo = 2500;
BETZtechnik 21:db507362ca7a 27 int minServo = 500;
BETZtechnik 22:a3ada529b264 28 reScale servo1Scale(90,-90,minServo,maxServo); //19850 is 1.0v from voltage divider at 10k.
BETZtechnik 0:09419d572e90 29
BETZtechnik 5:18c6ff1370d0 30 PwmOut servo1(P1_13); //display board
BETZtechnik 0:09419d572e90 31
BETZtechnik 2:79c03ac27b72 32 //char tens = '0';
BETZtechnik 2:79c03ac27b72 33 //char ones = '1';
BETZtechnik 0:09419d572e90 34
BETZtechnik 20:8aebc19d9d1d 35 int Hundreds = 0;
BETZtechnik 2:79c03ac27b72 36 int Tens = 0;
BETZtechnik 2:79c03ac27b72 37 int Ones = 0;
BETZtechnik 2:79c03ac27b72 38
BETZtechnik 20:8aebc19d9d1d 39 int twitch = 0;
BETZtechnik 21:db507362ca7a 40 int twitchStart=0;
BETZtechnik 21:db507362ca7a 41 int twitchDirection=0;
BETZtechnik 21:db507362ca7a 42 int lastTwitchMove = 0;
BETZtechnik 21:db507362ca7a 43 int maxTwitch = 0;
BETZtechnik 21:db507362ca7a 44 int minTwitch = 0;
BETZtechnik 22:a3ada529b264 45 int tReadMs = 10;
BETZtechnik 20:8aebc19d9d1d 46
BETZtechnik 2:79c03ac27b72 47 int currentNozzle = 0;
BETZtechnik 0:09419d572e90 48
BETZtechnik 2:79c03ac27b72 49 int index = 0; // for parsing serial
BETZtechnik 0:09419d572e90 50
BETZtechnik 2:79c03ac27b72 51 int n1Pos = 0;
BETZtechnik 0:09419d572e90 52
BETZtechnik 2:79c03ac27b72 53 int servo1Pos = 0;
BETZtechnik 21:db507362ca7a 54 int lastServo1Pos = 999;
BETZtechnik 0:09419d572e90 55
BETZtechnik 5:18c6ff1370d0 56
BETZtechnik 2:79c03ac27b72 57 DigitalOut servo2(P2_2);
BETZtechnik 0:09419d572e90 58
BETZtechnik 8:6bb07a893f53 59 /*
BETZtechnik 5:18c6ff1370d0 60 void triggered()
BETZtechnik 5:18c6ff1370d0 61 {
BETZtechnik 5:18c6ff1370d0 62 servo2 = 1;
BETZtechnik 5:18c6ff1370d0 63
BETZtechnik 5:18c6ff1370d0 64 if (cw == 0){
BETZtechnik 5:18c6ff1370d0 65 cwRequested = 1;
BETZtechnik 5:18c6ff1370d0 66 }
BETZtechnik 5:18c6ff1370d0 67
BETZtechnik 5:18c6ff1370d0 68 else if (ccw == 0){
BETZtechnik 5:18c6ff1370d0 69 ccwRequested = 1;
BETZtechnik 5:18c6ff1370d0 70 }
BETZtechnik 5:18c6ff1370d0 71
BETZtechnik 5:18c6ff1370d0 72 }
BETZtechnik 5:18c6ff1370d0 73
BETZtechnik 8:6bb07a893f53 74 */
BETZtechnik 5:18c6ff1370d0 75
BETZtechnik 21:db507362ca7a 76 Timer t;
BETZtechnik 5:18c6ff1370d0 77
BETZtechnik 0:09419d572e90 78 int main() {
BETZtechnik 4:fa0af3a8e089 79
BETZtechnik 5:18c6ff1370d0 80 cw.mode(PullUp);
BETZtechnik 5:18c6ff1370d0 81 ccw.mode(PullUp);
BETZtechnik 5:18c6ff1370d0 82 aux1.mode(PullUp);
BETZtechnik 2:79c03ac27b72 83
BETZtechnik 21:db507362ca7a 84 t.start();
BETZtechnik 8:6bb07a893f53 85
BETZtechnik 8:6bb07a893f53 86
BETZtechnik 5:18c6ff1370d0 87 //aux1.rise(&triggered);
BETZtechnik 5:18c6ff1370d0 88
BETZtechnik 5:18c6ff1370d0 89
BETZtechnik 5:18c6ff1370d0 90
BETZtechnik 5:18c6ff1370d0 91 servo2 = 0;
BETZtechnik 2:79c03ac27b72 92
BETZtechnik 2:79c03ac27b72 93
BETZtechnik 2:79c03ac27b72 94
BETZtechnik 2:79c03ac27b72 95 uint8_t c = 0; // for 485 link
BETZtechnik 0:09419d572e90 96
BETZtechnik 2:79c03ac27b72 97 while(1) {
BETZtechnik 21:db507362ca7a 98
BETZtechnik 20:8aebc19d9d1d 99
BETZtechnik 21:db507362ca7a 100 if (t.read() > 1200){
BETZtechnik 21:db507362ca7a 101 t.reset();
BETZtechnik 21:db507362ca7a 102 lastTwitchMove = t.read_ms();
BETZtechnik 21:db507362ca7a 103 }
BETZtechnik 20:8aebc19d9d1d 104
BETZtechnik 4:fa0af3a8e089 105
BETZtechnik 5:18c6ff1370d0 106 //************************************ Interrupt response **********************
BETZtechnik 8:6bb07a893f53 107
BETZtechnik 5:18c6ff1370d0 108
BETZtechnik 8:6bb07a893f53 109 if (aux1 == 0 && aux1State == 0)
BETZtechnik 5:18c6ff1370d0 110 {
BETZtechnik 5:18c6ff1370d0 111
BETZtechnik 8:6bb07a893f53 112 if (cw == 1)
BETZtechnik 5:18c6ff1370d0 113 {
BETZtechnik 5:18c6ff1370d0 114 //servo2 = 1;
BETZtechnik 5:18c6ff1370d0 115 dir= 1;
BETZtechnik 5:18c6ff1370d0 116 //wait(0.001);
BETZtechnik 8:6bb07a893f53 117 display.printf("M");
BETZtechnik 5:18c6ff1370d0 118 wait(0.05);
BETZtechnik 8:6bb07a893f53 119 display.printf("-");
BETZtechnik 5:18c6ff1370d0 120 wait(0.001);
BETZtechnik 5:18c6ff1370d0 121 dir=0;
BETZtechnik 5:18c6ff1370d0 122 aux1State = 1;
BETZtechnik 5:18c6ff1370d0 123 //wait(.001);
BETZtechnik 5:18c6ff1370d0 124 }
BETZtechnik 5:18c6ff1370d0 125
BETZtechnik 8:6bb07a893f53 126 if (ccw == 1)
BETZtechnik 5:18c6ff1370d0 127 {
BETZtechnik 5:18c6ff1370d0 128 dir= 1;
BETZtechnik 5:18c6ff1370d0 129 //wait(0.01);
BETZtechnik 8:6bb07a893f53 130 display.printf("M");
BETZtechnik 5:18c6ff1370d0 131 wait(0.05);
BETZtechnik 8:6bb07a893f53 132 display.printf("+");
BETZtechnik 5:18c6ff1370d0 133 wait(0.001);
BETZtechnik 5:18c6ff1370d0 134 dir=0;
BETZtechnik 5:18c6ff1370d0 135 aux1State = 1;
BETZtechnik 5:18c6ff1370d0 136 //wait(.001);
BETZtechnik 5:18c6ff1370d0 137 }
BETZtechnik 5:18c6ff1370d0 138 }
BETZtechnik 5:18c6ff1370d0 139
BETZtechnik 8:6bb07a893f53 140 if (aux1 == 1 && aux1State == 1)
BETZtechnik 5:18c6ff1370d0 141 {
BETZtechnik 5:18c6ff1370d0 142 aux1State = 0;
BETZtechnik 5:18c6ff1370d0 143 //wait(0.1);
BETZtechnik 5:18c6ff1370d0 144 }
BETZtechnik 4:fa0af3a8e089 145
BETZtechnik 20:8aebc19d9d1d 146
BETZtechnik 20:8aebc19d9d1d 147 //********************** Display code NEW with W **********************************
BETZtechnik 20:8aebc19d9d1d 148
BETZtechnik 20:8aebc19d9d1d 149 while (display.readable()) {
BETZtechnik 20:8aebc19d9d1d 150
BETZtechnik 20:8aebc19d9d1d 151 c = display.getc();
BETZtechnik 20:8aebc19d9d1d 152
BETZtechnik 20:8aebc19d9d1d 153 if (c == 'N') {
BETZtechnik 20:8aebc19d9d1d 154
BETZtechnik 20:8aebc19d9d1d 155 index = 1;
BETZtechnik 20:8aebc19d9d1d 156
BETZtechnik 20:8aebc19d9d1d 157 }
BETZtechnik 20:8aebc19d9d1d 158
BETZtechnik 20:8aebc19d9d1d 159 if (c == 'W') { // wiggle setting
BETZtechnik 20:8aebc19d9d1d 160 index = 5;
BETZtechnik 20:8aebc19d9d1d 161 }
BETZtechnik 20:8aebc19d9d1d 162 if (index == 5) {
BETZtechnik 20:8aebc19d9d1d 163 c = display.getc();
BETZtechnik 20:8aebc19d9d1d 164 if (c == '0') {
BETZtechnik 20:8aebc19d9d1d 165 twitch = 0;
BETZtechnik 20:8aebc19d9d1d 166 index = 0;
BETZtechnik 20:8aebc19d9d1d 167 }
BETZtechnik 20:8aebc19d9d1d 168 if (c == '1') {
BETZtechnik 20:8aebc19d9d1d 169 twitch = 1;
BETZtechnik 21:db507362ca7a 170 index = 0;
BETZtechnik 20:8aebc19d9d1d 171 }
BETZtechnik 20:8aebc19d9d1d 172 if (c == '2') {
BETZtechnik 20:8aebc19d9d1d 173 twitch = 2;
BETZtechnik 20:8aebc19d9d1d 174 index = 0;
BETZtechnik 20:8aebc19d9d1d 175 }
BETZtechnik 20:8aebc19d9d1d 176 if (c == '3') {
BETZtechnik 20:8aebc19d9d1d 177 twitch = 3;
BETZtechnik 20:8aebc19d9d1d 178 index = 0;
BETZtechnik 20:8aebc19d9d1d 179 }
BETZtechnik 20:8aebc19d9d1d 180 }
BETZtechnik 20:8aebc19d9d1d 181
BETZtechnik 20:8aebc19d9d1d 182
BETZtechnik 20:8aebc19d9d1d 183
BETZtechnik 20:8aebc19d9d1d 184
BETZtechnik 20:8aebc19d9d1d 185 if (index == 1) { //Display is sending -90>+90 and adding 190 for N1 so would send 100 to 280 for -90 to +90
BETZtechnik 20:8aebc19d9d1d 186 c = display.getc();
BETZtechnik 20:8aebc19d9d1d 187 if (c == '1') { // N1
BETZtechnik 20:8aebc19d9d1d 188 currentNozzle = 1;
BETZtechnik 20:8aebc19d9d1d 189 Hundreds = 0;
BETZtechnik 20:8aebc19d9d1d 190 index = 3;
BETZtechnik 20:8aebc19d9d1d 191
BETZtechnik 22:a3ada529b264 192 }
BETZtechnik 20:8aebc19d9d1d 193
BETZtechnik 22:a3ada529b264 194 else if (c == '2') { //N2
BETZtechnik 20:8aebc19d9d1d 195 currentNozzle = 1;
BETZtechnik 20:8aebc19d9d1d 196 Hundreds = 1;
BETZtechnik 20:8aebc19d9d1d 197 index = 3;
BETZtechnik 20:8aebc19d9d1d 198 }
BETZtechnik 20:8aebc19d9d1d 199
BETZtechnik 20:8aebc19d9d1d 200 if (c == '3') { //N2 // Display adding 390 for N2 so 300 to 480 would be -90 to +90
BETZtechnik 20:8aebc19d9d1d 201 currentNozzle = 2;
BETZtechnik 20:8aebc19d9d1d 202 Hundreds = 0;
BETZtechnik 20:8aebc19d9d1d 203 index = 3;
BETZtechnik 20:8aebc19d9d1d 204 }
BETZtechnik 20:8aebc19d9d1d 205
BETZtechnik 20:8aebc19d9d1d 206 if (c == '4') { //N2
BETZtechnik 20:8aebc19d9d1d 207 currentNozzle = 2;
BETZtechnik 20:8aebc19d9d1d 208 Hundreds = 1;
BETZtechnik 20:8aebc19d9d1d 209 index = 3;
BETZtechnik 20:8aebc19d9d1d 210 }
BETZtechnik 20:8aebc19d9d1d 211
BETZtechnik 20:8aebc19d9d1d 212
BETZtechnik 20:8aebc19d9d1d 213 }
BETZtechnik 20:8aebc19d9d1d 214
BETZtechnik 20:8aebc19d9d1d 215
BETZtechnik 20:8aebc19d9d1d 216
BETZtechnik 20:8aebc19d9d1d 217 if (index == 3) {
BETZtechnik 20:8aebc19d9d1d 218
BETZtechnik 20:8aebc19d9d1d 219 c = display.getc();
BETZtechnik 20:8aebc19d9d1d 220
BETZtechnik 20:8aebc19d9d1d 221 if (c=='0') {
BETZtechnik 20:8aebc19d9d1d 222 Tens = 0;
BETZtechnik 20:8aebc19d9d1d 223 index = 4;
BETZtechnik 20:8aebc19d9d1d 224
BETZtechnik 20:8aebc19d9d1d 225 }
BETZtechnik 20:8aebc19d9d1d 226
BETZtechnik 20:8aebc19d9d1d 227 else if (c=='1') {
BETZtechnik 20:8aebc19d9d1d 228 Tens = 1;
BETZtechnik 20:8aebc19d9d1d 229 index = 4;
BETZtechnik 20:8aebc19d9d1d 230
BETZtechnik 20:8aebc19d9d1d 231 }
BETZtechnik 20:8aebc19d9d1d 232
BETZtechnik 20:8aebc19d9d1d 233 else if (c=='2') {
BETZtechnik 20:8aebc19d9d1d 234 Tens = 2;
BETZtechnik 20:8aebc19d9d1d 235 index = 4;
BETZtechnik 20:8aebc19d9d1d 236
BETZtechnik 20:8aebc19d9d1d 237 }
BETZtechnik 20:8aebc19d9d1d 238
BETZtechnik 20:8aebc19d9d1d 239 else if (c=='3') {
BETZtechnik 20:8aebc19d9d1d 240 Tens = 3;
BETZtechnik 20:8aebc19d9d1d 241 index = 4;
BETZtechnik 20:8aebc19d9d1d 242
BETZtechnik 20:8aebc19d9d1d 243 }
BETZtechnik 20:8aebc19d9d1d 244
BETZtechnik 20:8aebc19d9d1d 245 else if (c=='4') {
BETZtechnik 20:8aebc19d9d1d 246 Tens = 4;
BETZtechnik 20:8aebc19d9d1d 247 index = 4;
BETZtechnik 20:8aebc19d9d1d 248 }
BETZtechnik 20:8aebc19d9d1d 249
BETZtechnik 20:8aebc19d9d1d 250 else if (c=='5') {
BETZtechnik 20:8aebc19d9d1d 251 Tens = 5;
BETZtechnik 20:8aebc19d9d1d 252 index = 4;
BETZtechnik 20:8aebc19d9d1d 253 }
BETZtechnik 20:8aebc19d9d1d 254
BETZtechnik 20:8aebc19d9d1d 255 else if (c=='6') {
BETZtechnik 20:8aebc19d9d1d 256 Tens = 6;
BETZtechnik 20:8aebc19d9d1d 257 index = 4;
BETZtechnik 20:8aebc19d9d1d 258 }
BETZtechnik 20:8aebc19d9d1d 259
BETZtechnik 20:8aebc19d9d1d 260 else if (c=='7') {
BETZtechnik 20:8aebc19d9d1d 261 Tens = 7;
BETZtechnik 20:8aebc19d9d1d 262 index = 4;
BETZtechnik 20:8aebc19d9d1d 263 }
BETZtechnik 20:8aebc19d9d1d 264
BETZtechnik 20:8aebc19d9d1d 265 else if (c=='8') {
BETZtechnik 20:8aebc19d9d1d 266 Tens = 8;
BETZtechnik 20:8aebc19d9d1d 267 index = 4;
BETZtechnik 20:8aebc19d9d1d 268 }
BETZtechnik 20:8aebc19d9d1d 269
BETZtechnik 20:8aebc19d9d1d 270 else if (c=='9') {
BETZtechnik 20:8aebc19d9d1d 271 Tens = 9;
BETZtechnik 20:8aebc19d9d1d 272 index = 4;
BETZtechnik 20:8aebc19d9d1d 273 }
BETZtechnik 20:8aebc19d9d1d 274
BETZtechnik 20:8aebc19d9d1d 275
BETZtechnik 20:8aebc19d9d1d 276 }
BETZtechnik 20:8aebc19d9d1d 277
BETZtechnik 20:8aebc19d9d1d 278 if (index == 4) {
BETZtechnik 20:8aebc19d9d1d 279
BETZtechnik 20:8aebc19d9d1d 280 c = display.getc();
BETZtechnik 20:8aebc19d9d1d 281
BETZtechnik 20:8aebc19d9d1d 282 if (c=='0') {
BETZtechnik 20:8aebc19d9d1d 283 Ones = 0;
BETZtechnik 20:8aebc19d9d1d 284 }
BETZtechnik 20:8aebc19d9d1d 285
BETZtechnik 20:8aebc19d9d1d 286 else if (c=='1') {
BETZtechnik 20:8aebc19d9d1d 287 Ones = 1;
BETZtechnik 20:8aebc19d9d1d 288 }
BETZtechnik 20:8aebc19d9d1d 289
BETZtechnik 20:8aebc19d9d1d 290 else if (c=='2') {
BETZtechnik 20:8aebc19d9d1d 291 Ones = 2;
BETZtechnik 20:8aebc19d9d1d 292 }
BETZtechnik 20:8aebc19d9d1d 293
BETZtechnik 20:8aebc19d9d1d 294 else if (c=='3') {
BETZtechnik 20:8aebc19d9d1d 295 Ones = 3;
BETZtechnik 20:8aebc19d9d1d 296 }
BETZtechnik 20:8aebc19d9d1d 297
BETZtechnik 20:8aebc19d9d1d 298 else if (c=='4') {
BETZtechnik 20:8aebc19d9d1d 299 Ones = 4;
BETZtechnik 20:8aebc19d9d1d 300 }
BETZtechnik 20:8aebc19d9d1d 301
BETZtechnik 20:8aebc19d9d1d 302 else if (c=='5') {
BETZtechnik 20:8aebc19d9d1d 303 Ones = 5;
BETZtechnik 20:8aebc19d9d1d 304 }
BETZtechnik 20:8aebc19d9d1d 305
BETZtechnik 20:8aebc19d9d1d 306 else if (c=='6') {
BETZtechnik 20:8aebc19d9d1d 307 Ones = 6;
BETZtechnik 20:8aebc19d9d1d 308 }
BETZtechnik 20:8aebc19d9d1d 309
BETZtechnik 20:8aebc19d9d1d 310 else if (c=='7') {
BETZtechnik 20:8aebc19d9d1d 311 Ones = 7;
BETZtechnik 20:8aebc19d9d1d 312 }
BETZtechnik 20:8aebc19d9d1d 313
BETZtechnik 20:8aebc19d9d1d 314 else if (c=='8') {
BETZtechnik 20:8aebc19d9d1d 315 Ones = 8;
BETZtechnik 20:8aebc19d9d1d 316 }
BETZtechnik 20:8aebc19d9d1d 317
BETZtechnik 20:8aebc19d9d1d 318 else if (c=='9') {
BETZtechnik 20:8aebc19d9d1d 319 Ones = 9;
BETZtechnik 20:8aebc19d9d1d 320 }
BETZtechnik 20:8aebc19d9d1d 321
BETZtechnik 21:db507362ca7a 322
BETZtechnik 21:db507362ca7a 323
BETZtechnik 21:db507362ca7a 324 if (currentNozzle == 1){
BETZtechnik 21:db507362ca7a 325 n1Pos = (((Hundreds *100) + (Tens *10) + Ones) - 90);
BETZtechnik 21:db507362ca7a 326 twitchStart = 0; // trigger sweep from new angle
BETZtechnik 21:db507362ca7a 327 servo1Pos = servo1Scale.from(n1Pos);
BETZtechnik 21:db507362ca7a 328 //servo1.pulsewidth_us(servo1Pos);
BETZtechnik 21:db507362ca7a 329 index=0;
BETZtechnik 21:db507362ca7a 330 }
BETZtechnik 21:db507362ca7a 331
BETZtechnik 21:db507362ca7a 332
BETZtechnik 21:db507362ca7a 333
BETZtechnik 21:db507362ca7a 334
BETZtechnik 20:8aebc19d9d1d 335 }
BETZtechnik 20:8aebc19d9d1d 336 }
BETZtechnik 21:db507362ca7a 337
BETZtechnik 21:db507362ca7a 338
BETZtechnik 21:db507362ca7a 339
BETZtechnik 21:db507362ca7a 340 if (twitch == 0) {
BETZtechnik 21:db507362ca7a 341 if (servo1Pos != lastServo1Pos) {
BETZtechnik 21:db507362ca7a 342 twitchStart = 0;
BETZtechnik 21:db507362ca7a 343 twitchDirection = 0;
BETZtechnik 21:db507362ca7a 344 servo1Pos = servo1Scale.from(n1Pos);
BETZtechnik 21:db507362ca7a 345 servo1.pulsewidth_us(servo1Pos);
BETZtechnik 21:db507362ca7a 346 //servo2Pos = servo2Scale.from(n2Pos);
BETZtechnik 21:db507362ca7a 347 //servo2.pulsewidth_us(servo2Pos);
BETZtechnik 21:db507362ca7a 348 lastServo1Pos = servo1Pos;
BETZtechnik 21:db507362ca7a 349 }
BETZtechnik 21:db507362ca7a 350 }
BETZtechnik 21:db507362ca7a 351
BETZtechnik 21:db507362ca7a 352 if (twitch > 0) {
BETZtechnik 21:db507362ca7a 353 if (twitchStart == 0) {
BETZtechnik 21:db507362ca7a 354 //tw.start(); // start timer for nozzle sweep
BETZtechnik 21:db507362ca7a 355 //servo1Pos = servo1Scale.from(n1Pos);
BETZtechnik 21:db507362ca7a 356 servo1.pulsewidth_us(servo1Pos);
BETZtechnik 21:db507362ca7a 357 lastTwitchMove = t.read_ms(); // store time of last nozzle movement
BETZtechnik 21:db507362ca7a 358 minTwitch = servo1Pos; // store original servo postion for bottom of sweep
BETZtechnik 21:db507362ca7a 359 if (twitch == 1) {
BETZtechnik 22:a3ada529b264 360 maxTwitch = servo1Pos - 100; // 11.11mS per degree of sweep, 55 = 5 degrees of sweep. This should be a viariable set on the display.
BETZtechnik 21:db507362ca7a 361 }
BETZtechnik 21:db507362ca7a 362 if (twitch == 2) {
BETZtechnik 22:a3ada529b264 363 maxTwitch = servo1Pos - 150;
BETZtechnik 21:db507362ca7a 364 }
BETZtechnik 21:db507362ca7a 365 if (twitch == 3) {
BETZtechnik 22:a3ada529b264 366 maxTwitch = servo1Pos - 200;
BETZtechnik 21:db507362ca7a 367 }
BETZtechnik 21:db507362ca7a 368 twitchStart = 1;
BETZtechnik 21:db507362ca7a 369
BETZtechnik 21:db507362ca7a 370 }
BETZtechnik 21:db507362ca7a 371 if ((twitchStart == 1) && (t.read_ms() > (lastTwitchMove + tReadMs))) {
BETZtechnik 21:db507362ca7a 372 if (twitchDirection == 0) { //going up
BETZtechnik 22:a3ada529b264 373 servo1Pos = servo1Pos - 10; // add variable amount of uS to the servo signal
BETZtechnik 21:db507362ca7a 374
BETZtechnik 22:a3ada529b264 375 if (servo1Pos < minServo) {
BETZtechnik 22:a3ada529b264 376 servo1Pos = minServo;
BETZtechnik 21:db507362ca7a 377 twitchDirection = 1; //reverse direction
BETZtechnik 21:db507362ca7a 378 }
BETZtechnik 22:a3ada529b264 379 if (servo1Pos < maxTwitch) {
BETZtechnik 21:db507362ca7a 380 servo1Pos = maxTwitch;
BETZtechnik 21:db507362ca7a 381 twitchDirection = 1; //reverse direction
BETZtechnik 21:db507362ca7a 382 }
BETZtechnik 21:db507362ca7a 383 lastTwitchMove = t.read_ms();
BETZtechnik 21:db507362ca7a 384 }
BETZtechnik 21:db507362ca7a 385
BETZtechnik 21:db507362ca7a 386 if (twitchDirection == 1) { // going down
BETZtechnik 22:a3ada529b264 387 servo1Pos = servo1Pos + 10; // add variable amount of Ms to the servo signal
BETZtechnik 22:a3ada529b264 388 if (servo1Pos > maxServo) {
BETZtechnik 22:a3ada529b264 389 servo1Pos = maxServo;
BETZtechnik 21:db507362ca7a 390 twitchDirection = 0; //reverse direction
BETZtechnik 21:db507362ca7a 391 }
BETZtechnik 22:a3ada529b264 392 if (servo1Pos > minTwitch) {
BETZtechnik 21:db507362ca7a 393 servo1Pos = minTwitch;
BETZtechnik 21:db507362ca7a 394 twitchDirection = 0; //reverse direction
BETZtechnik 21:db507362ca7a 395 }
BETZtechnik 21:db507362ca7a 396 lastTwitchMove = t.read_ms();
BETZtechnik 21:db507362ca7a 397 }
BETZtechnik 21:db507362ca7a 398 if (servo1Pos != lastServo1Pos) {
BETZtechnik 21:db507362ca7a 399 servo1.pulsewidth_us(servo1Pos);
BETZtechnik 21:db507362ca7a 400 lastServo1Pos = servo1Pos;
BETZtechnik 21:db507362ca7a 401 }
BETZtechnik 21:db507362ca7a 402 }
BETZtechnik 21:db507362ca7a 403
BETZtechnik 20:8aebc19d9d1d 404
BETZtechnik 20:8aebc19d9d1d 405
BETZtechnik 20:8aebc19d9d1d 406
BETZtechnik 21:db507362ca7a 407 }
BETZtechnik 0:09419d572e90 408
BETZtechnik 0:09419d572e90 409
BETZtechnik 8:6bb07a893f53 410 //********************************* Inputs serial *******************************
BETZtechnik 8:6bb07a893f53 411
BETZtechnik 8:6bb07a893f53 412
BETZtechnik 8:6bb07a893f53 413 while (inputs.readable())
BETZtechnik 8:6bb07a893f53 414 {
BETZtechnik 8:6bb07a893f53 415
BETZtechnik 8:6bb07a893f53 416
BETZtechnik 8:6bb07a893f53 417 c = inputs.getc();
BETZtechnik 8:6bb07a893f53 418
BETZtechnik 8:6bb07a893f53 419 if (c == 'T'){
BETZtechnik 8:6bb07a893f53 420
BETZtechnik 8:6bb07a893f53 421 index = 1;
BETZtechnik 8:6bb07a893f53 422 servo2=1;
BETZtechnik 8:6bb07a893f53 423 }
BETZtechnik 8:6bb07a893f53 424
BETZtechnik 8:6bb07a893f53 425
BETZtechnik 8:6bb07a893f53 426 if (index == 1){
BETZtechnik 8:6bb07a893f53 427 c = inputs.getc();
BETZtechnik 8:6bb07a893f53 428
BETZtechnik 8:6bb07a893f53 429
BETZtechnik 8:6bb07a893f53 430 if (c=='0'){
BETZtechnik 8:6bb07a893f53 431 Tens = 0;
BETZtechnik 8:6bb07a893f53 432 servo2=1;
BETZtechnik 8:6bb07a893f53 433 }
BETZtechnik 8:6bb07a893f53 434
BETZtechnik 8:6bb07a893f53 435 else if (c=='1'){
BETZtechnik 8:6bb07a893f53 436 Tens = 1;
BETZtechnik 8:6bb07a893f53 437
BETZtechnik 8:6bb07a893f53 438
BETZtechnik 8:6bb07a893f53 439 }
BETZtechnik 8:6bb07a893f53 440
BETZtechnik 8:6bb07a893f53 441 else if (c=='2'){
BETZtechnik 8:6bb07a893f53 442 Tens = 2;
BETZtechnik 8:6bb07a893f53 443
BETZtechnik 8:6bb07a893f53 444 }
BETZtechnik 8:6bb07a893f53 445
BETZtechnik 8:6bb07a893f53 446 else if (c=='3'){
BETZtechnik 8:6bb07a893f53 447 Tens = 3;
BETZtechnik 8:6bb07a893f53 448
BETZtechnik 8:6bb07a893f53 449 }
BETZtechnik 8:6bb07a893f53 450
BETZtechnik 8:6bb07a893f53 451 else if (c=='4'){
BETZtechnik 8:6bb07a893f53 452 Tens = 4;
BETZtechnik 8:6bb07a893f53 453 }
BETZtechnik 8:6bb07a893f53 454
BETZtechnik 8:6bb07a893f53 455 else if (c=='5'){
BETZtechnik 8:6bb07a893f53 456 Tens = 5;
BETZtechnik 8:6bb07a893f53 457 }
BETZtechnik 8:6bb07a893f53 458
BETZtechnik 8:6bb07a893f53 459 else if (c=='6'){
BETZtechnik 8:6bb07a893f53 460 Tens = 6;
BETZtechnik 8:6bb07a893f53 461 }
BETZtechnik 8:6bb07a893f53 462
BETZtechnik 8:6bb07a893f53 463 else if (c=='7'){
BETZtechnik 8:6bb07a893f53 464 Tens = 7;
BETZtechnik 8:6bb07a893f53 465 }
BETZtechnik 8:6bb07a893f53 466
BETZtechnik 8:6bb07a893f53 467 else if (c=='8'){
BETZtechnik 8:6bb07a893f53 468 Tens = 8;
BETZtechnik 8:6bb07a893f53 469 }
BETZtechnik 8:6bb07a893f53 470
BETZtechnik 8:6bb07a893f53 471 else if (c=='9'){
BETZtechnik 8:6bb07a893f53 472 Tens = 9;
BETZtechnik 8:6bb07a893f53 473 }
BETZtechnik 8:6bb07a893f53 474
BETZtechnik 8:6bb07a893f53 475 else if (c=='0'){
BETZtechnik 8:6bb07a893f53 476 Tens = 0;
BETZtechnik 8:6bb07a893f53 477 }
BETZtechnik 8:6bb07a893f53 478 index = 2;
BETZtechnik 8:6bb07a893f53 479 }
BETZtechnik 8:6bb07a893f53 480
BETZtechnik 8:6bb07a893f53 481
BETZtechnik 8:6bb07a893f53 482 if (index == 2){
BETZtechnik 8:6bb07a893f53 483 c = inputs.getc();
BETZtechnik 8:6bb07a893f53 484 if (c=='0'){
BETZtechnik 8:6bb07a893f53 485 Ones = 0;
BETZtechnik 8:6bb07a893f53 486
BETZtechnik 8:6bb07a893f53 487 }
BETZtechnik 8:6bb07a893f53 488
BETZtechnik 8:6bb07a893f53 489 else if (c=='1'){
BETZtechnik 8:6bb07a893f53 490 Ones = 1;
BETZtechnik 8:6bb07a893f53 491
BETZtechnik 8:6bb07a893f53 492
BETZtechnik 8:6bb07a893f53 493 }
BETZtechnik 8:6bb07a893f53 494
BETZtechnik 8:6bb07a893f53 495 else if (c=='2'){
BETZtechnik 8:6bb07a893f53 496 Ones = 2;
BETZtechnik 8:6bb07a893f53 497
BETZtechnik 8:6bb07a893f53 498 }
BETZtechnik 8:6bb07a893f53 499
BETZtechnik 8:6bb07a893f53 500 else if (c=='3'){
BETZtechnik 8:6bb07a893f53 501 Ones = 3;
BETZtechnik 8:6bb07a893f53 502
BETZtechnik 8:6bb07a893f53 503 }
BETZtechnik 8:6bb07a893f53 504
BETZtechnik 8:6bb07a893f53 505 else if (c=='4'){
BETZtechnik 8:6bb07a893f53 506 Ones = 4;
BETZtechnik 8:6bb07a893f53 507 }
BETZtechnik 8:6bb07a893f53 508
BETZtechnik 8:6bb07a893f53 509 else if (c=='5'){
BETZtechnik 8:6bb07a893f53 510 Ones = 5;
BETZtechnik 8:6bb07a893f53 511 }
BETZtechnik 8:6bb07a893f53 512
BETZtechnik 8:6bb07a893f53 513 else if (c=='6'){
BETZtechnik 8:6bb07a893f53 514 Ones = 6;
BETZtechnik 8:6bb07a893f53 515 }
BETZtechnik 8:6bb07a893f53 516
BETZtechnik 8:6bb07a893f53 517 else if (c=='7'){
BETZtechnik 8:6bb07a893f53 518 Ones = 7;
BETZtechnik 8:6bb07a893f53 519 }
BETZtechnik 8:6bb07a893f53 520
BETZtechnik 8:6bb07a893f53 521 else if (c=='8'){
BETZtechnik 8:6bb07a893f53 522 Ones = 8;
BETZtechnik 8:6bb07a893f53 523 }
BETZtechnik 8:6bb07a893f53 524
BETZtechnik 8:6bb07a893f53 525 else if (c=='9'){
BETZtechnik 8:6bb07a893f53 526 Ones = 9;
BETZtechnik 8:6bb07a893f53 527 }
BETZtechnik 8:6bb07a893f53 528
BETZtechnik 8:6bb07a893f53 529 else if (c=='0'){
BETZtechnik 8:6bb07a893f53 530 Ones = 0;
BETZtechnik 8:6bb07a893f53 531 }
BETZtechnik 8:6bb07a893f53 532 int tempToolNo = (Tens*10)+100+Ones;
BETZtechnik 8:6bb07a893f53 533 dir=1;
BETZtechnik 8:6bb07a893f53 534 display.printf("T");
BETZtechnik 8:6bb07a893f53 535 wait(0.05);
BETZtechnik 8:6bb07a893f53 536 display.printf("%d", tempToolNo);
BETZtechnik 8:6bb07a893f53 537 wait(0.001);
BETZtechnik 8:6bb07a893f53 538 dir=0;
BETZtechnik 8:6bb07a893f53 539 index = 0;
BETZtechnik 8:6bb07a893f53 540 tempToolNo=0;
BETZtechnik 8:6bb07a893f53 541
BETZtechnik 8:6bb07a893f53 542 }
BETZtechnik 8:6bb07a893f53 543
BETZtechnik 8:6bb07a893f53 544
BETZtechnik 8:6bb07a893f53 545 }
BETZtechnik 8:6bb07a893f53 546
BETZtechnik 8:6bb07a893f53 547
BETZtechnik 8:6bb07a893f53 548 // *****************************************************************************
BETZtechnik 5:18c6ff1370d0 549
BETZtechnik 0:09419d572e90 550
BETZtechnik 2:79c03ac27b72 551
BETZtechnik 2:79c03ac27b72 552 }
BETZtechnik 2:79c03ac27b72 553 }