Marko_Marinic_0246048959
Dependencies: mbed SeeedShieldBot TextLCD BluetoothSerial
Pametni stubišni automat je uređaj koji služi za paljenje svjetala pomoću pljeska. Rasvjetu predstavljaju četiri LED diode koje se pale jedna za drugom. Pale se u vremenskom razmaku koji odbrojava 8 segmentni displej. Gase se isto u vremenskom razmaku ( odbrojavanja na displeju) istim redom kako su se i palile. LCD zaslon služi za prikaz detekcije pljeska. Tipkalo služi kao START gumb.
main.cpp@0:0b3b22a12941, 2021-07-13 (annotated)
- Committer:
- mmarinic
- Date:
- Tue Jul 13 15:31:59 2021 +0000
- Revision:
- 0:0b3b22a12941
Pamteni stubisni automat
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mmarinic | 0:0b3b22a12941 | 1 | #include "mbed.h" |
mmarinic | 0:0b3b22a12941 | 2 | #include "TextLCD.h" |
mmarinic | 0:0b3b22a12941 | 3 | #include "SegDisplay.h" |
mmarinic | 0:0b3b22a12941 | 4 | #include "Stanovi.h" |
mmarinic | 0:0b3b22a12941 | 5 | Serial pc(USBTX, USBRX); |
mmarinic | 0:0b3b22a12941 | 6 | TextLCD ZaslonLCD(PA_0, PA_1, PA_4, PB_0, PC_1, PC_0, TextLCD::LCD16x1); |
mmarinic | 0:0b3b22a12941 | 7 | AnalogIn AnalogniUlaz(D13); |
mmarinic | 0:0b3b22a12941 | 8 | float JacinaZvuka; |
mmarinic | 0:0b3b22a12941 | 9 | InterruptIn StartGumb(D15); |
mmarinic | 0:0b3b22a12941 | 10 | void Glavna(void); |
mmarinic | 0:0b3b22a12941 | 11 | Timer tajmer; |
mmarinic | 0:0b3b22a12941 | 12 | int main() { |
mmarinic | 0:0b3b22a12941 | 13 | tajmer.start(); |
mmarinic | 0:0b3b22a12941 | 14 | StartGumb.rise(&Glavna); |
mmarinic | 0:0b3b22a12941 | 15 | } |
mmarinic | 0:0b3b22a12941 | 16 | void Glavna() { |
mmarinic | 0:0b3b22a12941 | 17 | if (tajmer.read_ms()>200) { |
mmarinic | 0:0b3b22a12941 | 18 | SegInit(); |
mmarinic | 0:0b3b22a12941 | 19 | StanoviInit(); |
mmarinic | 0:0b3b22a12941 | 20 | ZaslonLCD.printf("\nMRAK!!!"); |
mmarinic | 0:0b3b22a12941 | 21 | while(1){ |
mmarinic | 0:0b3b22a12941 | 22 | int brojac1 = 0; |
mmarinic | 0:0b3b22a12941 | 23 | int brojac2 = 4; |
mmarinic | 0:0b3b22a12941 | 24 | JacinaZvuka=abs(AnalogniUlaz-0.064); |
mmarinic | 0:0b3b22a12941 | 25 | if(JacinaZvuka>0.1){ |
mmarinic | 0:0b3b22a12941 | 26 | ZaslonLCD.printf("\nPLJESAK!!!"); |
mmarinic | 0:0b3b22a12941 | 27 | for(int i =0;i<=10;i++){ |
mmarinic | 0:0b3b22a12941 | 28 | if(i==10){ |
mmarinic | 0:0b3b22a12941 | 29 | if(brojac2>3){ |
mmarinic | 0:0b3b22a12941 | 30 | brojac1++; |
mmarinic | 0:0b3b22a12941 | 31 | Stanovi=BrojStanova(brojac1); |
mmarinic | 0:0b3b22a12941 | 32 | i=0; |
mmarinic | 0:0b3b22a12941 | 33 | } |
mmarinic | 0:0b3b22a12941 | 34 | if(brojac1>=5){ |
mmarinic | 0:0b3b22a12941 | 35 | brojac2--; |
mmarinic | 0:0b3b22a12941 | 36 | Stanovi=ObrnutoBrojStanova(brojac2); |
mmarinic | 0:0b3b22a12941 | 37 | if(brojac2==0){ |
mmarinic | 0:0b3b22a12941 | 38 | brojac1=0; |
mmarinic | 0:0b3b22a12941 | 39 | brojac2=5; |
mmarinic | 0:0b3b22a12941 | 40 | Seg=SegConvert(0); |
mmarinic | 0:0b3b22a12941 | 41 | ZaslonLCD.printf("\nMRAK!!!"); |
mmarinic | 0:0b3b22a12941 | 42 | break; |
mmarinic | 0:0b3b22a12941 | 43 | } |
mmarinic | 0:0b3b22a12941 | 44 | i=0; |
mmarinic | 0:0b3b22a12941 | 45 | } |
mmarinic | 0:0b3b22a12941 | 46 | } |
mmarinic | 0:0b3b22a12941 | 47 | Seg=SegConvert(i); |
mmarinic | 0:0b3b22a12941 | 48 | wait(0.3); |
mmarinic | 0:0b3b22a12941 | 49 | } |
mmarinic | 0:0b3b22a12941 | 50 | } |
mmarinic | 0:0b3b22a12941 | 51 | pc.printf("JacinaZvuka... \n\r"); |
mmarinic | 0:0b3b22a12941 | 52 | pc.printf("%f \n\r",JacinaZvuka); |
mmarinic | 0:0b3b22a12941 | 53 | } |
mmarinic | 0:0b3b22a12941 | 54 | } |
mmarinic | 0:0b3b22a12941 | 55 | } |
mmarinic | 0:0b3b22a12941 | 56 | |
mmarinic | 0:0b3b22a12941 | 57 |