Simulacija procesa pranja rublja
program.cpp@0:c132a33702c3, 2022-02-24 (annotated)
- Committer:
- antep
- Date:
- Thu Feb 24 17:30:39 2022 +0000
- Revision:
- 0:c132a33702c3
Konstrukcijski rad "Perilica rublja"
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
antep | 0:c132a33702c3 | 1 | #include "program.h" |
antep | 0:c132a33702c3 | 2 | BusOut Display(D1,D11,D12,D15,D14,D13,D10,D9); // -,A,B,C, D,E,F,G |
antep | 0:c132a33702c3 | 3 | DigitalIn START(USER_BUTTON); |
antep | 0:c132a33702c3 | 4 | Ticker fault; |
antep | 0:c132a33702c3 | 5 | PwmOut Zujalo(D5); |
antep | 0:c132a33702c3 | 6 | InterruptIn vrata(D6,PullUp); |
antep | 0:c132a33702c3 | 7 | |
antep | 0:c132a33702c3 | 8 | class LED { |
antep | 0:c132a33702c3 | 9 | public: |
antep | 0:c132a33702c3 | 10 | LED(PinName pin) : _pin(pin) |
antep | 0:c132a33702c3 | 11 | {// _pin(pin) means pass pin to the DigitalOut constructor |
antep | 0:c132a33702c3 | 12 | _pin = 0; // default the output to 0 |
antep | 0:c132a33702c3 | 13 | } |
antep | 0:c132a33702c3 | 14 | void on(int x){ |
antep | 0:c132a33702c3 | 15 | _pin=x;} |
antep | 0:c132a33702c3 | 16 | void off(int x){ |
antep | 0:c132a33702c3 | 17 | _pin=!x;} |
antep | 0:c132a33702c3 | 18 | private: |
antep | 0:c132a33702c3 | 19 | DigitalOut _pin; |
antep | 0:c132a33702c3 | 20 | }; |
antep | 0:c132a33702c3 | 21 | |
antep | 0:c132a33702c3 | 22 | LED lijevo(D8); |
antep | 0:c132a33702c3 | 23 | LED desno(D7); |
antep | 0:c132a33702c3 | 24 | |
antep | 0:c132a33702c3 | 25 | |
antep | 0:c132a33702c3 | 26 | void signalizacija(){ |
antep | 0:c132a33702c3 | 27 | while(1){ |
antep | 0:c132a33702c3 | 28 | Zujalo.period(0.002); |
antep | 0:c132a33702c3 | 29 | Zujalo=0.2; |
antep | 0:c132a33702c3 | 30 | Display=0xE2; // Fault |
antep | 0:c132a33702c3 | 31 | lijevo.on(0); |
antep | 0:c132a33702c3 | 32 | desno.on(0); |
antep | 0:c132a33702c3 | 33 | wait(1); |
antep | 0:c132a33702c3 | 34 | Zujalo=0;} |
antep | 0:c132a33702c3 | 35 | } |
antep | 0:c132a33702c3 | 36 | |
antep | 0:c132a33702c3 | 37 | |
antep | 0:c132a33702c3 | 38 | |
antep | 0:c132a33702c3 | 39 | void Program(){ |
antep | 0:c132a33702c3 | 40 | if(START==0&&vrata==0){ |
antep | 0:c132a33702c3 | 41 | for(int broj=9; broj>=0&&vrata==0; broj--) |
antep | 0:c132a33702c3 | 42 | { |
antep | 0:c132a33702c3 | 43 | switch (broj) { |
antep | 0:c132a33702c3 | 44 | case 0 : |
antep | 0:c132a33702c3 | 45 | Display = 0x7F; |
antep | 0:c132a33702c3 | 46 | break; |
antep | 0:c132a33702c3 | 47 | case 1 : |
antep | 0:c132a33702c3 | 48 | Display = 0x0C; |
antep | 0:c132a33702c3 | 49 | break; |
antep | 0:c132a33702c3 | 50 | case 2 : |
antep | 0:c132a33702c3 | 51 | Display = 0xB7; |
antep | 0:c132a33702c3 | 52 | break; |
antep | 0:c132a33702c3 | 53 | case 3 : |
antep | 0:c132a33702c3 | 54 | Display = 0x9F; |
antep | 0:c132a33702c3 | 55 | break; |
antep | 0:c132a33702c3 | 56 | case 4 : |
antep | 0:c132a33702c3 | 57 | Display = 0xCC; |
antep | 0:c132a33702c3 | 58 | break; |
antep | 0:c132a33702c3 | 59 | case 5 : |
antep | 0:c132a33702c3 | 60 | Display = 0xDA; |
antep | 0:c132a33702c3 | 61 | break; |
antep | 0:c132a33702c3 | 62 | case 6 : |
antep | 0:c132a33702c3 | 63 | Display = 0xFB; |
antep | 0:c132a33702c3 | 64 | break; |
antep | 0:c132a33702c3 | 65 | case 7 : |
antep | 0:c132a33702c3 | 66 | Display = 0x0F; |
antep | 0:c132a33702c3 | 67 | break; |
antep | 0:c132a33702c3 | 68 | case 8 : |
antep | 0:c132a33702c3 | 69 | Display = 0xFF; |
antep | 0:c132a33702c3 | 70 | break; |
antep | 0:c132a33702c3 | 71 | case 9 : |
antep | 0:c132a33702c3 | 72 | Display = 0xDF; |
antep | 0:c132a33702c3 | 73 | break; |
antep | 0:c132a33702c3 | 74 | } |
antep | 0:c132a33702c3 | 75 | if(int x=broj%2){ |
antep | 0:c132a33702c3 | 76 | lijevo.on(1); |
antep | 0:c132a33702c3 | 77 | desno.on(0);} |
antep | 0:c132a33702c3 | 78 | else{ |
antep | 0:c132a33702c3 | 79 | lijevo.on(0); |
antep | 0:c132a33702c3 | 80 | desno.on(1);} |
antep | 0:c132a33702c3 | 81 | |
antep | 0:c132a33702c3 | 82 | wait (2); |
antep | 0:c132a33702c3 | 83 | } |
antep | 0:c132a33702c3 | 84 | if(vrata==1)fault.attach(&signalizacija,3); |
antep | 0:c132a33702c3 | 85 | else{ |
antep | 0:c132a33702c3 | 86 | lijevo.on(0); |
antep | 0:c132a33702c3 | 87 | desno.on(0); |
antep | 0:c132a33702c3 | 88 | Zujalo.period(0.0002); |
antep | 0:c132a33702c3 | 89 | Zujalo=0.6; |
antep | 0:c132a33702c3 | 90 | wait(2); |
antep | 0:c132a33702c3 | 91 | Zujalo=0;} |
antep | 0:c132a33702c3 | 92 | } |
antep | 0:c132a33702c3 | 93 | return; |
antep | 0:c132a33702c3 | 94 | } |