Simulacija procesa pranja rublja

Committer:
antep
Date:
Thu Feb 24 17:30:39 2022 +0000
Revision:
0:c132a33702c3
Konstrukcijski rad  "Perilica rublja"

Who changed what in which revision?

UserRevisionLine numberNew 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 }