Kalibriersoftware Stromwerte

Dependencies:   Matrix mbed

Pruefprogramm_Motorteststand.cpp

Committer:
Racer01014
Date:
2015-11-23
Revision:
0:5e35c180ed4a
Child:
1:ea5f520dcdc1

File content as of revision 0:5e35c180ed4a:

#include "mbed.h"
#include "Matrix.h"
#include "USBSerial.h"

//***************************************************************************************************
//Outputs

DigitalOut Multiplex_select_A (p26);
DigitalOut Multiplex_select_B (p25);
DigitalOut Myled (LED1);


//***************************************************************************************************
//Inputs

AnalogIn Messkanal_X (p15);
AnalogIn Messkanal_Y (p16);
AnalogIn DMS_Kanal (p17);

//DigitalIn Start(p22);

//***************************************************************************************************
//PWM

PwmOut Motor(p23);
PwmOut Bremse(p21);



//***************************************************************************************************
//Communication

Serial pc(USBTX, USBRX);

//USBSerial terminal;


volatile float  Motorspannung, Bremsenspannung , Motorstrom, An_In_0, Bremsenstrom, Temperatur_0, Temperatur_1, Temperatur_2, DMS_Out, DMS_Skalierung;


//***************************************************************************************************
//read sensors via multiplexer

void read_sensors()
{

    Multiplex_select_A = 0;
    Multiplex_select_B = 0;
    wait_ms(1);
    An_In_0 = Messkanal_X.read_u16();
    Motorspannung = Messkanal_Y.read_u16(); //* 0.000515 - 0.05 ; Gute Näherung von 2- ~23V. Dannach zu niedrig.Z-Diode
                
    Multiplex_select_A = 1;
    wait_ms(1);
    Temperatur_0 = Messkanal_X.read_u16();
    Motorstrom = Messkanal_Y.read_u16(); //* 0.000396 - 4.15;
    
    Multiplex_select_A = 0;
    Multiplex_select_B = 1;
    wait_ms(1);
    Temperatur_1 = Messkanal_X.read_u16();
    Bremsenspannung = Messkanal_Y.read_u16(); //* 0.000515 - 0.05;Gute Näherung von 2- ~23V. Dannach zu niedrig.Z-Diode
    
    Multiplex_select_A = 1;
    wait_ms(1);
    Temperatur_2 = Messkanal_X.read_u16(); // 1629;
    Bremsenstrom = Messkanal_Y.read_u16(); //* 0.00032 - 15.8;
       
}

//***************************************************************************************************
//Safety Circuit

int safety()
{
    int Temp_max;
    read_sensors();
    
    if( (Temperatur_0 < Temp_max) && (Temperatur_1 < Temp_max) && (Temperatur_2 < Temp_max))
        return(0);
    else
        return(1);
        
}
         
//***************************************************************************************************
//Checkup @ Start

int checkup()
{
      return(1);  
}       


//***************************************************************************************************
//send values

void send_data(void)
{
//    pc.printf(" [Temperatur1, Motorspannung]; 0 %5.2f deg; 1 %5.2f V;", Temperatur_0, Motorspannung);
//    pc.printf(" [Temperatur2, Motorstrom]; 0 %5.2f deg; 1 %5.2f A;", Temperatur_1, Motorstrom);
//    pc.printf(" [Temperatur3, Bremsenspannung]; 0 %5.2f deg; 1 %5.2f V;", Temperatur_2, Bremsenspannung);
//    pc.printf(" [Aux, Bremsenstrom]; 0 %5.2f ; 1 %5.2f ;", An_In_0, Bremsenstrom);
//    pc.printf(" [DMS-Kanal]; 0 %5.2f ;", DMS_Out);
    pc.printf(" [Motorstrom, Bremsenstrom]; 0 %5.2f ; 1 %5.2f ;", Motorstrom, Bremsenstrom);
    pc.printf(" \r\n\r\n");
    wait_ms(50);
}
    

//***************************************************************************************************
// MAIN:




int main(void)
{
//********************* VARIABLEN *****************************
    
    DMS_Skalierung = 1;
    Motor.period_us(200);   
    Bremse.period_us(200);
    
    

    
//    Matrix Values(1,4);
   
    
//************************ MAIN ********************************

    
while(true) 
    {
    Motor.pulsewidth_us(0);
    Bremse.pulsewidth_us(0);
    read_sensors();
    send_data();
        
    DMS_Out = DMS_Kanal.read_u16()*DMS_Skalierung;
    
    //safety();


    Myled=!Myled;
    wait_ms(500);
    

//********************* Messprozedur ****************************
//*********************
    

    
    
}    
    
}