Remote inc coolant nozzle control program

Dependencies:   mbed reScale USBDevice

Dependents:   Nozzle_inputs Nozzle_display

Committer:
BETZtechnik
Date:
Fri Feb 08 20:50:00 2019 +0000
Revision:
1:e8452b75301e
Parent:
0:09419d572e90
Child:
3:bbbacfd62773
rs485 working from display to inputs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
BETZtechnik 0:09419d572e90 1 #include "mbed.h"
BETZtechnik 0:09419d572e90 2 #include "Adafruit_ST7735.h"
BETZtechnik 1:e8452b75301e 3 #include "RPG.h"
BETZtechnik 0:09419d572e90 4 #include "reScale.h"
BETZtechnik 0:09419d572e90 5 #include "Ee24xx08.h"
BETZtechnik 0:09419d572e90 6
BETZtechnik 0:09419d572e90 7
BETZtechnik 0:09419d572e90 8 // DISPLAY INIT:
BETZtechnik 0:09419d572e90 9
BETZtechnik 0:09419d572e90 10 #define BLACK 0x0000
BETZtechnik 0:09419d572e90 11 #define BLUE 0x001F
BETZtechnik 0:09419d572e90 12 #define RED 0xF800
BETZtechnik 0:09419d572e90 13 #define GREEN 0x07E0
BETZtechnik 0:09419d572e90 14 #define CYAN 0x07FF
BETZtechnik 0:09419d572e90 15 #define MAGENTA 0xF81F
BETZtechnik 0:09419d572e90 16 #define YELLOW 0xFFE0
BETZtechnik 0:09419d572e90 17 #define WHITE 0xFFFF
BETZtechnik 0:09419d572e90 18
BETZtechnik 1:e8452b75301e 19 #define currentToolAddress 51
BETZtechnik 1:e8452b75301e 20 #define numToolsAddress 52
BETZtechnik 1:e8452b75301e 21 #define numNozAddress 53
BETZtechnik 0:09419d572e90 22
BETZtechnik 0:09419d572e90 23
BETZtechnik 1:e8452b75301e 24 //DigitalOut myled(P1_13);
BETZtechnik 1:e8452b75301e 25
BETZtechnik 0:09419d572e90 26
BETZtechnik 0:09419d572e90 27 I2C iic(P0_5, P0_4);
BETZtechnik 1:e8452b75301e 28 Serial device(P0_14, P0_13, 9600); // RS 485 TX RX?
BETZtechnik 1:e8452b75301e 29
BETZtechnik 1:e8452b75301e 30 DigitalOut dir(P0_21);
BETZtechnik 1:e8452b75301e 31
BETZtechnik 0:09419d572e90 32
BETZtechnik 0:09419d572e90 33 Ee24xx08 eeprom(&iic);
BETZtechnik 0:09419d572e90 34
BETZtechnik 1:e8452b75301e 35 Adafruit_ST7735 tft(P0_9, P0_8, P0_6, P0_2, P0_22, P0_7); // MOSI, MISO, SCLK, SSEL, TFT_DC, TFT_RST
BETZtechnik 0:09419d572e90 36
BETZtechnik 0:09419d572e90 37 reScale servo1Scale(-45,0,750,1800); //19850 is 1.0v from voltage divider at 10k.
BETZtechnik 0:09419d572e90 38
BETZtechnik 1:e8452b75301e 39 PwmOut myServo(P1_13); //display board
BETZtechnik 1:e8452b75301e 40 //PwmOut myServo(D4);
BETZtechnik 0:09419d572e90 41
BETZtechnik 1:e8452b75301e 42 //DigitalIn tUpButton(P2_11);
BETZtechnik 1:e8452b75301e 43 //DigitalIn tDownButton(P2_12);
BETZtechnik 1:e8452b75301e 44 DigitalIn encoderFalseButton(P0_23); // FALSE!!! push button of knob
BETZtechnik 1:e8452b75301e 45 DigitalIn encoderButton(P0_20); // push button of knob
BETZtechnik 1:e8452b75301e 46 DigitalIn backButton(P0_15); // back button
BETZtechnik 0:09419d572e90 47
BETZtechnik 1:e8452b75301e 48 Timer t;
BETZtechnik 1:e8452b75301e 49 int lastBackButton;
BETZtechnik 1:e8452b75301e 50 int lastDownButton;
BETZtechnik 1:e8452b75301e 51 int lastEncoderButton;
BETZtechnik 1:e8452b75301e 52
BETZtechnik 1:e8452b75301e 53 int dirt = 0;
BETZtechnik 0:09419d572e90 54
BETZtechnik 0:09419d572e90 55 int main() {
BETZtechnik 1:e8452b75301e 56
BETZtechnik 1:e8452b75301e 57 // ************************************** SCREEN INIT *************************************************
BETZtechnik 1:e8452b75301e 58
BETZtechnik 1:e8452b75301e 59 tft.initR(INITR_GREENTAB); // initialize a ST7735S chip, black tab
BETZtechnik 1:e8452b75301e 60
BETZtechnik 1:e8452b75301e 61 tft.setRotation(3);
BETZtechnik 1:e8452b75301e 62 tft.fillScreen(BLACK);
BETZtechnik 1:e8452b75301e 63 tft.setCursor(30,120);
BETZtechnik 1:e8452b75301e 64 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 65 tft.setTextWrap(false);
BETZtechnik 1:e8452b75301e 66 tft.printf("AccuBlast v0");
BETZtechnik 1:e8452b75301e 67
BETZtechnik 1:e8452b75301e 68 tft.setCursor(4, 4);
BETZtechnik 1:e8452b75301e 69 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 70 tft.setTextSize(2);
BETZtechnik 1:e8452b75301e 71 tft.printf("N1");
BETZtechnik 1:e8452b75301e 72
BETZtechnik 1:e8452b75301e 73 tft.setCursor(80, 4);
BETZtechnik 1:e8452b75301e 74 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 75 tft.setTextSize(2);
BETZtechnik 1:e8452b75301e 76 tft.printf("N2");
BETZtechnik 1:e8452b75301e 77
BETZtechnik 1:e8452b75301e 78 tft.setCursor(4, 28);
BETZtechnik 1:e8452b75301e 79 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 80 tft.setTextSize(2);
BETZtechnik 1:e8452b75301e 81 tft.printf("T");
BETZtechnik 1:e8452b75301e 82
BETZtechnik 1:e8452b75301e 83 tft.setCursor(4, 50);
BETZtechnik 1:e8452b75301e 84 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 85 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 86 tft.printf("Nozzle");
BETZtechnik 1:e8452b75301e 87
BETZtechnik 1:e8452b75301e 88 tft.setCursor(4, 65);
BETZtechnik 1:e8452b75301e 89 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 90 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 91 tft.printf("Res.");
BETZtechnik 1:e8452b75301e 92
BETZtechnik 1:e8452b75301e 93 tft.setCursor(4, 80);
BETZtechnik 1:e8452b75301e 94 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 95 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 96 tft.printf("Res.");
BETZtechnik 1:e8452b75301e 97
BETZtechnik 1:e8452b75301e 98 tft.setCursor(4, 95);
BETZtechnik 1:e8452b75301e 99 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 100 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 101 tft.printf("Num Tls");
BETZtechnik 1:e8452b75301e 102
BETZtechnik 1:e8452b75301e 103 tft.setCursor(4, 110);
BETZtechnik 1:e8452b75301e 104 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 105 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 106 tft.printf("Num Noz");
BETZtechnik 1:e8452b75301e 107
BETZtechnik 1:e8452b75301e 108 // **************************************************************************************************************
BETZtechnik 1:e8452b75301e 109
BETZtechnik 1:e8452b75301e 110 int received = 9;
BETZtechnik 1:e8452b75301e 111
BETZtechnik 1:e8452b75301e 112 int count = 0;
BETZtechnik 1:e8452b75301e 113 int maxCount = 7; //max number of menu items
BETZtechnik 1:e8452b75301e 114 int lastCount = 99;
BETZtechnik 1:e8452b75301e 115
BETZtechnik 1:e8452b75301e 116 //************* Pull previous setting from eeprom *******************
BETZtechnik 1:e8452b75301e 117
BETZtechnik 1:e8452b75301e 118 char tempToolNo = 0; // last tool in spindle
BETZtechnik 1:e8452b75301e 119 eeprom.read(currentToolAddress, &tempToolNo);
BETZtechnik 1:e8452b75301e 120 int currentToolNo = (int)tempToolNo;
BETZtechnik 1:e8452b75301e 121
BETZtechnik 1:e8452b75301e 122 char tempNumTools = 0; // number of tools in ATC
BETZtechnik 1:e8452b75301e 123 eeprom.read(numToolsAddress, &tempNumTools);
BETZtechnik 1:e8452b75301e 124 int numTools = (int)tempNumTools;
BETZtechnik 1:e8452b75301e 125
BETZtechnik 1:e8452b75301e 126 char tempNumNoz = 0; // number of nozzles installed
BETZtechnik 1:e8452b75301e 127 eeprom.read(numNozAddress, &tempNumNoz);
BETZtechnik 1:e8452b75301e 128 int numNoz = (int)tempNumNoz;
BETZtechnik 1:e8452b75301e 129
BETZtechnik 1:e8452b75301e 130 char tempLastAngle = 0; // last angle of last tool in spindle
BETZtechnik 1:e8452b75301e 131 eeprom.read(currentToolNo, &tempLastAngle);
BETZtechnik 1:e8452b75301e 132 int lastAngle = (int)tempLastAngle;
BETZtechnik 1:e8452b75301e 133 lastAngle = lastAngle - 45; // Not storing signed int, so signed value is 45 less than what was stored to memory.
BETZtechnik 1:e8452b75301e 134
BETZtechnik 1:e8452b75301e 135 //******************** Button debounce *********************************
BETZtechnik 0:09419d572e90 136
BETZtechnik 0:09419d572e90 137
BETZtechnik 1:e8452b75301e 138
BETZtechnik 1:e8452b75301e 139 backButton.mode(PullUp); // button pull up
BETZtechnik 1:e8452b75301e 140 //tDownButton.mode(PullUp); // button pull up
BETZtechnik 1:e8452b75301e 141 encoderButton.mode(PullUp);
BETZtechnik 1:e8452b75301e 142 encoderFalseButton.mode(PullUp);
BETZtechnik 0:09419d572e90 143
BETZtechnik 1:e8452b75301e 144 t.start(); // starts timer
BETZtechnik 1:e8452b75301e 145 lastBackButton = t.read_ms();
BETZtechnik 1:e8452b75301e 146 lastDownButton = t.read_ms();
BETZtechnik 1:e8452b75301e 147 lastEncoderButton = t.read_ms();
BETZtechnik 1:e8452b75301e 148
BETZtechnik 1:e8452b75301e 149 //****************************************************************************
BETZtechnik 0:09419d572e90 150
BETZtechnik 1:e8452b75301e 151 int lastToolNo = 99;
BETZtechnik 1:e8452b75301e 152 int lastNumTools = -1; // trigger to write eeprom value for number of tools
BETZtechnik 0:09419d572e90 153
BETZtechnik 1:e8452b75301e 154 int lastNumNoz = 0; //trigger display for number of nozzles after startup
BETZtechnik 0:09419d572e90 155
BETZtechnik 1:e8452b75301e 156 int n1Pos = lastAngle; //Set servo to last known postition prior to power off
BETZtechnik 0:09419d572e90 157 int lastN1Pos = 150;
BETZtechnik 0:09419d572e90 158
BETZtechnik 0:09419d572e90 159 int servo1Pos = 0;
BETZtechnik 0:09419d572e90 160
BETZtechnik 1:e8452b75301e 161 RPG rpg1(P2_2,P1_20,P0_23); // RPG (PinName pA, PinName pB, PinName pPB)P0_23 is unconnected!! ;
BETZtechnik 1:e8452b75301e 162
BETZtechnik 1:e8452b75301e 163 myServo.period_ms(20);
BETZtechnik 0:09419d572e90 164
BETZtechnik 1:e8452b75301e 165 /*
BETZtechnik 1:e8452b75301e 166 char t1Ang = 200;
BETZtechnik 1:e8452b75301e 167 char t1Read = 0;
BETZtechnik 1:e8452b75301e 168
BETZtechnik 1:e8452b75301e 169 eeprom.write(1, t1Ang);
BETZtechnik 1:e8452b75301e 170 wait(1);
BETZtechnik 1:e8452b75301e 171 eeprom.read(1, &t1Read);
BETZtechnik 0:09419d572e90 172
BETZtechnik 0:09419d572e90 173
BETZtechnik 0:09419d572e90 174 tft.setCursor(30,110);
BETZtechnik 0:09419d572e90 175 tft.setTextColor(WHITE);
BETZtechnik 0:09419d572e90 176 tft.setTextWrap(true);
BETZtechnik 1:e8452b75301e 177 // tft.printf("%s\r\n",t1Read);
BETZtechnik 1:e8452b75301e 178 tft.printf("%d", currentTool);
BETZtechnik 1:e8452b75301e 179 */
BETZtechnik 1:e8452b75301e 180
BETZtechnik 1:e8452b75301e 181 uint8_t c = 0; // for 485 link
BETZtechnik 1:e8452b75301e 182
BETZtechnik 0:09419d572e90 183
BETZtechnik 0:09419d572e90 184 while(1) {
BETZtechnik 0:09419d572e90 185
BETZtechnik 1:e8452b75301e 186 //myled = 1;
BETZtechnik 1:e8452b75301e 187
BETZtechnik 1:e8452b75301e 188 if (t.read() > 1200){ // timer can only hold 30 min, so reset after 20
BETZtechnik 1:e8452b75301e 189 t.reset();
BETZtechnik 1:e8452b75301e 190 lastBackButton = t.read_ms();
BETZtechnik 1:e8452b75301e 191 lastDownButton = t.read_ms();
BETZtechnik 1:e8452b75301e 192 lastEncoderButton = t.read_ms();
BETZtechnik 1:e8452b75301e 193 }
BETZtechnik 1:e8452b75301e 194
BETZtechnik 1:e8452b75301e 195 if (backButton == 0){ //Back button was pressed so back to default selection
BETZtechnik 1:e8452b75301e 196 count = 0;
BETZtechnik 1:e8452b75301e 197 }
BETZtechnik 1:e8452b75301e 198
BETZtechnik 1:e8452b75301e 199 if (encoderButton == 0){
BETZtechnik 1:e8452b75301e 200 if (t.read_ms() > (lastEncoderButton + 200)){
BETZtechnik 1:e8452b75301e 201 count = count + 1; //Reset count if PB pressed
BETZtechnik 1:e8452b75301e 202 }
BETZtechnik 1:e8452b75301e 203 if (count > maxCount){
BETZtechnik 1:e8452b75301e 204 count = 0;
BETZtechnik 1:e8452b75301e 205 }
BETZtechnik 1:e8452b75301e 206 lastEncoderButton = t.read_ms();
BETZtechnik 1:e8452b75301e 207
BETZtechnik 1:e8452b75301e 208 if (count > maxCount){
BETZtechnik 1:e8452b75301e 209 count = 0;
BETZtechnik 1:e8452b75301e 210 }
BETZtechnik 1:e8452b75301e 211 }
BETZtechnik 0:09419d572e90 212
BETZtechnik 1:e8452b75301e 213 //****************** ENCODER ACTIONS ************************************************
BETZtechnik 1:e8452b75301e 214 if (count == 0){ // knob controls servo value
BETZtechnik 1:e8452b75301e 215 dirt = rpg1.dir(); //Get Dir
BETZtechnik 1:e8452b75301e 216 n1Pos = n1Pos + dirt; //Ad Dirt to n1pos
BETZtechnik 1:e8452b75301e 217 if (n1Pos > 0){
BETZtechnik 1:e8452b75301e 218 n1Pos = 0;
BETZtechnik 1:e8452b75301e 219 }
BETZtechnik 1:e8452b75301e 220 if (n1Pos < -45){
BETZtechnik 1:e8452b75301e 221 n1Pos = -45;
BETZtechnik 1:e8452b75301e 222 }
BETZtechnik 1:e8452b75301e 223 }
BETZtechnik 1:e8452b75301e 224
BETZtechnik 1:e8452b75301e 225 if (count == 2){ //knob controls tool number
BETZtechnik 1:e8452b75301e 226 dirt = rpg1.dir(); //Get Dir
BETZtechnik 1:e8452b75301e 227 currentToolNo = currentToolNo + dirt; //Ad Dirt to n1pos
BETZtechnik 1:e8452b75301e 228 if (currentToolNo > numTools){
BETZtechnik 1:e8452b75301e 229 currentToolNo = numTools;
BETZtechnik 1:e8452b75301e 230 }
BETZtechnik 1:e8452b75301e 231 if (currentToolNo < 1){
BETZtechnik 1:e8452b75301e 232 currentToolNo = 1;
BETZtechnik 1:e8452b75301e 233 }
BETZtechnik 1:e8452b75301e 234 }
BETZtechnik 1:e8452b75301e 235
BETZtechnik 1:e8452b75301e 236 if (count == 6){ //knob controls tool number
BETZtechnik 1:e8452b75301e 237 dirt = rpg1.dir(); //Get Dir
BETZtechnik 1:e8452b75301e 238 numTools = numTools + dirt; //Ad Dirt to n1pos
BETZtechnik 1:e8452b75301e 239 if (numTools > 50){
BETZtechnik 1:e8452b75301e 240 numTools = 50;
BETZtechnik 1:e8452b75301e 241 }
BETZtechnik 1:e8452b75301e 242 if (numTools < 1){
BETZtechnik 1:e8452b75301e 243 numTools = 1;
BETZtechnik 1:e8452b75301e 244 }
BETZtechnik 1:e8452b75301e 245 }
BETZtechnik 1:e8452b75301e 246
BETZtechnik 1:e8452b75301e 247 if (count == 7){ //knob controls tool number
BETZtechnik 1:e8452b75301e 248 dirt = rpg1.dir(); //Get Dir
BETZtechnik 1:e8452b75301e 249 numNoz = numNoz + dirt; //Ad Dirt to n1pos
BETZtechnik 1:e8452b75301e 250 if (numNoz> 2){
BETZtechnik 1:e8452b75301e 251 numNoz = 2;
BETZtechnik 1:e8452b75301e 252 }
BETZtechnik 1:e8452b75301e 253 if (numNoz < 1){
BETZtechnik 1:e8452b75301e 254 numNoz = 1;
BETZtechnik 1:e8452b75301e 255 }
BETZtechnik 1:e8452b75301e 256 }
BETZtechnik 1:e8452b75301e 257
BETZtechnik 1:e8452b75301e 258
BETZtechnik 1:e8452b75301e 259 // ************* Rectangles for identifying active selection *****************************
BETZtechnik 1:e8452b75301e 260
BETZtechnik 1:e8452b75301e 261 if (count == 0){ // N1 adjust
BETZtechnik 1:e8452b75301e 262 tft.drawRect(2,2,74,18,GREEN);
BETZtechnik 1:e8452b75301e 263 }
BETZtechnik 1:e8452b75301e 264 else{
BETZtechnik 1:e8452b75301e 265 tft.drawRect(2,2,74,18,WHITE);
BETZtechnik 1:e8452b75301e 266 }
BETZtechnik 1:e8452b75301e 267
BETZtechnik 1:e8452b75301e 268 if ((count == 1) && (numNoz == 2)){ // N2 adjust
BETZtechnik 1:e8452b75301e 269 tft.drawRect(78,2,74,18,GREEN);
BETZtechnik 1:e8452b75301e 270 }
BETZtechnik 1:e8452b75301e 271
BETZtechnik 1:e8452b75301e 272 if ((count != 1) && (numNoz == 2)){ // N2 adjust
BETZtechnik 1:e8452b75301e 273 tft.drawRect(78,2,74,18,WHITE);
BETZtechnik 1:e8452b75301e 274 }
BETZtechnik 1:e8452b75301e 275
BETZtechnik 1:e8452b75301e 276
BETZtechnik 1:e8452b75301e 277 if (count == 2){
BETZtechnik 1:e8452b75301e 278 tft.drawRect(20,26,28,18,GREEN);
BETZtechnik 1:e8452b75301e 279 }
BETZtechnik 1:e8452b75301e 280 else{
BETZtechnik 1:e8452b75301e 281 tft.drawRect(20,26,28,18,BLACK);
BETZtechnik 1:e8452b75301e 282 }
BETZtechnik 1:e8452b75301e 283
BETZtechnik 1:e8452b75301e 284 if (count == 3){
BETZtechnik 1:e8452b75301e 285 tft.drawRect(53,48,20,12,GREEN);
BETZtechnik 1:e8452b75301e 286 }
BETZtechnik 1:e8452b75301e 287 else{
BETZtechnik 1:e8452b75301e 288 tft.drawRect(53,48,20,12,BLACK);
BETZtechnik 1:e8452b75301e 289 }
BETZtechnik 1:e8452b75301e 290
BETZtechnik 1:e8452b75301e 291 if (count == 4){
BETZtechnik 1:e8452b75301e 292 tft.drawRect(53,63,20,12,GREEN);
BETZtechnik 1:e8452b75301e 293 }
BETZtechnik 1:e8452b75301e 294 else{
BETZtechnik 1:e8452b75301e 295 tft.drawRect(53,63,20,12,BLACK);
BETZtechnik 1:e8452b75301e 296 }
BETZtechnik 1:e8452b75301e 297
BETZtechnik 1:e8452b75301e 298 if (count == 5){
BETZtechnik 1:e8452b75301e 299 tft.drawRect(53,78,20,12,GREEN);
BETZtechnik 1:e8452b75301e 300 }
BETZtechnik 1:e8452b75301e 301 else{
BETZtechnik 1:e8452b75301e 302 tft.drawRect(53,78,20,12,BLACK);
BETZtechnik 1:e8452b75301e 303 }
BETZtechnik 1:e8452b75301e 304
BETZtechnik 1:e8452b75301e 305 if (count == 6){
BETZtechnik 1:e8452b75301e 306 tft.drawRect(53,93,20,12,GREEN);
BETZtechnik 1:e8452b75301e 307 }
BETZtechnik 1:e8452b75301e 308 else{
BETZtechnik 1:e8452b75301e 309 tft.drawRect(53,93,20,12,BLACK);
BETZtechnik 1:e8452b75301e 310 }
BETZtechnik 1:e8452b75301e 311
BETZtechnik 1:e8452b75301e 312 if (count == 7){
BETZtechnik 1:e8452b75301e 313 tft.drawRect(53,108,20,12,GREEN);
BETZtechnik 1:e8452b75301e 314 }
BETZtechnik 1:e8452b75301e 315 else{
BETZtechnik 1:e8452b75301e 316 tft.drawRect(53,108,20,12,BLACK);
BETZtechnik 1:e8452b75301e 317 }
BETZtechnik 1:e8452b75301e 318
BETZtechnik 1:e8452b75301e 319 //****************************************************************************************
BETZtechnik 1:e8452b75301e 320
BETZtechnik 1:e8452b75301e 321 servo1Pos = servo1Scale.from(n1Pos);
BETZtechnik 0:09419d572e90 322
BETZtechnik 0:09419d572e90 323 myServo.pulsewidth_us(servo1Pos);
BETZtechnik 0:09419d572e90 324
BETZtechnik 1:e8452b75301e 325 //********************** update display values **********************************************
BETZtechnik 1:e8452b75301e 326
BETZtechnik 1:e8452b75301e 327
BETZtechnik 1:e8452b75301e 328 if (currentToolNo != lastToolNo){
BETZtechnik 1:e8452b75301e 329 /*
BETZtechnik 1:e8452b75301e 330 tft.fillRect(103, 2, 55,25, BLACK);
BETZtechnik 1:e8452b75301e 331 tft.setCursor(105, 4);
BETZtechnik 1:e8452b75301e 332 */
BETZtechnik 1:e8452b75301e 333 tft.setCursor(22, 28);
BETZtechnik 0:09419d572e90 334 tft.setTextColor(BLACK);
BETZtechnik 1:e8452b75301e 335 tft.setTextSize(2);
BETZtechnik 1:e8452b75301e 336 tft.printf("%d", lastToolNo);
BETZtechnik 1:e8452b75301e 337 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 338 //tft.setTextSize(2);
BETZtechnik 1:e8452b75301e 339 // tft.printf("T");
BETZtechnik 1:e8452b75301e 340 tft.setCursor(22,28);
BETZtechnik 1:e8452b75301e 341 tft.printf("%d", currentToolNo);
BETZtechnik 1:e8452b75301e 342 tempLastAngle = 0;
BETZtechnik 1:e8452b75301e 343 eeprom.read(currentToolNo, &tempLastAngle);
BETZtechnik 1:e8452b75301e 344 lastAngle = (int)tempLastAngle;
BETZtechnik 1:e8452b75301e 345 lastAngle = lastAngle - 45; // Not storing signed int, so signed value is 45 less than what was stored to memory.
BETZtechnik 1:e8452b75301e 346 //RotaryEncoder knob1(D2, D3, -45, 45, lastAngle); // RotaryEncoder(PinName pin1_name, PinName pin2_name, int min = 0, int max = 100, int val = 50);
BETZtechnik 1:e8452b75301e 347 //knob1.val = lastAngle;
BETZtechnik 1:e8452b75301e 348 n1Pos = lastAngle;
BETZtechnik 1:e8452b75301e 349 eeprom.write(currentToolAddress, currentToolNo);
BETZtechnik 1:e8452b75301e 350 //wait(0.1);
BETZtechnik 1:e8452b75301e 351 lastToolNo = currentToolNo;
BETZtechnik 0:09419d572e90 352 }
BETZtechnik 0:09419d572e90 353
BETZtechnik 0:09419d572e90 354
BETZtechnik 0:09419d572e90 355 if (n1Pos != lastN1Pos){
BETZtechnik 1:e8452b75301e 356 tft.setCursor(40, 4);
BETZtechnik 0:09419d572e90 357 tft.setTextColor(BLACK);
BETZtechnik 0:09419d572e90 358 tft.setTextSize(2);
BETZtechnik 0:09419d572e90 359 tft.printf("%d", lastN1Pos);
BETZtechnik 1:e8452b75301e 360 tft.setCursor(40,4);
BETZtechnik 1:e8452b75301e 361 tft.setTextColor(GREEN);
BETZtechnik 0:09419d572e90 362 tft.setTextSize(2);
BETZtechnik 0:09419d572e90 363 tft.printf("%d", n1Pos);
BETZtechnik 1:e8452b75301e 364 eeprom.write(currentToolNo, n1Pos + 45); // store new angle in eeprom, add 45 because its an unsigned value.
BETZtechnik 1:e8452b75301e 365 //wait(0.1); // adjusted from 1
BETZtechnik 1:e8452b75301e 366 dir=1;
BETZtechnik 1:e8452b75301e 367 device.printf("N");
BETZtechnik 1:e8452b75301e 368 device.printf("%d", n1Pos + 145); //send over RS485 add 145 so no negative values and always 3 digits. 1xx for N1, 2xx for nozzle 2
BETZtechnik 1:e8452b75301e 369 //device.printf("N245"); // TEST!!!
BETZtechnik 1:e8452b75301e 370 tft.setCursor(100, 50);
BETZtechnik 1:e8452b75301e 371 tft.setTextSize(2);
BETZtechnik 1:e8452b75301e 372 tft.printf("%d", n1Pos + 145);
BETZtechnik 1:e8452b75301e 373 //wait(0.05);
BETZtechnik 1:e8452b75301e 374 dir=0;
BETZtechnik 0:09419d572e90 375 lastN1Pos = n1Pos;
BETZtechnik 0:09419d572e90 376 }
BETZtechnik 1:e8452b75301e 377
BETZtechnik 1:e8452b75301e 378 if (numTools != lastNumTools){
BETZtechnik 1:e8452b75301e 379 tft.setCursor(55, 95);
BETZtechnik 1:e8452b75301e 380 tft.setTextColor(BLACK);
BETZtechnik 1:e8452b75301e 381 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 382 tft.printf("%d", lastNumTools);
BETZtechnik 1:e8452b75301e 383 tft.setCursor(55,95);
BETZtechnik 1:e8452b75301e 384 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 385 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 386 tft.printf("%d", numTools);
BETZtechnik 1:e8452b75301e 387 eeprom.write(numToolsAddress, numTools); // store new angle in eeprom, add 45 because its an unsigned value.
BETZtechnik 1:e8452b75301e 388 //wait(0.1); // adjusted from 1
BETZtechnik 1:e8452b75301e 389 lastNumTools = numTools;
BETZtechnik 1:e8452b75301e 390 }
BETZtechnik 0:09419d572e90 391
BETZtechnik 1:e8452b75301e 392 if (numNoz != lastNumNoz){
BETZtechnik 1:e8452b75301e 393 tft.setCursor(55, 110);
BETZtechnik 1:e8452b75301e 394 tft.setTextColor(BLACK);
BETZtechnik 1:e8452b75301e 395 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 396 tft.printf("%d", lastNumNoz);
BETZtechnik 1:e8452b75301e 397 tft.setCursor(55,110);
BETZtechnik 1:e8452b75301e 398 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 399 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 400 tft.printf("%d", numNoz);
BETZtechnik 1:e8452b75301e 401 eeprom.write(numNozAddress, numNoz); // store new angle in eeprom, add 45 because its an unsigned value.
BETZtechnik 1:e8452b75301e 402 //wait(0.1); // adjusted from 1
BETZtechnik 1:e8452b75301e 403
BETZtechnik 1:e8452b75301e 404 if (numNoz == 2){
BETZtechnik 1:e8452b75301e 405 tft.setCursor(80, 4);
BETZtechnik 1:e8452b75301e 406 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 407 tft.setTextSize(2);
BETZtechnik 1:e8452b75301e 408 tft.printf("N2");
BETZtechnik 1:e8452b75301e 409 tft.drawRect(78,2,74,18,WHITE);
BETZtechnik 1:e8452b75301e 410 }
BETZtechnik 1:e8452b75301e 411 if (numNoz == 1){
BETZtechnik 1:e8452b75301e 412 tft.setCursor(80, 4);
BETZtechnik 1:e8452b75301e 413 tft.setTextColor(BLACK);
BETZtechnik 1:e8452b75301e 414 tft.setTextSize(2);
BETZtechnik 1:e8452b75301e 415 tft.printf("N2");
BETZtechnik 1:e8452b75301e 416 tft.drawRect(78,2,74,18,BLACK);
BETZtechnik 1:e8452b75301e 417 }
BETZtechnik 1:e8452b75301e 418 lastNumNoz = numNoz;
BETZtechnik 1:e8452b75301e 419 }
BETZtechnik 0:09419d572e90 420
BETZtechnik 0:09419d572e90 421
BETZtechnik 0:09419d572e90 422
BETZtechnik 1:e8452b75301e 423
BETZtechnik 1:e8452b75301e 424 if (count != lastCount){
BETZtechnik 1:e8452b75301e 425 tft.setCursor(150, 100);
BETZtechnik 1:e8452b75301e 426 tft.setTextColor(BLACK);
BETZtechnik 1:e8452b75301e 427 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 428 tft.printf("%d", lastCount);
BETZtechnik 1:e8452b75301e 429 tft.setCursor(150,100);
BETZtechnik 1:e8452b75301e 430 tft.setTextColor(RED);
BETZtechnik 1:e8452b75301e 431 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 432 tft.printf("%d", count);
BETZtechnik 1:e8452b75301e 433 lastCount = count;
BETZtechnik 1:e8452b75301e 434 }
BETZtechnik 1:e8452b75301e 435
BETZtechnik 1:e8452b75301e 436 //**************************** RS485 link ***************************************
BETZtechnik 1:e8452b75301e 437
BETZtechnik 1:e8452b75301e 438 //dir =0; // receiver enable
BETZtechnik 1:e8452b75301e 439
BETZtechnik 1:e8452b75301e 440 if (device.readable())
BETZtechnik 1:e8452b75301e 441 {
BETZtechnik 1:e8452b75301e 442 c = device.getc();
BETZtechnik 1:e8452b75301e 443 if(c=='B'){
BETZtechnik 1:e8452b75301e 444 received = 1;
BETZtechnik 1:e8452b75301e 445 }
BETZtechnik 1:e8452b75301e 446 }
BETZtechnik 1:e8452b75301e 447
BETZtechnik 1:e8452b75301e 448 if (received == 1){
BETZtechnik 1:e8452b75301e 449 tft.setCursor(150, 80);
BETZtechnik 1:e8452b75301e 450 tft.setTextColor(WHITE);
BETZtechnik 1:e8452b75301e 451 tft.setTextSize(1);
BETZtechnik 1:e8452b75301e 452 tft.printf("1");
BETZtechnik 1:e8452b75301e 453 }
BETZtechnik 1:e8452b75301e 454
BETZtechnik 1:e8452b75301e 455
BETZtechnik 1:e8452b75301e 456 }
BETZtechnik 1:e8452b75301e 457 }