Remote inc coolant nozzle control program

Dependencies:   mbed reScale USBDevice

Dependents:   Nozzle_inputs Nozzle_display

Committer:
BETZtechnik
Date:
Sun Jan 06 18:28:18 2019 +0000
Revision:
0:09419d572e90
Child:
1:e8452b75301e
Child:
2:79c03ac27b72
Publishing for expert assistance

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 0:09419d572e90 3 #include "RotaryEncoder.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 0:09419d572e90 19 //const int addrW = 0xA2; //1010 0010 write word block B0
BETZtechnik 0:09419d572e90 20 //const int addrR = 0xA2; //1010 0011 read word block B0
BETZtechnik 0:09419d572e90 21
BETZtechnik 0:09419d572e90 22 long currentSpot = 0;
BETZtechnik 0:09419d572e90 23
BETZtechnik 0:09419d572e90 24
BETZtechnik 0:09419d572e90 25 DigitalOut myled(LED1);
BETZtechnik 0:09419d572e90 26 //DigitalOut out(D2);
BETZtechnik 0:09419d572e90 27
BETZtechnik 0:09419d572e90 28 //I2C i2c(P0_5, P0_4);
BETZtechnik 0:09419d572e90 29 Serial ser(USBTX,USBRX);
BETZtechnik 0:09419d572e90 30 I2C iic(P0_5, P0_4);
BETZtechnik 0:09419d572e90 31
BETZtechnik 0:09419d572e90 32 Ee24xx08 eeprom(&iic);
BETZtechnik 0:09419d572e90 33
BETZtechnik 0:09419d572e90 34 Adafruit_ST7735 tft(D11, D12, D13, D10, D7, D9); // MOSI, MISO, SCLK, SSEL, TFT_DC, TFT_RST
BETZtechnik 0:09419d572e90 35
BETZtechnik 0:09419d572e90 36
BETZtechnik 0:09419d572e90 37 RotaryEncoder knob1(D2, D3, -50, 0, 0);
BETZtechnik 0:09419d572e90 38
BETZtechnik 0:09419d572e90 39 reScale servo1Scale(-45,0,750,1800); //19850 is 1.0v from voltage divider at 10k.
BETZtechnik 0:09419d572e90 40
BETZtechnik 0:09419d572e90 41 //SDFileSystem sd(P1_20, P1_21, P1_22, P1_23, "sd"); // the pinout on the mbed Cool Components workshop board
BETZtechnik 0:09419d572e90 42
BETZtechnik 0:09419d572e90 43
BETZtechnik 0:09419d572e90 44 PwmOut myServo(D4);
BETZtechnik 0:09419d572e90 45
BETZtechnik 0:09419d572e90 46 int main() {
BETZtechnik 0:09419d572e90 47 // out =1;
BETZtechnik 0:09419d572e90 48
BETZtechnik 0:09419d572e90 49
BETZtechnik 0:09419d572e90 50
BETZtechnik 0:09419d572e90 51
BETZtechnik 0:09419d572e90 52
BETZtechnik 0:09419d572e90 53
BETZtechnik 0:09419d572e90 54 tft.initR(INITR_GREENTAB); // initialize a ST7735S chip, black tab
BETZtechnik 0:09419d572e90 55
BETZtechnik 0:09419d572e90 56 tft.setRotation(3);
BETZtechnik 0:09419d572e90 57
BETZtechnik 0:09419d572e90 58 tft.fillScreen(BLACK);
BETZtechnik 0:09419d572e90 59 tft.setCursor(30,120);
BETZtechnik 0:09419d572e90 60 tft.setTextColor(WHITE);
BETZtechnik 0:09419d572e90 61 tft.setTextWrap(true);
BETZtechnik 0:09419d572e90 62 tft.printf("AccuBlast v0");
BETZtechnik 0:09419d572e90 63
BETZtechnik 0:09419d572e90 64 int mode=1; // 0= manual, 1=auto
BETZtechnik 0:09419d572e90 65 int lastMode=0; // placeholder for changing display.
BETZtechnik 0:09419d572e90 66
BETZtechnik 0:09419d572e90 67 int toolNo = 12;
BETZtechnik 0:09419d572e90 68 int lastToolNo = 99;
BETZtechnik 0:09419d572e90 69
BETZtechnik 0:09419d572e90 70 int n1Pos = 0;
BETZtechnik 0:09419d572e90 71 int lastN1Pos = 150;
BETZtechnik 0:09419d572e90 72
BETZtechnik 0:09419d572e90 73 int servo1Pos = 0;
BETZtechnik 0:09419d572e90 74
BETZtechnik 0:09419d572e90 75 myServo.period_ms(20);
BETZtechnik 0:09419d572e90 76 // myServo.pulsewidth_us(MID); //NB in microseconds
BETZtechnik 0:09419d572e90 77
BETZtechnik 0:09419d572e90 78
BETZtechnik 0:09419d572e90 79 /*
BETZtechnik 0:09419d572e90 80 char data[2];
BETZtechnik 0:09419d572e90 81 data[0] = 0x01;
BETZtechnik 0:09419d572e90 82 data[1] = 0x01;
BETZtechnik 0:09419d572e90 83
BETZtechnik 0:09419d572e90 84
BETZtechnik 0:09419d572e90 85 char cmd[3];
BETZtechnik 0:09419d572e90 86 cmd[0] = 0x01;
BETZtechnik 0:09419d572e90 87 cmd[1] = 0x03;
BETZtechnik 0:09419d572e90 88 i2c.start();
BETZtechnik 0:09419d572e90 89 i2c.write(addrW, cmd, 2);
BETZtechnik 0:09419d572e90 90 cmd[0] = 0x00;
BETZtechnik 0:09419d572e90 91 cmd[1] = 0x00;
BETZtechnik 0:09419d572e90 92 i2c.write(addrW, cmd, 2);
BETZtechnik 0:09419d572e90 93 i2c.stop();
BETZtechnik 0:09419d572e90 94 i2c.start();
BETZtechnik 0:09419d572e90 95 //i2c.write(addrR);
BETZtechnik 0:09419d572e90 96 i2c.read(addrR, data, 2);
BETZtechnik 0:09419d572e90 97 */
BETZtechnik 0:09419d572e90 98
BETZtechnik 0:09419d572e90 99 char str[4] = "-45";
BETZtechnik 0:09419d572e90 100 char str2[12] = "0";
BETZtechnik 0:09419d572e90 101 char str3[4] = "3";
BETZtechnik 0:09419d572e90 102
BETZtechnik 0:09419d572e90 103
BETZtechnik 0:09419d572e90 104 eeprom.write(01,str,4);
BETZtechnik 0:09419d572e90 105 wait(1);
BETZtechnik 0:09419d572e90 106 eeprom.write(05,str3,4);
BETZtechnik 0:09419d572e90 107 wait(1);
BETZtechnik 0:09419d572e90 108
BETZtechnik 0:09419d572e90 109
BETZtechnik 0:09419d572e90 110 eeprom.read(01,str2,4);
BETZtechnik 0:09419d572e90 111 // ser.printf("%s\r\n",str);
BETZtechnik 0:09419d572e90 112
BETZtechnik 0:09419d572e90 113
BETZtechnik 0:09419d572e90 114 tft.setCursor(30,110);
BETZtechnik 0:09419d572e90 115 tft.setTextColor(WHITE);
BETZtechnik 0:09419d572e90 116 tft.setTextWrap(true);
BETZtechnik 0:09419d572e90 117 tft.printf("%s\r\n",str2);
BETZtechnik 0:09419d572e90 118
BETZtechnik 0:09419d572e90 119 int T1 = int(str2[4]);
BETZtechnik 0:09419d572e90 120
BETZtechnik 0:09419d572e90 121 tft.setCursor(30,80);
BETZtechnik 0:09419d572e90 122 tft.setTextColor(WHITE);
BETZtechnik 0:09419d572e90 123 tft.setTextWrap(true);
BETZtechnik 0:09419d572e90 124 tft.printf("%d", T1);
BETZtechnik 0:09419d572e90 125
BETZtechnik 0:09419d572e90 126 while(1) {
BETZtechnik 0:09419d572e90 127
BETZtechnik 0:09419d572e90 128 n1Pos = knob1.getVal();
BETZtechnik 0:09419d572e90 129
BETZtechnik 0:09419d572e90 130 servo1Pos = servo1Scale.from(knob1.getVal());
BETZtechnik 0:09419d572e90 131
BETZtechnik 0:09419d572e90 132 myServo.pulsewidth_us(servo1Pos);
BETZtechnik 0:09419d572e90 133
BETZtechnik 0:09419d572e90 134 if (mode != lastMode) {
BETZtechnik 0:09419d572e90 135 if (mode==1){
BETZtechnik 0:09419d572e90 136 tft.fillRect(2, 2, 30, 25, WHITE);
BETZtechnik 0:09419d572e90 137 tft.setCursor(8, 4);
BETZtechnik 0:09419d572e90 138 tft.setTextColor(BLACK);
BETZtechnik 0:09419d572e90 139 tft.setTextSize(3);
BETZtechnik 0:09419d572e90 140 tft.printf("A");
BETZtechnik 0:09419d572e90 141 lastMode = mode;
BETZtechnik 0:09419d572e90 142 }
BETZtechnik 0:09419d572e90 143
BETZtechnik 0:09419d572e90 144 if (mode == 0){
BETZtechnik 0:09419d572e90 145 tft.fillRect(2, 2, 40,25, WHITE);
BETZtechnik 0:09419d572e90 146 tft.setCursor(4, 4);
BETZtechnik 0:09419d572e90 147 tft.setTextColor(BLACK);
BETZtechnik 0:09419d572e90 148 tft.setTextSize(3);
BETZtechnik 0:09419d572e90 149 tft.printf("M");
BETZtechnik 0:09419d572e90 150 lastMode=mode;
BETZtechnik 0:09419d572e90 151 }
BETZtechnik 0:09419d572e90 152 }
BETZtechnik 0:09419d572e90 153
BETZtechnik 0:09419d572e90 154 if (toolNo != lastToolNo){
BETZtechnik 0:09419d572e90 155 tft.fillRect(103, 2, 55,25, WHITE);
BETZtechnik 0:09419d572e90 156 tft.setCursor(105, 4);
BETZtechnik 0:09419d572e90 157 tft.setTextColor(BLACK);
BETZtechnik 0:09419d572e90 158 tft.setTextSize(3);
BETZtechnik 0:09419d572e90 159 tft.printf("T");
BETZtechnik 0:09419d572e90 160 tft.setCursor(118, 4);
BETZtechnik 0:09419d572e90 161 tft.printf("%d", toolNo);
BETZtechnik 0:09419d572e90 162 lastToolNo = toolNo;
BETZtechnik 0:09419d572e90 163 }
BETZtechnik 0:09419d572e90 164
BETZtechnik 0:09419d572e90 165
BETZtechnik 0:09419d572e90 166 if (n1Pos != lastN1Pos){
BETZtechnik 0:09419d572e90 167 tft.setCursor(80, 100);
BETZtechnik 0:09419d572e90 168 tft.setTextColor(BLACK);
BETZtechnik 0:09419d572e90 169 tft.setTextSize(2);
BETZtechnik 0:09419d572e90 170 tft.printf("%d", lastN1Pos);
BETZtechnik 0:09419d572e90 171 tft.setCursor(80, 100);
BETZtechnik 0:09419d572e90 172 tft.setTextColor(WHITE);
BETZtechnik 0:09419d572e90 173 tft.setTextSize(2);
BETZtechnik 0:09419d572e90 174 tft.printf("%d", n1Pos);
BETZtechnik 0:09419d572e90 175 lastN1Pos = n1Pos;
BETZtechnik 0:09419d572e90 176 }
BETZtechnik 0:09419d572e90 177
BETZtechnik 0:09419d572e90 178
BETZtechnik 0:09419d572e90 179 }
BETZtechnik 0:09419d572e90 180
BETZtechnik 0:09419d572e90 181 }
BETZtechnik 0:09419d572e90 182
BETZtechnik 0:09419d572e90 183
BETZtechnik 0:09419d572e90 184