Remote inc coolant nozzle control program
Dependencies: mbed reScale USBDevice
Dependents: Nozzle_inputs Nozzle_display
main.cpp@2:79c03ac27b72, 2019-02-08 (annotated)
- 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?
User | Revision | Line number | New 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 | } |