Remote inc coolant nozzle control program

Dependencies:   mbed reScale USBDevice

Dependents:   Nozzle_inputs Nozzle_display

main.cpp

Committer:
BETZtechnik
Date:
2019-04-10
Revision:
20:8aebc19d9d1d
Parent:
8:6bb07a893f53
Child:
21:db507362ca7a

File content as of revision 20:8aebc19d9d1d:

 #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 display(P0_14, P0_13, 19200);  // RS 485  TX RX?
Serial inputs(P1_23,P0_20, 9600); //rs232 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 Hundreds = 0;
 int Tens = 0;
 int Ones = 0;   
 
 int twitch = 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 == 0 && aux1State == 0)
        {
           
           if (cw == 1)
           {
//servo2 = 1;
dir= 1;
//wait(0.001);
display.printf("M");
wait(0.05);
display.printf("-");
wait(0.001);
dir=0;
aux1State = 1;
//wait(.001);
}

if (ccw == 1)
{
dir= 1;
//wait(0.01);
display.printf("M");
wait(0.05);
display.printf("+");
wait(0.001);
dir=0;
aux1State = 1;
//wait(.001);
}
}

if (aux1 == 1 && aux1State == 1)
{
aux1State = 0;
//wait(0.1);
}          
            
        /*
if (cwRequested == 1)
{
dir= 1;
//wait(0.001);
display.printf("M");
wait(0.01);
display.printf("+");
wait(0.001);
dir=0;
cwRequested = 0;
//wait(.001);
}


else if (ccwRequested == 1)
{
dir= 1;
//wait(0.01);
display.printf("M");
wait(0.01);
display.printf("-");
wait(0.001);
dir=0;
ccwRequested = 0;
//wait(.001);
}
   */ 
    
        
//**********************************  Display serial OLD ***************************       

/*
while (display.readable())
{
             

                
               c = display.getc();
               
                if (c == 'N'){
                    
                    index = 1;
                      
                   }
                
                if (index == 1){   
                 c = display.getc();
                    if (c == '1'){   // N1
                        currentNozzle = 1;
                        index = 3;
                         
                      
                        }
                        else if (c == '2'){ //N2
                            currentNozzle = 2;
                            index = 3;
                             
                            }
                            
                        }
                

                        
                if (index == 3){
                     
                     c = display.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 = display.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;
 
                
}                 
}
*/


//********************** Display code NEW with W **********************************

        while (display.readable()) {

            c = display.getc();

            if (c == 'N') {

                index = 1;

            }

            if (c == 'W') { // wiggle setting
                index = 5;
            }
            if (index == 5) {
                c = display.getc();
                if (c == '0') {
                    twitch = 0;
                    index = 0;
                }
                if (c == '1') {
                    twitch = 1;
                }
                if (c == '2') {
                    twitch = 2;
                    index = 0;
                }
                if (c == '3') {
                    twitch = 3;
                    index = 0;
                }
            }




            if (index == 1) {       //Display is sending -90>+90 and adding 190 for N1 so would send 100 to 280 for -90 to +90
                c = display.getc();
                if (c == '1') {  // N1
                    currentNozzle = 1;
                    Hundreds = 0;
                    index = 3;


                } else if (c == '2') { //N2
                    currentNozzle = 1;
                    Hundreds = 1;
                    index = 3;
                }

                if (c == '3') { //N2     // Display adding 390 for N2 so 300 to 480 would be -90 to +90
                    currentNozzle = 2;
                    Hundreds = 0;
                    index = 3;
                }

                if (c == '4') { //N2
                    currentNozzle = 2;
                    Hundreds = 1;
                    index = 3;
                }


            }



            if (index == 3) {

                c = display.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;
                }

                else if (c=='5') {
                    Tens = 5;
                    index = 4;
                }

                else if (c=='6') {
                    Tens = 6;
                    index = 4;
                }

                else if (c=='7') {
                    Tens = 7;
                    index = 4;
                } 
                
                else if (c=='8') {
                    Tens = 8;
                    index = 4;
                }

                else if (c=='9') {
                    Tens = 9;
                    index = 4;
                }


            }

            if (index == 4) {

                c = display.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;
                }

                n1Pos = ((Tens * 10) + Ones);

                if ((n1Pos == 45) && (currentNozzle==1)) {
// servo2=1;
                }

                servo1Pos = servo1Scale.from(n1Pos);

                servo1.pulsewidth_us(servo1Pos);

                index=0;
            }
        }





//********************************* Inputs serial *******************************


while (inputs.readable())
{
             

               c = inputs.getc();
               
                if (c == 'T'){
                     
                    index = 1;
                    servo2=1;
                   }
                
                
                if (index == 1){   
                 c = inputs.getc();
                  
                 
    if (c=='0'){
                     Tens = 0;
                     servo2=1;
                     }
                     
                     else if (c=='1'){
                         Tens = 1;
                        
                          
                         }
                         
                         else if (c=='2'){
                             Tens = 2;
                           
                             }
                             
                             else if (c=='3'){
                                 Tens = 3;
                                
                                 }
                                 
                                 else if (c=='4'){
                                     Tens = 4;
                                     }
                                     
                                     else if (c=='5'){
                                     Tens = 5;
                                     }
                                     
                                     else if (c=='6'){
                                     Tens = 6;
                                     }
                                     
                                     else if (c=='7'){
                                     Tens = 7;
                                     }
                                     
                                     else if (c=='8'){
                                     Tens = 8;
                                     }
                                     
                                     else if (c=='9'){
                                     Tens = 9;
                                     }
                                     
                                     else if (c=='0'){
                                     Tens = 0;
                                     }
                         index = 2;
                         }
                         
                         
                         if (index == 2){
                              c = inputs.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;
                                     }                             
                       int tempToolNo = (Tens*10)+100+Ones;
                       dir=1;
                       display.printf("T");
                       wait(0.05);
                        display.printf("%d", tempToolNo);   
                        wait(0.001);
                        dir=0;  
                      index = 0;
                      tempToolNo=0;
                      
                      }
                      
                      
                        }


// *****************************************************************************



}
}