Parking senzor izveden s NUCLEO F411RE mikroupravljačem te HCSR04 ultrazvučnim senzorom i piezo električnim zvučnikom
Dependencies: mbed IndikatorUdaljenosti Parking_Senzor-Danijel_Pranjic HCSR04 zvucniEfekt
main.cpp
00001 #include "mbed.h" 00002 #include "hcsr04.h" 00003 #include "zvucniEfekt.h" 00004 #include "Tipkalo.h" 00005 #include "DeklaracijaVarijabli.h" 00006 #include "IndikatorUdaljenostiObjekta.h" 00007 00008 Tipkalo tipka(gumb); //deklaracija objekta klase Tipkalo za prekidač te dodjeljivanje pinova s mbeda (PC_13 - gumb se nalazi direktno na tiskanoj pločici) 00009 indikatorUdaljenostiObjekta LED(D2,D3,D4,D5); //deklaracija objekta klase indikatorUdaljenostiObjekta za LED indikatore te dodjeljivanje pinova s mbeda (D2, D3, D4, D5 - NUCLEO F411RE) 00010 HCSR04 senzor_prednji(trigerStraznjegSenzora, echoStraznjegSenzora); //deklaracija objekta klase HCSR04 za 1.senzor te dodjeljivanje pinova s mbeda (D7,D6 - NUCLEO F411RE) 00011 HCSR04 senzor_zadnji(trigerPrednjegSenzora, echoPrednjegSenzora); //deklaracija objekta klase HCSR04 za 2.senzor te dodjeljivanje pinova s mbeda (D12,D11 - NUCLEO F411RE) 00012 zvucniEfekt zvucnik(buzzer); //deklaracija objekta klase Beep za piezo zvučnik te dodjeljivanje pinova s mbeda (D9 (PWM Pin) - NUCLEO F411RE) 00013 00014 //Funkcija koja obavlja svoju zadacu zadanu za straznji senzor sustava 00015 void straznjiSenzor() 00016 { 00017 int udaljenost_zadnji = senzor_zadnji.udaljenost(); //povlačenje vrijednosti udaljenosti iz klase HCSR04 u definiranu varijablu 00018 if(udaljenost_zadnji >= 30 && udaljenost_zadnji< 45) { 00019 LED.udaljenostObjekta30do45(); 00020 zvucnik.radiZvucnik(500,0.5); 00021 wait(0.3); 00022 zvucnik.neRadiZvucnik(); 00023 wait(0.8); 00024 } else if(udaljenost_zadnji>= 15 && udaljenost_zadnji < 30) { 00025 LED.udaljenostObjekta15do30(); 00026 zvucnik.radiZvucnik(500,0.5); 00027 wait(0.2); 00028 zvucnik.neRadiZvucnik(); 00029 wait(0.4); 00030 } else if(udaljenost_zadnji>=5 && udaljenost_zadnji<15) { 00031 LED.udaljenostObjekta5do15(); 00032 zvucnik.radiZvucnik(500,0.5); 00033 wait(0.1); 00034 zvucnik.neRadiZvucnik(); 00035 wait(0.2); 00036 } else if(udaljenost_zadnji>=0 && udaljenost_zadnji<5) { 00037 LED.udaljenostObjekta0do5(); 00038 zvucnik.radiZvucnik(500,0.5); 00039 wait(0.05); 00040 zvucnik.neRadiZvucnik(); 00041 wait(0.05); 00042 } else { 00043 LED.objektIzvanDometa(); 00044 zvucnik.neRadiZvucnik(); 00045 } 00046 } 00047 00048 //Funkcija koja obavlja svoju zadacu zadanu za prednji senzor sustava 00049 void prednjiSenzor() 00050 { 00051 long udaljenost_prednji = senzor_prednji.udaljenost(); //povlačenje vrijednosti udaljenosti iz klase HCSR04 u definiranu varijablu 00052 if(udaljenost_prednji >= 30 && udaljenost_prednji< 45) { 00053 LED.udaljenostObjekta30do45(); 00054 zvucnik.radiZvucnik(500,0.5); 00055 wait(0.3); 00056 zvucnik.neRadiZvucnik(); 00057 wait(0.8); 00058 } else if(udaljenost_prednji>= 15 && udaljenost_prednji < 30) { 00059 LED.udaljenostObjekta15do30(); 00060 zvucnik.radiZvucnik(500,0.5); 00061 wait(0.2); 00062 zvucnik.neRadiZvucnik(); 00063 wait(0.4); 00064 } else if(udaljenost_prednji>=5 && udaljenost_prednji<15) { 00065 LED.udaljenostObjekta5do15(); 00066 zvucnik.radiZvucnik(500,0.5); 00067 wait(0.1); 00068 zvucnik.neRadiZvucnik(); 00069 wait(0.2); 00070 } else if(udaljenost_prednji>=0 && udaljenost_prednji<5) { 00071 LED.udaljenostObjekta0do5(); 00072 zvucnik.radiZvucnik(500,0.5); 00073 wait(0.05); 00074 zvucnik.neRadiZvucnik(); 00075 wait(0.05); 00076 } else { 00077 LED.objektIzvanDometa(); 00078 zvucnik.neRadiZvucnik(); 00079 } 00080 } 00081 00082 //Funkcija zaslužna za promjenu rada pojedinog senzora 00083 void prebaciSPrvogNaDrugiSenzor() 00084 { 00085 if((tipka.procitajBrojPritisakaGumba())%3==0) { //Postavljen je uvjet o pritisku tipke na mbedu (ako je paran radi prednji senzor a ako je neparan radi straznji senzor) 00086 straznjiSenzor(); //Poziv funkcije straznjiSenzor() 00087 } else { 00088 prednjiSenzor(); 00089 } 00090 } 00091 00092 //glavna funkcija programa 00093 int main() 00094 { 00095 while(1) { 00096 prebaciSPrvogNaDrugiSenzor(); 00097 } 00098 } 00099
Generated on Sat Jul 30 2022 12:03:57 by
1.7.2