Remote inc coolant nozzle control program

Dependencies:   mbed reScale USBDevice

Dependents:   Nozzle_inputs Nozzle_display

Committer:
BETZtechnik
Date:
Sat Feb 09 23:46:05 2019 +0000
Revision:
4:fa0af3a8e089
Parent:
2:79c03ac27b72
Child:
5:18c6ff1370d0
pulse data from inputs to display

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 0:09419d572e90 8
BETZtechnik 2:79c03ac27b72 9 Serial device(P0_14, P0_13, 9600); // RS 485 TX RX?
BETZtechnik 2:79c03ac27b72 10
BETZtechnik 2:79c03ac27b72 11 reScale servo1Scale(45,0,750,1800); //19850 is 1.0v from voltage divider at 10k.
BETZtechnik 0:09419d572e90 12
BETZtechnik 2:79c03ac27b72 13 PwmOut myServo(P1_13); //display board
BETZtechnik 0:09419d572e90 14
BETZtechnik 2:79c03ac27b72 15 //char tens = '0';
BETZtechnik 2:79c03ac27b72 16 //char ones = '1';
BETZtechnik 0:09419d572e90 17
BETZtechnik 2:79c03ac27b72 18 int Tens = 0;
BETZtechnik 2:79c03ac27b72 19 int Ones = 0;
BETZtechnik 2:79c03ac27b72 20
BETZtechnik 2:79c03ac27b72 21 int currentNozzle = 0;
BETZtechnik 0:09419d572e90 22
BETZtechnik 2:79c03ac27b72 23 int index = 0; // for parsing serial
BETZtechnik 0:09419d572e90 24
BETZtechnik 2:79c03ac27b72 25 int n1Pos = 0;
BETZtechnik 0:09419d572e90 26
BETZtechnik 2:79c03ac27b72 27 int servo1Pos = 0;
BETZtechnik 0:09419d572e90 28
BETZtechnik 2:79c03ac27b72 29 DigitalOut dir(P0_15);
BETZtechnik 2:79c03ac27b72 30 DigitalOut servo2(P2_2);
BETZtechnik 0:09419d572e90 31
BETZtechnik 0:09419d572e90 32
BETZtechnik 0:09419d572e90 33 int main() {
BETZtechnik 4:fa0af3a8e089 34
BETZtechnik 2:79c03ac27b72 35
BETZtechnik 0:09419d572e90 36
BETZtechnik 2:79c03ac27b72 37 //pc.printf("HELLO WORLD\n");
BETZtechnik 2:79c03ac27b72 38
BETZtechnik 2:79c03ac27b72 39
BETZtechnik 2:79c03ac27b72 40
BETZtechnik 2:79c03ac27b72 41 uint8_t c = 0; // for 485 link
BETZtechnik 0:09419d572e90 42
BETZtechnik 2:79c03ac27b72 43 while(1) {
BETZtechnik 4:fa0af3a8e089 44
BETZtechnik 4:fa0af3a8e089 45
BETZtechnik 2:79c03ac27b72 46
BETZtechnik 2:79c03ac27b72 47 while (device.readable())
BETZtechnik 2:79c03ac27b72 48 {
BETZtechnik 2:79c03ac27b72 49 // c = device.getc();
BETZtechnik 2:79c03ac27b72 50 // if(c =='1'){
BETZtechnik 2:79c03ac27b72 51 // servo1=1;
BETZtechnik 2:79c03ac27b72 52 // }
BETZtechnik 2:79c03ac27b72 53
BETZtechnik 0:09419d572e90 54
BETZtechnik 2:79c03ac27b72 55
BETZtechnik 2:79c03ac27b72 56 c = device.getc();
BETZtechnik 2:79c03ac27b72 57
BETZtechnik 2:79c03ac27b72 58 if (c == 'N'){
BETZtechnik 2:79c03ac27b72 59
BETZtechnik 2:79c03ac27b72 60 index = 1;
BETZtechnik 2:79c03ac27b72 61
BETZtechnik 2:79c03ac27b72 62 }
BETZtechnik 2:79c03ac27b72 63
BETZtechnik 2:79c03ac27b72 64 if (index == 1){
BETZtechnik 2:79c03ac27b72 65 c = device.getc();
BETZtechnik 2:79c03ac27b72 66 if (c == '1'){ // N1
BETZtechnik 2:79c03ac27b72 67 currentNozzle = 1;
BETZtechnik 2:79c03ac27b72 68 index = 3;
BETZtechnik 2:79c03ac27b72 69
BETZtechnik 2:79c03ac27b72 70
BETZtechnik 2:79c03ac27b72 71 }
BETZtechnik 2:79c03ac27b72 72 else if (c == '2'){ //N2
BETZtechnik 2:79c03ac27b72 73 currentNozzle = 2;
BETZtechnik 2:79c03ac27b72 74 index = 3;
BETZtechnik 2:79c03ac27b72 75
BETZtechnik 2:79c03ac27b72 76 }
BETZtechnik 2:79c03ac27b72 77
BETZtechnik 2:79c03ac27b72 78 }
BETZtechnik 2:79c03ac27b72 79
BETZtechnik 0:09419d572e90 80
BETZtechnik 2:79c03ac27b72 81
BETZtechnik 2:79c03ac27b72 82 if (index == 3){
BETZtechnik 2:79c03ac27b72 83
BETZtechnik 2:79c03ac27b72 84 c = device.getc();
BETZtechnik 2:79c03ac27b72 85
BETZtechnik 2:79c03ac27b72 86 if (c=='0'){
BETZtechnik 2:79c03ac27b72 87 Tens = 0;
BETZtechnik 2:79c03ac27b72 88 index = 4;
BETZtechnik 2:79c03ac27b72 89
BETZtechnik 2:79c03ac27b72 90 }
BETZtechnik 2:79c03ac27b72 91
BETZtechnik 2:79c03ac27b72 92 else if (c=='1'){
BETZtechnik 2:79c03ac27b72 93 Tens = 1;
BETZtechnik 2:79c03ac27b72 94 index = 4;
BETZtechnik 2:79c03ac27b72 95
BETZtechnik 2:79c03ac27b72 96 }
BETZtechnik 2:79c03ac27b72 97
BETZtechnik 2:79c03ac27b72 98 else if (c=='2'){
BETZtechnik 2:79c03ac27b72 99 Tens = 2;
BETZtechnik 2:79c03ac27b72 100 index = 4;
BETZtechnik 2:79c03ac27b72 101
BETZtechnik 2:79c03ac27b72 102 }
BETZtechnik 2:79c03ac27b72 103
BETZtechnik 2:79c03ac27b72 104 else if (c=='3'){
BETZtechnik 2:79c03ac27b72 105 Tens = 3;
BETZtechnik 2:79c03ac27b72 106 index = 4;
BETZtechnik 2:79c03ac27b72 107
BETZtechnik 2:79c03ac27b72 108 }
BETZtechnik 2:79c03ac27b72 109
BETZtechnik 2:79c03ac27b72 110 else if (c=='4'){
BETZtechnik 2:79c03ac27b72 111 Tens = 4;
BETZtechnik 2:79c03ac27b72 112 index = 4;
BETZtechnik 2:79c03ac27b72 113 }
BETZtechnik 2:79c03ac27b72 114
BETZtechnik 2:79c03ac27b72 115
BETZtechnik 2:79c03ac27b72 116 }
BETZtechnik 2:79c03ac27b72 117
BETZtechnik 2:79c03ac27b72 118 if (index == 4){
BETZtechnik 2:79c03ac27b72 119
BETZtechnik 2:79c03ac27b72 120 c = device.getc();
BETZtechnik 2:79c03ac27b72 121
BETZtechnik 2:79c03ac27b72 122 if (c=='0'){
BETZtechnik 2:79c03ac27b72 123 Ones = 0;
BETZtechnik 2:79c03ac27b72 124
BETZtechnik 2:79c03ac27b72 125 }
BETZtechnik 2:79c03ac27b72 126
BETZtechnik 2:79c03ac27b72 127 else if (c=='1'){
BETZtechnik 2:79c03ac27b72 128 Ones = 1;
BETZtechnik 2:79c03ac27b72 129
BETZtechnik 2:79c03ac27b72 130
BETZtechnik 2:79c03ac27b72 131 }
BETZtechnik 2:79c03ac27b72 132
BETZtechnik 2:79c03ac27b72 133 else if (c=='2'){
BETZtechnik 2:79c03ac27b72 134 Ones = 2;
BETZtechnik 2:79c03ac27b72 135
BETZtechnik 2:79c03ac27b72 136 }
BETZtechnik 2:79c03ac27b72 137
BETZtechnik 2:79c03ac27b72 138 else if (c=='3'){
BETZtechnik 2:79c03ac27b72 139 Ones = 3;
BETZtechnik 2:79c03ac27b72 140
BETZtechnik 2:79c03ac27b72 141 }
BETZtechnik 2:79c03ac27b72 142
BETZtechnik 2:79c03ac27b72 143 else if (c=='4'){
BETZtechnik 2:79c03ac27b72 144 Ones = 4;
BETZtechnik 2:79c03ac27b72 145 }
BETZtechnik 2:79c03ac27b72 146
BETZtechnik 2:79c03ac27b72 147 else if (c=='5'){
BETZtechnik 2:79c03ac27b72 148 Ones = 5;
BETZtechnik 2:79c03ac27b72 149 }
BETZtechnik 2:79c03ac27b72 150
BETZtechnik 2:79c03ac27b72 151 else if (c=='6'){
BETZtechnik 2:79c03ac27b72 152 Ones = 6;
BETZtechnik 2:79c03ac27b72 153 }
BETZtechnik 2:79c03ac27b72 154
BETZtechnik 2:79c03ac27b72 155 else if (c=='7'){
BETZtechnik 2:79c03ac27b72 156 Ones = 7;
BETZtechnik 2:79c03ac27b72 157 }
BETZtechnik 2:79c03ac27b72 158
BETZtechnik 2:79c03ac27b72 159 else if (c=='8'){
BETZtechnik 2:79c03ac27b72 160 Ones = 8;
BETZtechnik 2:79c03ac27b72 161 }
BETZtechnik 2:79c03ac27b72 162
BETZtechnik 2:79c03ac27b72 163 else if (c=='9'){
BETZtechnik 2:79c03ac27b72 164 Ones = 9;
BETZtechnik 2:79c03ac27b72 165 }
BETZtechnik 2:79c03ac27b72 166
BETZtechnik 2:79c03ac27b72 167 else if (c=='0'){
BETZtechnik 2:79c03ac27b72 168 Ones = 0;
BETZtechnik 2:79c03ac27b72 169 }
BETZtechnik 2:79c03ac27b72 170
BETZtechnik 2:79c03ac27b72 171
BETZtechnik 2:79c03ac27b72 172
BETZtechnik 2:79c03ac27b72 173 n1Pos = ((Tens * 10) + Ones);
BETZtechnik 2:79c03ac27b72 174
BETZtechnik 2:79c03ac27b72 175 if ((n1Pos == 45) && (currentNozzle==1)){
BETZtechnik 2:79c03ac27b72 176 servo2=1;
BETZtechnik 2:79c03ac27b72 177 }
BETZtechnik 2:79c03ac27b72 178
BETZtechnik 2:79c03ac27b72 179 servo1Pos = servo1Scale.from(n1Pos);
BETZtechnik 0:09419d572e90 180
BETZtechnik 2:79c03ac27b72 181 myServo.pulsewidth_us(servo1Pos);
BETZtechnik 2:79c03ac27b72 182
BETZtechnik 2:79c03ac27b72 183 index=0;
BETZtechnik 2:79c03ac27b72 184
BETZtechnik 2:79c03ac27b72 185
BETZtechnik 2:79c03ac27b72 186 }
BETZtechnik 0:09419d572e90 187 }
BETZtechnik 0:09419d572e90 188
BETZtechnik 0:09419d572e90 189
BETZtechnik 4:fa0af3a8e089 190 dir= 1;
BETZtechnik 4:fa0af3a8e089 191 wait(0.1);
BETZtechnik 4:fa0af3a8e089 192 device.printf("M-");
BETZtechnik 4:fa0af3a8e089 193 //device.printf("0");
BETZtechnik 4:fa0af3a8e089 194 dir=0;
BETZtechnik 0:09419d572e90 195
BETZtechnik 2:79c03ac27b72 196
BETZtechnik 2:79c03ac27b72 197 }
BETZtechnik 2:79c03ac27b72 198 }