Matej Slapsak / Mbed 2 deprecated UV_LED

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 //indikacija rgb
00004 #define OFF         0
00005 #define ON          1
00006 
00007 DigitalOut myled_blue(p16);
00008 DigitalOut myled_green(p30);
00009 DigitalOut myled_red(p15);
00010 
00011 DigitalIn start1(p11); 
00012 DigitalIn start2(p12); 
00013 DigitalIn start3(p13); 
00014 DigitalIn start4(p10); 
00015 
00016 //nastavitev pwm signalov
00017 PwmOut pwm1 (p21);            
00018 PwmOut pwm2(p22);
00019 
00020 //dodano za merjenje toka in napetosti
00021 //def analogno merjenje nap in toka
00022 AnalogIn measVol (p17);
00023 AnalogIn measCurrG (p18);
00024 AnalogIn measCurrH(p19);
00025 float voltageMeas = 0.0;
00026 float voltageCalc = 0.0;
00027 float currentMeasG = 0.0;
00028 float currentCalcG = 0.0;
00029 float currentMeasH = 0.0;
00030 float currentCalcH = 0.0;
00031 
00032 float PWM1 = 0.2f; //20% duty cycle
00033 float PWM2 = 0.6f; //60% duty cycle
00034 
00035 //funkcija za nastavljanje baudrate pri serijski komunikaciji na PC
00036 void baud(int baudrate)
00037 {
00038     Serial s(USBTX, USBRX);
00039     s.baud(baudrate);
00040 }
00041 
00042 void merjenjeTokaInNapetosti() {
00043     
00044     printf ("\r\n");
00045     printf ("<------- \r\n");
00046     printf ("Measurement: \r\n");
00047     DigitalOut pwmGD (p21);
00048     pwmGD = 1;
00049     //pwmHD = 1;
00050     
00051     wait(0.1); 
00052 
00053     voltageMeas = measVol.read();
00054     voltageMeas *= 3.3;
00055     voltageCalc = voltageMeas * 9.15; //8.2
00056 
00057     currentMeasG = measCurrG.read();
00058     currentMeasG *= 3.3;
00059     currentCalcG = currentMeasG * 1.259;
00060 
00061     currentMeasH = measCurrH.read();
00062     currentMeasH *= 3.3;
00063     currentCalcH = currentMeasH * 1.279;  
00064     wait(3);   
00065 
00066     printf("Voltage: %f V\r\n", voltageCalc);
00067     printf("Current1: %f A\r\n", currentCalcG);
00068     //printf("Current2: %f A\r\n", currentCalcH);
00069     printf ("-------> \r\n");
00070 
00071     pwmGD = 0;
00072 
00073     }
00074 
00075 int main() 
00076 {   
00077     //hitrost serijske komunikacije
00078     baud(9600);
00079     
00080     while(1)
00081     {
00082         myled_blue  = OFF;
00083         myled_green  = OFF;
00084         myled_red  = OFF;
00085         
00086         if(start1 == 0)
00087         {
00088             myled_blue  = ON;
00089             merjenjeTokaInNapetosti();
00090             wait(2);          
00091         }
00092         
00093         else if(start2 == 0)
00094         {
00095             //---------------SET
00096             //signal duration
00097             float t1 = 0.1;
00098             float t2 = 0.2;
00099             //duty cycle
00100             //float PWM1 = 0.2f; //20% duty cycle
00101             //float PWM2 = 0.6f; //60% duty cycle
00102             //---------------SET
00103             
00104             myled_green  = ON;
00105             PwmOut pwm1 (p21);            
00106             PwmOut pwm2(p22);
00107             printf ("\r\n");
00108             printf ("<------- \r\n");
00109             
00110             //nastavitev pwm period
00111             pwm1.period(0.001f);
00112             pwm2.period(0.001f);
00113             
00114             pwm1=0;
00115             pwm2=0;
00116             
00117             printf ("Start \r\n");
00118             printf("pwm1 read: %f\n\r",pwm1.read()); 
00119             //printf("pwm2 read: %f\n\r",pwm2.read()); 
00120             
00121             //printf ("\r\n");
00122             
00123             //printf("pwm1 read: %f\n\r",pwm1.read()*100); 
00124             
00125             //izvajanje krmilja
00126             printf ("PWM set \r\n");
00127             
00128             pwm1.write(PWM1);
00129             
00130             printf("pwm1 read: %f\n\r",pwm1.read()); 
00131             //printf("pwm2 read: %f\n\r",pwm2.read()); 
00132             wait(t1);
00133             
00134             printf ("PWM set \r\n");
00135             pwm1.write(PWM2);
00136             
00137             printf("pwm2 read: %f\n\r",pwm1.read()); 
00138             //printf("pwm2 read: %f\n\r",pwm2.read()); 
00139             wait(t2);
00140             printf ("PWM off \r\n");
00141             pwm1 = 0;
00142             pwm2 = 0;
00143             
00144             
00145             printf("pwm1 read: %f\n\r",pwm1.read()); 
00146             //printf("pwm2 read: %f\n\r",pwm2.read()); 
00147             printf ("End \r\n");
00148             printf ("-------> \r\n");
00149             wait(2);
00150             myled_green  = OFF;   
00151         }
00152                 
00153         else if(start3 == 0)
00154         {
00155         
00156             if(PWM1 >= 1.0f)
00157             {
00158                 PWM1 = 0.0f;
00159             }
00160                 
00161             else
00162             {
00163                 PWM1 = PWM1 + 0.1f;
00164             }
00165             
00166             printf("\n\r");
00167             printf("PWM1: %f\n\r",PWM1); 
00168             
00169             myled_red  = ON;
00170             wait(0.2);           
00171         }
00172         
00173         else if(start4 == 0)
00174         {
00175             if(PWM2 >= 1.0f)
00176             {
00177                 PWM2 = 0.0f;
00178             }
00179                 
00180             else
00181             {
00182                 PWM2 = PWM2 + 0.1f;
00183             }
00184             
00185             printf("\n\r");
00186             printf("PWM2: %f\n\r",PWM2);
00187             
00188             myled_blue  = ON; 
00189             myled_red  = ON;  
00190             myled_green  = ON;
00191             wait(0.2);         
00192         }
00193         
00194     }
00195 }