test
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Tue Jul 12 2022 21:13:00 by
1.7.2