Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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