Tot
Dependencies: HCSR04 TextLCD mbed
main.cpp
00001 #include "mbed.h" 00002 #include "TextLCD.h" 00003 #include "hcsr04.h" 00004 00005 PwmOut dreapta(PTA4); 00006 PwmOut stanga(PTD3); 00007 DigitalOut in1(PTA5); 00008 DigitalOut in2(PTC8); 00009 DigitalOut in3(PTD0); 00010 DigitalOut in4(PTD2); 00011 TextLCD lcd(PTE21,PTE20,PTB0,PTB1,PTB2,PTB3); 00012 Serial device(PTE22, PTE23); 00013 DigitalOut Spate(PTC2); 00014 DigitalOut Fata1(PTC1); 00015 DigitalOut Fata2(PTA1); 00016 DigitalOut SemnalizareStanga(PTD1); 00017 DigitalOut SemnalizareDreapta(PTA2); 00018 00019 void setare_PWM_motoare(double Stanga,double Dreapta) 00020 { 00021 stanga.period(0.020); 00022 dreapta.period(0.020); 00023 stanga.pulsewidth(Stanga); 00024 dreapta.pulsewidth(Dreapta); 00025 } 00026 00027 int main() { 00028 double S,D; 00029 char Instr; 00030 device.baud(9600); 00031 00032 while(1) 00033 { 00034 00035 if(device.readable()) 00036 { 00037 00038 lcd.cls(); 00039 lcd.locate(0,0); 00040 Instr = device.getc(); 00041 switch (Instr){ 00042 case 48://viteza motoare 00043 lcd.cls(); 00044 lcd.locate(3,0); 00045 lcd.printf("Viteza 0"); 00046 break; 00047 case 49://viteza motoare 00048 lcd.cls(); 00049 lcd.locate(3,0); 00050 lcd.printf("Viteza 1"); 00051 S=0.005; 00052 D=0.005; 00053 break; 00054 case 50://viteza motoare 00055 lcd.cls(); 00056 lcd.locate(3,0); 00057 lcd.printf("Viteza 2"); 00058 S=0.006; 00059 D=0.006; 00060 break; 00061 case 51://viteza motoare 00062 lcd.cls(); 00063 lcd.locate(3,0); 00064 lcd.printf("Viteza 3"); 00065 S=0.008; 00066 D=0.008; 00067 break; 00068 case 52://viteza motoare 00069 lcd.cls(); 00070 lcd.locate(3,0); 00071 lcd.printf("Viteza 4"); 00072 S=0.010; 00073 D=0.010; 00074 break; 00075 case 53://viteza motoare 00076 lcd.cls(); 00077 lcd.locate(3,0); 00078 lcd.printf("Viteza 5"); 00079 S=0.012; 00080 D=0.012; 00081 break; 00082 case 54://viteza motoare 00083 lcd.cls(); 00084 lcd.locate(3,0); 00085 lcd.printf("Viteza 6"); 00086 S=0.014; 00087 D=0.014; 00088 break; 00089 case 55://viteza motoare 00090 lcd.cls(); 00091 lcd.locate(3,0); 00092 lcd.printf("Viteza 7"); 00093 S=0.016; 00094 D=0.016; 00095 break; 00096 case 56://viteza motoare 00097 lcd.cls(); 00098 lcd.locate(3,0); 00099 lcd.printf("Viteza 8"); 00100 S=0.018; 00101 D=0.018; 00102 break; 00103 case 57://viteza motoare 00104 lcd.cls(); 00105 lcd.locate(3,0); 00106 lcd.printf("Viteza 9"); 00107 S=0.019; 00108 D=0.019; 00109 break; 00110 case 87: //faruri fata ON 00111 Fata1=1; 00112 Fata2=1; 00113 break; 00114 case 119://faruri fata OFF 00115 Fata1=0; 00116 Fata2=0; 00117 case 83://Stop 00118 setare_PWM_motoare(0,0); 00119 lcd.cls(); 00120 lcd.locate(5,0); 00121 lcd.printf("Stop"); 00122 SemnalizareStanga=0; 00123 SemnalizareDreapta=0; 00124 Spate=1; 00125 wait(0.02); 00126 Spate=0; 00127 break; 00128 case 70://inainte 00129 lcd.cls(); 00130 lcd.locate(5,0); 00131 lcd.printf("Inainte"); 00132 in1=0; 00133 in2=1; 00134 in3=1; 00135 in4=0; 00136 setare_PWM_motoare(S,D); 00137 Spate=0; 00138 SemnalizareStanga=0; 00139 SemnalizareDreapta=0; 00140 break; 00141 case 66://inapoi 00142 lcd.cls(); 00143 lcd.locate(5,0); 00144 lcd.printf("Inapoi"); 00145 in1=1; 00146 in2=0; 00147 in3=0; 00148 in4=1; 00149 setare_PWM_motoare(S,D); 00150 Spate=1; 00151 SemnalizareStanga=0; 00152 SemnalizareDreapta=0; 00153 break; 00154 case 82://viraj dreapta 00155 lcd.cls(); 00156 lcd.locate(5,0); 00157 lcd.printf("Dreapta"); 00158 setare_PWM_motoare(S,0); 00159 SemnalizareStanga=0; 00160 SemnalizareDreapta=1; 00161 wait(0.04); 00162 SemnalizareDreapta=0; 00163 break; 00164 case 76://viraj stanga 00165 lcd.cls(); 00166 lcd.locate(5,0); 00167 lcd.printf("Stanga"); 00168 setare_PWM_motoare(0,D); 00169 SemnalizareStanga=1; 00170 SemnalizareDreapta=0; 00171 wait(0.04); 00172 SemnalizareStanga=0; 00173 break; 00174 case 73://inainte->dreapta 00175 lcd.cls(); 00176 lcd.locate(5,0); 00177 lcd.printf("Inainte"); 00178 lcd.locate(5,1); 00179 lcd.printf("Dreapta"); 00180 in1=0; 00181 in2=1; 00182 in3=1; 00183 in4=0; 00184 setare_PWM_motoare(S,D-0.005); 00185 SemnalizareStanga=0; 00186 SemnalizareDreapta=1; 00187 wait(0.04); 00188 SemnalizareDreapta=0; 00189 break; 00190 case 71://inainte->stanga 00191 lcd.cls(); 00192 lcd.locate(5,0); 00193 lcd.printf("Inainte"); 00194 lcd.locate(5,1); 00195 lcd.printf("Stanga"); 00196 in1=0; 00197 in2=1; 00198 in3=1; 00199 in4=0; 00200 setare_PWM_motoare(S-0.005,D); 00201 SemnalizareStanga=1; 00202 SemnalizareDreapta=0; 00203 wait(0.04); 00204 SemnalizareStanga=0; 00205 break; 00206 case 72://inapoi->stanga 00207 lcd.cls(); 00208 lcd.locate(5,0); 00209 lcd.printf("Inapoi"); 00210 lcd.locate(5,1); 00211 lcd.printf("Stanga"); 00212 in1=1; 00213 in2=0; 00214 in3=0; 00215 in4=1; 00216 setare_PWM_motoare(S-0.005,D); 00217 SemnalizareStanga=1; 00218 SemnalizareDreapta=0; 00219 wait(0.04); 00220 SemnalizareStanga=0; 00221 break; 00222 case 74://inapoi->dreapta 00223 lcd.cls(); 00224 lcd.locate(5,0); 00225 lcd.printf("Inapoi"); 00226 lcd.locate(5,1); 00227 lcd.printf("Dreapta"); 00228 in1=1; 00229 in2=0; 00230 in3=0; 00231 in4=1; 00232 setare_PWM_motoare(S,D-0.005); 00233 SemnalizareStanga=0; 00234 SemnalizareDreapta=1; 00235 wait(0.04); 00236 SemnalizareDreapta=0; 00237 break; 00238 } 00239 } 00240 } 00241 }
Generated on Sun Jul 31 2022 22:20:49 by 1.7.2