Remote inc coolant nozzle control program

Dependencies:   mbed reScale USBDevice

Dependents:   Nozzle_inputs Nozzle_display

Revision:
0:09419d572e90
Child:
1:e8452b75301e
Child:
2:79c03ac27b72
diff -r 000000000000 -r 09419d572e90 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Jan 06 18:28:18 2019 +0000
@@ -0,0 +1,184 @@
+ #include "mbed.h"
+#include "Adafruit_ST7735.h"
+#include "RotaryEncoder.h"
+#include "reScale.h"
+#include "Ee24xx08.h"
+
+
+// DISPLAY INIT:
+
+#define BLACK    0x0000
+#define BLUE     0x001F
+#define RED      0xF800
+#define GREEN    0x07E0
+#define CYAN     0x07FF
+#define MAGENTA  0xF81F
+#define YELLOW   0xFFE0 
+#define WHITE    0xFFFF
+
+//const int addrW = 0xA2; //1010 0010 write word block B0
+//const int addrR = 0xA2; //1010 0011 read word block B0
+
+long currentSpot = 0;
+
+
+DigitalOut myled(LED1);
+//DigitalOut out(D2);
+
+//I2C i2c(P0_5, P0_4);
+Serial ser(USBTX,USBRX);
+I2C iic(P0_5, P0_4);
+
+Ee24xx08 eeprom(&iic);
+
+Adafruit_ST7735 tft(D11, D12, D13, D10, D7, D9); // MOSI, MISO, SCLK, SSEL, TFT_DC, TFT_RST
+
+
+RotaryEncoder knob1(D2, D3, -50, 0, 0);
+
+reScale servo1Scale(-45,0,750,1800); //19850 is 1.0v from voltage divider at 10k.
+
+//SDFileSystem sd(P1_20, P1_21, P1_22, P1_23, "sd"); // the pinout on the mbed Cool Components workshop board
+
+
+PwmOut myServo(D4);
+
+int main() {
+  //  out =1;
+  
+
+  
+  
+  
+    
+      tft.initR(INITR_GREENTAB);   // initialize a ST7735S chip, black tab
+      
+        tft.setRotation(3);
+      
+        tft.fillScreen(BLACK);
+  tft.setCursor(30,120);
+  tft.setTextColor(WHITE);
+  tft.setTextWrap(true);
+  tft.printf("AccuBlast v0");
+  
+  int mode=1; // 0= manual, 1=auto
+  int lastMode=0; // placeholder for changing display.
+  
+  int toolNo = 12;
+  int lastToolNo = 99; 
+  
+  int n1Pos = 0;
+  int lastN1Pos = 150;
+  
+  int servo1Pos = 0;
+  
+    myServo.period_ms(20);
+   // myServo.pulsewidth_us(MID); //NB in microseconds
+   
+   
+   /*
+   char data[2];
+data[0] = 0x01;
+data[1] = 0x01;
+   
+
+ char cmd[3];
+        cmd[0] = 0x01;
+        cmd[1] = 0x03;
+        i2c.start();
+        i2c.write(addrW, cmd, 2);
+        cmd[0] = 0x00;
+        cmd[1] = 0x00;
+        i2c.write(addrW, cmd, 2);
+        i2c.stop();
+        i2c.start();
+        //i2c.write(addrR);
+        i2c.read(addrR, data, 2);
+       */ 
+     
+       char str[4] = "-45";
+       char str2[12] = "0";
+       char str3[4] = "3";
+    
+
+    eeprom.write(01,str,4);
+    wait(1);
+    eeprom.write(05,str3,4);
+    wait(1);
+    
+    
+    eeprom.read(01,str2,4);
+   // ser.printf("%s\r\n",str);
+      
+
+  tft.setCursor(30,110);
+  tft.setTextColor(WHITE);
+  tft.setTextWrap(true);
+   tft.printf("%s\r\n",str2);
+
+int T1 = int(str2[4]);
+
+  tft.setCursor(30,80);
+  tft.setTextColor(WHITE);
+  tft.setTextWrap(true);
+        tft.printf("%d", T1);
+    
+    while(1) {
+        
+ n1Pos = knob1.getVal();
+ 
+servo1Pos = servo1Scale.from(knob1.getVal());
+
+myServo.pulsewidth_us(servo1Pos);
+
+ if (mode != lastMode) {
+        if (mode==1){
+        tft.fillRect(2, 2, 30, 25, WHITE);      
+        tft.setCursor(8, 4);
+        tft.setTextColor(BLACK);
+        tft.setTextSize(3);
+        tft.printf("A");
+        lastMode = mode;
+        }
+        
+        if (mode == 0){
+        tft.fillRect(2, 2, 40,25, WHITE);      
+        tft.setCursor(4, 4);
+        tft.setTextColor(BLACK);
+        tft.setTextSize(3);
+        tft.printf("M");
+        lastMode=mode;
+        }
+        }
+    
+ if (toolNo != lastToolNo){
+        tft.fillRect(103, 2, 55,25, WHITE);      
+        tft.setCursor(105, 4);
+        tft.setTextColor(BLACK);
+        tft.setTextSize(3);
+        tft.printf("T");
+        tft.setCursor(118, 4);
+        tft.printf("%d", toolNo);
+        lastToolNo = toolNo;
+        }
+       
+    
+   if (n1Pos != lastN1Pos){     
+        tft.setCursor(80, 100);
+        tft.setTextColor(BLACK);
+        tft.setTextSize(2);
+        tft.printf("%d", lastN1Pos);
+        tft.setCursor(80, 100);
+        tft.setTextColor(WHITE);
+        tft.setTextSize(2);
+        tft.printf("%d", n1Pos);
+        lastN1Pos = n1Pos;
+        }  
+    
+    
+}
+
+}
+
+
+