Remote inc coolant nozzle control program
Dependencies: mbed reScale USBDevice
Dependents: Nozzle_inputs Nozzle_display
main.cpp
- Committer:
- BETZtechnik
- Date:
- 2019-02-11
- Revision:
- 5:18c6ff1370d0
- Parent:
- 4:fa0af3a8e089
- Child:
- 8:6bb07a893f53
File content as of revision 5:18c6ff1370d0:
#include "mbed.h" #include "reScale.h" //Serial pc(USBTX, USBRX); //InterruptIn aux1(P0_7, PullUp); // index pulse DigitalIn aux1(P0_7); DigitalIn cw(P1_24); DigitalIn ccw(P2_7); int cwRequested = 0; int ccwRequested = 0; int aux1State = 0; DigitalOut dir(P0_15); Serial device(P0_14, P0_13, 19200); // RS 485 TX RX? reScale servo1Scale(45,0,750,1800); //19850 is 1.0v from voltage divider at 10k. PwmOut servo1(P1_13); //display board //char tens = '0'; //char ones = '1'; int Tens = 0; int Ones = 0; int currentNozzle = 0; int index = 0; // for parsing serial int n1Pos = 0; int servo1Pos = 0; DigitalOut servo2(P2_2); void triggered() { servo2 = 1; if (cw == 0){ cwRequested = 1; } else if (ccw == 0){ ccwRequested = 1; } } int main() { cw.mode(PullUp); ccw.mode(PullUp); aux1.mode(PullUp); //aux1.rise(&triggered); servo2 = 0; uint8_t c = 0; // for 485 link while(1) { //************************************ Interrupt response ********************** if (aux1 == 1 && aux1State == 0) { if (cw == 0) { //servo2 = 1; dir= 1; //wait(0.001); device.printf("M"); wait(0.05); device.printf("+"); wait(0.001); dir=0; aux1State = 1; //wait(.001); } if (ccw == 0) { dir= 1; //wait(0.01); device.printf("M"); wait(0.05); device.printf("-"); wait(0.001); dir=0; aux1State = 1; //wait(.001); } } if (aux1 == 0 && aux1State == 1) { aux1State = 0; //wait(0.1); } /* if (cwRequested == 1) { dir= 1; //wait(0.001); device.printf("M"); wait(0.01); device.printf("+"); wait(0.001); dir=0; cwRequested = 0; //wait(.001); } else if (ccwRequested == 1) { dir= 1; //wait(0.01); device.printf("M"); wait(0.01); device.printf("-"); wait(0.001); dir=0; ccwRequested = 0; //wait(.001); } */ //********************************** Serial listening *************************** while (device.readable()) { c = device.getc(); if (c == 'N'){ index = 1; } if (index == 1){ c = device.getc(); if (c == '1'){ // N1 currentNozzle = 1; index = 3; } else if (c == '2'){ //N2 currentNozzle = 2; index = 3; } } if (index == 3){ c = device.getc(); if (c=='0'){ Tens = 0; index = 4; } else if (c=='1'){ Tens = 1; index = 4; } else if (c=='2'){ Tens = 2; index = 4; } else if (c=='3'){ Tens = 3; index = 4; } else if (c=='4'){ Tens = 4; index = 4; } } if (index == 4){ c = device.getc(); if (c=='0'){ Ones = 0; } else if (c=='1'){ Ones = 1; } else if (c=='2'){ Ones = 2; } else if (c=='3'){ Ones = 3; } else if (c=='4'){ Ones = 4; } else if (c=='5'){ Ones = 5; } else if (c=='6'){ Ones = 6; } else if (c=='7'){ Ones = 7; } else if (c=='8'){ Ones = 8; } else if (c=='9'){ Ones = 9; } else if (c=='0'){ Ones = 0; } n1Pos = ((Tens * 10) + Ones); if ((n1Pos == 45) && (currentNozzle==1)){ // servo2=1; } servo1Pos = servo1Scale.from(n1Pos); servo1.pulsewidth_us(servo1Pos); index=0; } } } }