Remote inc coolant nozzle control program
Dependencies: mbed reScale USBDevice
Dependents: Nozzle_inputs Nozzle_display
main.cpp@0:09419d572e90, 2019-01-06 (annotated)
- 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?
User | Revision | Line number | New 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 |