Remote inc coolant nozzle control program

Dependencies:   mbed reScale USBDevice

Dependents:   Nozzle_inputs Nozzle_display

Committer:
BETZtechnik
Date:
Fri Feb 08 20:51:59 2019 +0000
Revision:
2:79c03ac27b72
Parent:
0:09419d572e90
Child:
4:fa0af3a8e089
RS485 working

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 2:79c03ac27b72 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 2:79c03ac27b72 44
BETZtechnik 2:79c03ac27b72 45 while (device.readable())
BETZtechnik 2:79c03ac27b72 46 {
BETZtechnik 2:79c03ac27b72 47 // c = device.getc();
BETZtechnik 2:79c03ac27b72 48 // if(c =='1'){
BETZtechnik 2:79c03ac27b72 49 // servo1=1;
BETZtechnik 2:79c03ac27b72 50 // }
BETZtechnik 2:79c03ac27b72 51
BETZtechnik 0:09419d572e90 52
BETZtechnik 2:79c03ac27b72 53
BETZtechnik 2:79c03ac27b72 54 c = device.getc();
BETZtechnik 2:79c03ac27b72 55
BETZtechnik 2:79c03ac27b72 56 if (c == 'N'){
BETZtechnik 2:79c03ac27b72 57
BETZtechnik 2:79c03ac27b72 58 index = 1;
BETZtechnik 2:79c03ac27b72 59
BETZtechnik 2:79c03ac27b72 60 }
BETZtechnik 2:79c03ac27b72 61
BETZtechnik 2:79c03ac27b72 62 if (index == 1){
BETZtechnik 2:79c03ac27b72 63 c = device.getc();
BETZtechnik 2:79c03ac27b72 64 if (c == '1'){ // N1
BETZtechnik 2:79c03ac27b72 65 currentNozzle = 1;
BETZtechnik 2:79c03ac27b72 66 index = 3;
BETZtechnik 2:79c03ac27b72 67
BETZtechnik 2:79c03ac27b72 68
BETZtechnik 2:79c03ac27b72 69 }
BETZtechnik 2:79c03ac27b72 70 else if (c == '2'){ //N2
BETZtechnik 2:79c03ac27b72 71 currentNozzle = 2;
BETZtechnik 2:79c03ac27b72 72 index = 3;
BETZtechnik 2:79c03ac27b72 73
BETZtechnik 2:79c03ac27b72 74 }
BETZtechnik 2:79c03ac27b72 75
BETZtechnik 2:79c03ac27b72 76 }
BETZtechnik 2:79c03ac27b72 77
BETZtechnik 0:09419d572e90 78
BETZtechnik 2:79c03ac27b72 79
BETZtechnik 2:79c03ac27b72 80 if (index == 3){
BETZtechnik 2:79c03ac27b72 81
BETZtechnik 2:79c03ac27b72 82 c = device.getc();
BETZtechnik 2:79c03ac27b72 83
BETZtechnik 2:79c03ac27b72 84 if (c=='0'){
BETZtechnik 2:79c03ac27b72 85 Tens = 0;
BETZtechnik 2:79c03ac27b72 86 index = 4;
BETZtechnik 2:79c03ac27b72 87
BETZtechnik 2:79c03ac27b72 88 }
BETZtechnik 2:79c03ac27b72 89
BETZtechnik 2:79c03ac27b72 90 else if (c=='1'){
BETZtechnik 2:79c03ac27b72 91 Tens = 1;
BETZtechnik 2:79c03ac27b72 92 index = 4;
BETZtechnik 2:79c03ac27b72 93
BETZtechnik 2:79c03ac27b72 94 }
BETZtechnik 2:79c03ac27b72 95
BETZtechnik 2:79c03ac27b72 96 else if (c=='2'){
BETZtechnik 2:79c03ac27b72 97 Tens = 2;
BETZtechnik 2:79c03ac27b72 98 index = 4;
BETZtechnik 2:79c03ac27b72 99
BETZtechnik 2:79c03ac27b72 100 }
BETZtechnik 2:79c03ac27b72 101
BETZtechnik 2:79c03ac27b72 102 else if (c=='3'){
BETZtechnik 2:79c03ac27b72 103 Tens = 3;
BETZtechnik 2:79c03ac27b72 104 index = 4;
BETZtechnik 2:79c03ac27b72 105
BETZtechnik 2:79c03ac27b72 106 }
BETZtechnik 2:79c03ac27b72 107
BETZtechnik 2:79c03ac27b72 108 else if (c=='4'){
BETZtechnik 2:79c03ac27b72 109 Tens = 4;
BETZtechnik 2:79c03ac27b72 110 index = 4;
BETZtechnik 2:79c03ac27b72 111 }
BETZtechnik 2:79c03ac27b72 112
BETZtechnik 2:79c03ac27b72 113
BETZtechnik 2:79c03ac27b72 114 }
BETZtechnik 2:79c03ac27b72 115
BETZtechnik 2:79c03ac27b72 116 if (index == 4){
BETZtechnik 2:79c03ac27b72 117
BETZtechnik 2:79c03ac27b72 118 c = device.getc();
BETZtechnik 2:79c03ac27b72 119
BETZtechnik 2:79c03ac27b72 120 if (c=='0'){
BETZtechnik 2:79c03ac27b72 121 Ones = 0;
BETZtechnik 2:79c03ac27b72 122
BETZtechnik 2:79c03ac27b72 123 }
BETZtechnik 2:79c03ac27b72 124
BETZtechnik 2:79c03ac27b72 125 else if (c=='1'){
BETZtechnik 2:79c03ac27b72 126 Ones = 1;
BETZtechnik 2:79c03ac27b72 127
BETZtechnik 2:79c03ac27b72 128
BETZtechnik 2:79c03ac27b72 129 }
BETZtechnik 2:79c03ac27b72 130
BETZtechnik 2:79c03ac27b72 131 else if (c=='2'){
BETZtechnik 2:79c03ac27b72 132 Ones = 2;
BETZtechnik 2:79c03ac27b72 133
BETZtechnik 2:79c03ac27b72 134 }
BETZtechnik 2:79c03ac27b72 135
BETZtechnik 2:79c03ac27b72 136 else if (c=='3'){
BETZtechnik 2:79c03ac27b72 137 Ones = 3;
BETZtechnik 2:79c03ac27b72 138
BETZtechnik 2:79c03ac27b72 139 }
BETZtechnik 2:79c03ac27b72 140
BETZtechnik 2:79c03ac27b72 141 else if (c=='4'){
BETZtechnik 2:79c03ac27b72 142 Ones = 4;
BETZtechnik 2:79c03ac27b72 143 }
BETZtechnik 2:79c03ac27b72 144
BETZtechnik 2:79c03ac27b72 145 else if (c=='5'){
BETZtechnik 2:79c03ac27b72 146 Ones = 5;
BETZtechnik 2:79c03ac27b72 147 }
BETZtechnik 2:79c03ac27b72 148
BETZtechnik 2:79c03ac27b72 149 else if (c=='6'){
BETZtechnik 2:79c03ac27b72 150 Ones = 6;
BETZtechnik 2:79c03ac27b72 151 }
BETZtechnik 2:79c03ac27b72 152
BETZtechnik 2:79c03ac27b72 153 else if (c=='7'){
BETZtechnik 2:79c03ac27b72 154 Ones = 7;
BETZtechnik 2:79c03ac27b72 155 }
BETZtechnik 2:79c03ac27b72 156
BETZtechnik 2:79c03ac27b72 157 else if (c=='8'){
BETZtechnik 2:79c03ac27b72 158 Ones = 8;
BETZtechnik 2:79c03ac27b72 159 }
BETZtechnik 2:79c03ac27b72 160
BETZtechnik 2:79c03ac27b72 161 else if (c=='9'){
BETZtechnik 2:79c03ac27b72 162 Ones = 9;
BETZtechnik 2:79c03ac27b72 163 }
BETZtechnik 2:79c03ac27b72 164
BETZtechnik 2:79c03ac27b72 165 else if (c=='0'){
BETZtechnik 2:79c03ac27b72 166 Ones = 0;
BETZtechnik 2:79c03ac27b72 167 }
BETZtechnik 2:79c03ac27b72 168
BETZtechnik 2:79c03ac27b72 169
BETZtechnik 2:79c03ac27b72 170
BETZtechnik 2:79c03ac27b72 171 n1Pos = ((Tens * 10) + Ones);
BETZtechnik 2:79c03ac27b72 172
BETZtechnik 2:79c03ac27b72 173 if ((n1Pos == 45) && (currentNozzle==1)){
BETZtechnik 2:79c03ac27b72 174 servo2=1;
BETZtechnik 2:79c03ac27b72 175 }
BETZtechnik 2:79c03ac27b72 176
BETZtechnik 2:79c03ac27b72 177 servo1Pos = servo1Scale.from(n1Pos);
BETZtechnik 0:09419d572e90 178
BETZtechnik 2:79c03ac27b72 179 myServo.pulsewidth_us(servo1Pos);
BETZtechnik 2:79c03ac27b72 180
BETZtechnik 2:79c03ac27b72 181 index=0;
BETZtechnik 2:79c03ac27b72 182
BETZtechnik 2:79c03ac27b72 183
BETZtechnik 2:79c03ac27b72 184 }
BETZtechnik 0:09419d572e90 185 }
BETZtechnik 0:09419d572e90 186
BETZtechnik 0:09419d572e90 187
BETZtechnik 0:09419d572e90 188
BETZtechnik 2:79c03ac27b72 189
BETZtechnik 2:79c03ac27b72 190 }
BETZtechnik 2:79c03ac27b72 191 }