Program namijenjen zabavi, a omogućuje korisniku ovisno o donacijama njegova tri prijatelja pustiti određenu pjesmu s Jukebox-a pošto svaka pjesma ima svoju cijenu.
Jukebox.cpp
00001 #include "mbed.h" 00002 #include "TextLCD.h" 00003 #include "Ledice.h" 00004 InterruptIn button(PC_13); 00005 Ticker turn_me_on1, turn_me_on2, turn_me_on3; //probati napraviti zaglavlje i cpp za funkcije, te zaglavlje i cpp za frekvencije pjesama :D 00006 Timer vrijeme; 00007 PwmOut buzzer(PB_4); 00008 Serial pc(USBTX, USBRX); 00009 //frekvencija melodije "Lijepa naša" 00010 float f1[]= {659.3, 659.3, 659.3, 587.3, 587.3, 523.3, 523.3, 392, 349.2, 329.6, 349.2, 00011 392, 440, 392, 349.2, 329.6, 349.2, 392, 659.3, 659.3, 659.3, 587.3, 587.3, 523.3, 523.3, 392, 00012 349.2, 329.6, 349.2, 392, 440, 493.9, 493.9, 587.3, 523.3, 493.9, 493.9, 493.9, 440, 493.9, 00013 493.9, 523.3, 587.3, 493.9, 587.3, 587.3, 587.3, 587.3, 587.3, 523.3, 493.9, 440, 392, 659.3, 00014 659.3, 659.3, 587.3, 587.3, 523.3, 523.3, 392, 349.2, 329.6, 349.2, 392, 440, 493.9, 493.9, 00015 587.3, 523.3 00016 };//70 notes 00017 //trajanje nota 00018 float b1[]= {1, 1, 1.5, 0.5, 0.5, 0.5, 1, 2, 0.5, 0.5, 0.5, 0.5, 2, 0.5, 0.5, 0.5, 0.5, 2, 1, 1, 1.5, 0.5, 00019 0.5, 0.5, 1, 2, 0.5, 0.5, 0.5, 0.5, 2, 0.5, 0.5, 1, 2, 1, 1, 1.5, 0.5, 1, 0.5, 0.5, 1.5, 0.5, 0.5, 0.5, 0.5, 00020 0.5, 1, 1, 1, 1, 2, 1, 1, 1.5, 0.5, 0.5, 0.5, 1, 2, 0.5, 0.5, 0.5, 0.5, 2, 0.5, 0.5, 1, 2, 0.5 00021 }; //70 notes 00022 //frekvencija melodije "Zvončići" 00023 float f2[]= {329.6, 329.6, 329.6, 329.6, 329.6, 329.6, 329.6, 392, 261.6, 293.6, 329.6, 349.2, 349.2, 349.2, 349.2, 349.2, 00024 329.6, 329.6, 329.6, 329.6, 329.6, 293.6, 293.6, 329.6, 293.6, 392, 329.6, 329.6, 329.6, 329.6, 329.6, 329.6, 00025 329.6, 392, 261.6, 293.6, 329.6, 349.2, 349.2, 349.2, 349.2, 349.2, 329.6, 329.6, 329.6, 329.6,392, 392, 349.2, 00026 293.6, 261.6 00027 }; //51 notes 00028 //trajanje nota 00029 float b2[]= {1, 1, 2, 1, 1, 2, 1, 1, 1.5, 0.5, 4, 1, 1, 1.5, 0.5, 1, 1, 1, 0.5, 0.5, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 00030 1.5, 0.5, 4, 1, 1, 1.5, 0.5, 1, 1, 1, 0.5, 0.5, 1, 1, 1, 1, 4 00031 };//51 notes 00032 //frekvencija melodije "Dvadesete" 00033 float f3[]= {1, 523.3, 587.3, 659.3, 659.3, 659.3, 659.3, 587.3, 523.3, 659.3, 587.3, 587.3, 1, 587.3, 659.3, 698.5, 698.5, 659.3, 00034 659.3, 587.3, 523.3, 523.3, 659.3, 587.3, 440, 440, 1, 523.3, 587.3, 659.3, 659.3, 659.3, 659.3, 587.3, 523.3, 659.3, 00035 587.3, 587.3, 1, 587.3, 659.3, 698.5, 698.5, 659.3, 659.3, 587.3, 523.3, 523.3, 659.3, 587.3, 440, 440, 440, 1 00036 }; //53 notes 00037 //trajanje nota 00038 float b3[]= {2, 0.5, 0.5, 0.5, 1, 1, 0.5, 0.5, 0.5, 0.5, 1, 0.5, 1, 0.5, 0.5, 0.5, 1, 0.5, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 1, 0.5, 1, 00039 0.5, 0.5, 0.5, 1, 1, 0.5, 0.5, 0.5, 0.5, 1, 0.5, 1, 0.5, 0.5, 0.5, 1, 0.5, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 1, 0.5, 1, 1 00040 };//53 notes 00041 //frekvencija melodije "Moj Ivane" 00042 float f4[]= {493.9, 587.3, 523.3, 523.3, 698.5, 659.3, 659.3, 587.3, 587.3, 523.3, 587.3, 587.3, 523.3, 587.3, 698.5, 659.3, 659.3, 587.3, 00043 587.3, 523.3, 523.3, 587.3, 523.3, 493.9, 493.9, 587.3, 523.3, 523.3, 698.5, 659.3, 659.3, 587.3, 587.3, 523.3, 587.3, 587.3, 00044 523.3, 587.3, 698.5, 659.3, 659.3, 587.3, 587.3, 523.3, 523.3, 587.3, 523.3, 493.9, 587.3, 523.3, 523.3 00045 };//51 notes 00046 //trajanje nota 00047 float b4[]= {1, 1, 0.5, 1.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1.5, 0.5, 0.5, 0.5, 0.5, 00048 1, 1, 0.5, 1.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 1.5, 0.5, 0.5, 0.5, 0.5, 00049 0.5, 0.5, 3 00050 };//51 notes 00051 00052 TextLCD lcd(PA_0, PA_1, PA_4, PB_0, PC_1, PC_0); // rs, e, d4-d7 00053 int x=0; 00054 int y=0; 00055 int s=0; 00056 int z=0; 00057 int t=0; 00058 int i=0; 00059 int pjesma1=50, pjesma2=60, pjesma3=90; 00060 char c; 00061 void ometac(void); 00062 void led (void); 00063 void led1 (void); 00064 void led2 (void); 00065 void led3 (void); 00066 void led4 (void); 00067 void svegori(void); 00068 void knightrider(void); 00069 Ledice redled(PA_10); 00070 Ledice yellowled(PB_3); 00071 Ledice greenled(PB_5); 00072 int main() 00073 { 00074 vrijeme.start(); 00075 button.rise(&ometac); 00076 lcd.locate(0,0); 00077 srand(time(0)); //current time as seed of random number generator 00078 x = (rand() %51); 00079 y = (rand() %51); 00080 z = (rand() %51); 00081 pc.printf("\n\rMate je odlucio naruciti pjesmu za ekipu, ali zaboravio je novcanik.\n\rZamolio je svoja tri prijatelja Jozu, Peru i Ivu da mu posude odredjeni iznos novca kako bi mogao naruciti zeljenu pjesmu.\n\rKvaka je ta da svaka pjesma ima odredjni iznos. Zato ce Mate moci pustiti pjesmu ovisno o donacijama svojih prijatelja.\n\r"); 00082 pc.printf("\n\rJozo je dao Mati %d kn\n", x); 00083 lcd.printf("Jozo je dao\nMati %d kn", x); 00084 wait(2); 00085 lcd.cls(); 00086 pc.printf("\n\rPero je dao Mati %d kn\n", y); 00087 lcd.printf("Pero je dao\nMati %d kn", y); 00088 wait(2); 00089 lcd.cls(); 00090 pc.printf("\n\rIvo je dao Mati %d kn\n", z); 00091 lcd.printf("Ivo je dao\nMati %d kn", z); 00092 wait(2); 00093 lcd.cls(); 00094 s=x+y+z; 00095 pc.printf("\n\rMate sad posjeduje %d kn. Kao takav, upucuje se ka Jukebox-u!\n\r",s); 00096 lcd.printf("Mate sad ima\n%d kn!", s); 00097 wait(2); 00098 lcd.cls(); 00099 lcd.printf("Slijedi izbor\npjesme"); 00100 wait(2); 00101 lcd.cls(); 00102 pc.printf("\n\rNa jukebox-u svaka pjesma ima svoj odredjeni iznos koji se mora uplatiti kako bi ju se pustilo.\n\rIzbor je slijedeci:\n\ra. Lijepa nasa 50kn\n\rb. Zvoncici 60kn\n\rc. Cajka majka 90kn\n\rSad slijedi Matin izbor...\n\r"); 00103 pc.printf("\n\rJukebox ispisuje vas raspolozivi iznos:\n\rImate na raspolaganju %d kn", s); 00104 //ovdje samo ide poruka da ništa od pjesme 00105 if (s < pjesma1) { 00106 led(); 00107 pc.printf("\n\rPrijatelju, neces ti nista pustati veceras. Vrati se za svoj stol!\n\r"); 00108 lcd.printf("Nema za tebe\nnista!"); 00109 wait(2); 00110 lcd.cls(); 00111 t=vrijeme.read(); 00112 lcd.printf("Potrosio si\n%ds na ovo!", t); 00113 wait(2); 00114 lcd.cls(); 00115 } 00116 //ovdje kreće loop s jednom pjesmom 00117 else if ((s > pjesma1) && (s < pjesma2)) { 00118 lcd.cls(); 00119 pc.printf("\n\rMozes dobiti samo prvu pjesmu. Sviram: Lijepa nasa...\n"); 00120 lcd.printf("Moze samo prva\npjesma!"); 00121 wait(1); 00122 lcd.cls(); 00123 turn_me_on1.attach(&led1, 0.2); 00124 for (i=0; i<=70; i++) { 00125 lcd.printf("Svira:\nLijepa nasa..."); 00126 buzzer.period(1/(f1[i])); // set PWM period 00127 buzzer=0.5; // set duty cycle 00128 wait(0.5*b1[i]); 00129 buzzer=0.0; 00130 lcd.cls(); 00131 if (i==70) { 00132 lcd.printf("To bi bilo to!"); 00133 pc.printf("\n\rTo je to za danas!\n\r"); 00134 wait(2); 00135 lcd.cls(); 00136 t=vrijeme.read(); 00137 lcd.printf("Potrosio si\n%ds na ovo!", t); 00138 wait(2); 00139 lcd.cls(); 00140 } 00141 } 00142 led(); 00143 } 00144 //ovdje kreće loop s dvije pjesme 00145 else if ((s > pjesma2) && (s < pjesma3)) { 00146 pc.printf("\n\rMozes dobiti prvu ili drugu pjesmu pjesmu. Odaberi sto ces:\n\r"); 00147 lcd.printf("Moze prva ili\ndruga pjesma!"); 00148 lcd.cls(); 00149 lcd.printf("Odaberi pjesmu.."); 00150 wait(1); 00151 lcd.cls(); 00152 c=pc.getc(); 00153 if (c=='a') { 00154 pc.printf("\n\rDobar odabir! Svira: Lijepa nasa...\n\r"); 00155 turn_me_on1.attach(&led1, 0.2); 00156 for (i=0; i<=70; i++) { 00157 lcd.printf("Svira:\nLijepa nasa..."); 00158 buzzer.period(1/(f1[i])); // set PWM period 00159 buzzer=0.5; // set duty cycle 00160 wait(0.5*b1[i]); 00161 buzzer=0.0; 00162 lcd.cls(); 00163 if (i==70) { 00164 lcd.printf("To bi bilo to!"); 00165 pc.printf("\n\rTo je to za danas!\n"); 00166 wait(2); 00167 lcd.cls(); 00168 t=vrijeme.read(); 00169 lcd.printf("Potrosio si\n%ds na ovo!", t); 00170 wait(2); 00171 lcd.cls(); 00172 } 00173 } 00174 led(); 00175 } else if (c=='b') { 00176 pc.printf("\n\rDobar odabir! Svira: Zvoncici...\n\r"); 00177 turn_me_on2.attach(&led2, 0.2); 00178 for (i=0; i<=51; i++) { 00179 lcd.printf("Svira:\nZvoncici..."); 00180 buzzer.period(1/(f2[i])); // set PWM period 00181 buzzer=0.5; // set duty cycle 00182 wait(0.25*b2[i]); 00183 buzzer=0.0; 00184 lcd.cls(); 00185 if (i==51) { 00186 lcd.printf("To bi bilo to!"); 00187 pc.printf("\n\rTo je to za danas!\n\r"); 00188 wait(2); 00189 lcd.cls(); 00190 t=vrijeme.read(); 00191 lcd.printf("Potrosio si\n%ds na ovo!", t); 00192 wait(2); 00193 lcd.cls(); 00194 } 00195 } 00196 led(); 00197 } else { 00198 pc.printf("\n\rNisi odabrao nista od ponudjenog.\n\rAj bok\n\r!"); 00199 lcd.printf("Krivi odabir!\nZbogom momce!"); 00200 wait(2); 00201 lcd.cls(); 00202 t=vrijeme.read(); 00203 lcd.printf("Potrosio si\n%ds na ovo!", t); 00204 wait(2); 00205 lcd.cls(); 00206 } 00207 } 00208 //Ovdje kreće loop s tri pjesme 00209 if ((s >= pjesma3)) { 00210 pc.printf("\n\rMozes dobiti bilo koju pjesmu. Odaberi koju ces:\n\r"); 00211 lcd.printf("Mogu sve\npjesme!"); 00212 lcd.cls(); 00213 lcd.printf("Odaberi pjesmu.."); 00214 wait(1); 00215 lcd.cls(); 00216 c=pc.getc(); 00217 if (c=='a') { 00218 pc.printf("\n\rDobar odabir! Svira: Lijepa nasa...\n\r"); 00219 turn_me_on1.attach(&led1, 0.2); 00220 for (i=0; i<=70; i++) { 00221 lcd.printf("Svira:\nLijepa nasa..."); 00222 buzzer.period(1/(f1[i])); // set PWM period 00223 buzzer=0.5; // set duty cycle 00224 wait(0.5*b1[i]); 00225 buzzer=0.0; 00226 lcd.cls(); 00227 if (i==70) { 00228 lcd.printf("To bi bilo to!"); 00229 pc.printf("\n\rTo je to za danas!\n\r"); 00230 wait(2); 00231 lcd.cls(); 00232 t=vrijeme.read(); 00233 lcd.printf("Potrosio si\n%ds na ovo!", t); 00234 wait(2); 00235 lcd.cls(); 00236 } 00237 } 00238 led(); 00239 } else if (c=='b') { 00240 pc.printf("\n\rDobar odabir! Svira: Zvoncici...\n\r"); 00241 turn_me_on2.attach(&led2, 0.2); 00242 for (i=0; i<=51; i++) { 00243 lcd.printf("Svira:\nZvoncici..."); 00244 buzzer.period(1/(f2[i])); // set PWM period 00245 buzzer=0.5; // set duty cycle 00246 wait(0.25*b2[i]); 00247 buzzer=0.0; 00248 lcd.cls(); 00249 if (i==51) { 00250 lcd.printf("To bi bilo to!"); 00251 pc.printf("\n\rTo je to za danas!\n\r"); 00252 wait(2); 00253 lcd.cls(); 00254 t=vrijeme.read(); 00255 lcd.printf("Potrosio si\n%ds na ovo!", t); 00256 wait(2); 00257 lcd.cls(); 00258 } 00259 } 00260 led(); 00261 } else if (c=='c') { 00262 pc.printf("\n\rMogao si bolje izabrati! Svira: Cajka majka...\n\r"); 00263 turn_me_on3.attach(&svegori, 0.2); 00264 for (i=0; i<=53; i++) { 00265 lcd.printf("Svira:\nCajka majka..."); 00266 buzzer.period(1/(f3[i])); // set PWM period 00267 buzzer=0.5; // set duty cycle 00268 wait(0.5*b3[i]); 00269 buzzer=0.0; 00270 lcd.cls(); 00271 if (i==53) { 00272 lcd.printf("To bi bilo to!"); 00273 pc.printf("\n\rTo je to za danas!\n\r"); 00274 wait(2); 00275 lcd.cls(); 00276 t=vrijeme.read(); 00277 lcd.printf("Potrosio si\n%ds na ovo!", t); 00278 wait(2); 00279 lcd.cls(); 00280 } 00281 } 00282 led(); 00283 } else { 00284 pc.printf("\n\rNisi odabrao nista od ponudjenog.\n\rAj bok!\n\r"); 00285 lcd.printf("Krivi odabir!\nZbogom momce!"); 00286 wait(2); 00287 lcd.cls(); 00288 t=vrijeme.read(); 00289 lcd.printf("Potrosio si\n%ds na ovo!", t); 00290 wait(2); 00291 lcd.cls(); 00292 } 00293 } 00294 } 00295 void ometac() 00296 { 00297 lcd.cls(); 00298 pc.printf("\n\rBrateee, pusti nesto od ToNsonaaa!\n\r"); 00299 lcd.printf("Brate,pusti\nToNsonaaa!"); 00300 wait(2); 00301 lcd.cls(); 00302 led4(); 00303 for (i=0; i<=51; i++) { 00304 lcd.printf("Evo ti ga!"); 00305 buzzer.period(1/(f4[i])); // set PWM period 00306 buzzer=0.5; // set duty cycle 00307 wait(0.5*b4[i]); 00308 buzzer=0.0; 00309 lcd.cls(); 00310 if (i==51) { 00311 lcd.printf("Ajmo sad dalje!"); 00312 pc.printf("\n\rNastavljamo dalje!\n\r"); 00313 wait(2); 00314 lcd.cls(); 00315 } 00316 } 00317 led(); 00318 } 00319 void led1 () 00320 { 00321 for(int i=0; i<3; i++) { 00322 redled.boom(); 00323 yellowled.off(); 00324 greenled.boom(); 00325 wait(0.25); 00326 redled.off(); 00327 yellowled.boom(); 00328 greenled.off(); 00329 wait(0.25); 00330 redled.boom(); 00331 yellowled.off(); 00332 greenled.boom(); 00333 wait(0.25); 00334 } 00335 turn_me_on1.detach(); 00336 } 00337 void led2 () 00338 { 00339 for(int i=0; i<3; i++) { 00340 redled.off(); 00341 yellowled.boom(); 00342 greenled.off(); 00343 wait(0.25); 00344 redled.boom(); 00345 yellowled.off(); 00346 greenled.boom(); 00347 wait(0.25); 00348 redled.off(); 00349 yellowled.boom(); 00350 greenled.off(); 00351 wait(0.25); 00352 } 00353 turn_me_on2.detach(); 00354 } 00355 void led3 () 00356 { 00357 knightrider(); 00358 } 00359 void led4 () 00360 { 00361 for(int i=0; i<3; i++) { 00362 svegori(); 00363 wait(0.25); 00364 led(); 00365 wait(0.25); 00366 svegori(); 00367 wait(0.25); 00368 led(); 00369 wait(0.25); 00370 } 00371 } 00372 void led () 00373 { 00374 redled.off(); 00375 yellowled.off(); 00376 greenled.off(); 00377 } 00378 void svegori () 00379 { 00380 redled.boom(); 00381 yellowled.boom(); 00382 greenled.boom(); 00383 turn_me_on3.detach(); 00384 } 00385 void knightrider () 00386 { 00387 while (1) { 00388 redled.boom(); 00389 yellowled.off(); 00390 greenled.off(); 00391 wait(0.25); 00392 redled.off(); 00393 yellowled.boom(); 00394 greenled.off(); 00395 wait(0.25); 00396 redled.off(); 00397 yellowled.off(); 00398 greenled.boom(); 00399 wait(0.25); 00400 redled.off(); 00401 yellowled.boom(); 00402 greenled.off(); 00403 wait(0.25); 00404 redled.boom(); 00405 yellowled.off(); 00406 greenled.off(); 00407 wait(0.25); 00408 } 00409 }
Generated on Sat Jul 30 2022 18:33:13 by
1.7.2
TVZ2020