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;
 
                
}                 
}





}
}