AUTO_RAMPA_SAMBOLEK

Dependencies:   mbed HCSR04 TextLCD

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?

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