AUTO_RAMPA_SAMBOLEK
Dependencies: mbed HCSR04 TextLCD
main.cpp@0:83ddf858b8ae, 2021-09-21 (annotated)
- Committer:
- msambolek
- Date:
- Tue Sep 21 12:47:26 2021 +0000
- Revision:
- 0:83ddf858b8ae
- Child:
- 1:d4075ab93f44
Prvi commit.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
msambolek | 0:83ddf858b8ae | 1 | #include "mbed.h" |
msambolek | 0:83ddf858b8ae | 2 | #include "TextLCD.h" |
msambolek | 0:83ddf858b8ae | 3 | #include "HCSR04.h" |
msambolek | 0:83ddf858b8ae | 4 | |
msambolek | 0:83ddf858b8ae | 5 | TextLCD lcd(PB_10, PA_8, PA_10, PB_3, PB_5, PB_4); //inicijacija 20x4 LCD-a |
msambolek | 0:83ddf858b8ae | 6 | HCSR04 hcsr(PA_6, PA_7); |
msambolek | 0:83ddf858b8ae | 7 | DigitalOut Stop(PB_9); |
msambolek | 0:83ddf858b8ae | 8 | DigitalOut Kreni(PB_8); |
msambolek | 0:83ddf858b8ae | 9 | |
msambolek | 0:83ddf858b8ae | 10 | float d; |
msambolek | 0:83ddf858b8ae | 11 | |
msambolek | 0:83ddf858b8ae | 12 | InterruptIn Tipka(PA_5); |
msambolek | 0:83ddf858b8ae | 13 | Timer debounce; |
msambolek | 0:83ddf858b8ae | 14 | void proces(void); |
msambolek | 0:83ddf858b8ae | 15 | |
msambolek | 0:83ddf858b8ae | 16 | PwmOut SM(PB_0); |
msambolek | 0:83ddf858b8ae | 17 | float pwmScale; |
msambolek | 0:83ddf858b8ae | 18 | |
msambolek | 0:83ddf858b8ae | 19 | Ticker provjera; |
msambolek | 0:83ddf858b8ae | 20 | |
msambolek | 0:83ddf858b8ae | 21 | Timer ZatRamp; |
msambolek | 0:83ddf858b8ae | 22 | |
msambolek | 0:83ddf858b8ae | 23 | void mjerenje() |
msambolek | 0:83ddf858b8ae | 24 | { |
msambolek | 0:83ddf858b8ae | 25 | hcsr.startMeasurement(); |
msambolek | 0:83ddf858b8ae | 26 | if( hcsr.getDistance_mm()<90 && Kreni==1) |
msambolek | 0:83ddf858b8ae | 27 | { |
msambolek | 0:83ddf858b8ae | 28 | SM=0.105; |
msambolek | 0:83ddf858b8ae | 29 | } |
msambolek | 0:83ddf858b8ae | 30 | if( hcsr.getDistance_mm()>90 && Kreni == 1) |
msambolek | 0:83ddf858b8ae | 31 | { |
msambolek | 0:83ddf858b8ae | 32 | ZatRamp.start(); |
msambolek | 0:83ddf858b8ae | 33 | Stop=1; |
msambolek | 0:83ddf858b8ae | 34 | Kreni=0; |
msambolek | 0:83ddf858b8ae | 35 | lcd.cls(); |
msambolek | 0:83ddf858b8ae | 36 | lcd.locate(4,1); |
msambolek | 0:83ddf858b8ae | 37 | lcd.printf("Dobro dosli!\n"); |
msambolek | 0:83ddf858b8ae | 38 | lcd.locate(1,2); |
msambolek | 0:83ddf858b8ae | 39 | lcd.printf("Pritisnite tipku !"); |
msambolek | 0:83ddf858b8ae | 40 | } |
msambolek | 0:83ddf858b8ae | 41 | } |
msambolek | 0:83ddf858b8ae | 42 | |
msambolek | 0:83ddf858b8ae | 43 | |
msambolek | 0:83ddf858b8ae | 44 | int main() |
msambolek | 0:83ddf858b8ae | 45 | { |
msambolek | 0:83ddf858b8ae | 46 | |
msambolek | 0:83ddf858b8ae | 47 | provjera.attach(&mjerenje,0.1); |
msambolek | 0:83ddf858b8ae | 48 | SM=0.0534; |
msambolek | 0:83ddf858b8ae | 49 | Stop = 1; |
msambolek | 0:83ddf858b8ae | 50 | Kreni=0; |
msambolek | 0:83ddf858b8ae | 51 | Tipka.mode(PullUp); |
msambolek | 0:83ddf858b8ae | 52 | SM.period(0.020); |
msambolek | 0:83ddf858b8ae | 53 | lcd.cls(); |
msambolek | 0:83ddf858b8ae | 54 | lcd.locate(4,1); |
msambolek | 0:83ddf858b8ae | 55 | lcd.printf("Dobro dosli!\n"); |
msambolek | 0:83ddf858b8ae | 56 | lcd.locate(1,2); |
msambolek | 0:83ddf858b8ae | 57 | lcd.printf("Pritisnite tipku !"); |
msambolek | 0:83ddf858b8ae | 58 | |
msambolek | 0:83ddf858b8ae | 59 | |
msambolek | 0:83ddf858b8ae | 60 | while(1) |
msambolek | 0:83ddf858b8ae | 61 | { |
msambolek | 0:83ddf858b8ae | 62 | debounce.start(); |
msambolek | 0:83ddf858b8ae | 63 | Tipka.fall(&proces); |
msambolek | 0:83ddf858b8ae | 64 | if(ZatRamp.read_ms()>5000) |
msambolek | 0:83ddf858b8ae | 65 | { |
msambolek | 0:83ddf858b8ae | 66 | SM=0.0534; |
msambolek | 0:83ddf858b8ae | 67 | ZatRamp.reset(); |
msambolek | 0:83ddf858b8ae | 68 | Kreni=0; |
msambolek | 0:83ddf858b8ae | 69 | } |
msambolek | 0:83ddf858b8ae | 70 | |
msambolek | 0:83ddf858b8ae | 71 | } |
msambolek | 0:83ddf858b8ae | 72 | } |
msambolek | 0:83ddf858b8ae | 73 | |
msambolek | 0:83ddf858b8ae | 74 | void proces(){ |
msambolek | 0:83ddf858b8ae | 75 | if (debounce.read_ms()>200) |
msambolek | 0:83ddf858b8ae | 76 | { |
msambolek | 0:83ddf858b8ae | 77 | hcsr.startMeasurement(); |
msambolek | 0:83ddf858b8ae | 78 | if(hcsr.getDistance_mm()<90 && Kreni==0){ |
msambolek | 0:83ddf858b8ae | 79 | lcd.cls(); |
msambolek | 0:83ddf858b8ae | 80 | lcd.locate(4,1); |
msambolek | 0:83ddf858b8ae | 81 | lcd.printf("Dovidjenja!\n"); |
msambolek | 0:83ddf858b8ae | 82 | lcd.locate(4,2); |
msambolek | 0:83ddf858b8ae | 83 | lcd.printf("Sretan put!"); |
msambolek | 0:83ddf858b8ae | 84 | Stop=!Stop; |
msambolek | 0:83ddf858b8ae | 85 | Kreni=!Kreni; |
msambolek | 0:83ddf858b8ae | 86 | SM=0.105; |
msambolek | 0:83ddf858b8ae | 87 | } |
msambolek | 0:83ddf858b8ae | 88 | } |
msambolek | 0:83ddf858b8ae | 89 | debounce.reset(); |
msambolek | 0:83ddf858b8ae | 90 | } |