AUTO_RAMPA_SAMBOLEK

Dependencies:   mbed HCSR04 TextLCD

main.cpp

Committer:
msambolek
Date:
2021-09-21
Revision:
0:83ddf858b8ae
Child:
1:d4075ab93f44

File content as of revision 0:83ddf858b8ae:

#include "mbed.h"
#include "TextLCD.h"
#include "HCSR04.h"

TextLCD lcd(PB_10, PA_8, PA_10, PB_3, PB_5, PB_4); //inicijacija 20x4 LCD-a
HCSR04 hcsr(PA_6, PA_7);
DigitalOut Stop(PB_9);
DigitalOut Kreni(PB_8);

float d;

InterruptIn Tipka(PA_5);
Timer debounce;
void proces(void);

PwmOut SM(PB_0);
float  pwmScale;

Ticker provjera;

Timer ZatRamp;

void mjerenje()
{
    hcsr.startMeasurement();
    if( hcsr.getDistance_mm()<90 && Kreni==1)
    {   
        SM=0.105;
        }
    if( hcsr.getDistance_mm()>90 && Kreni == 1)
    {
        ZatRamp.start();
        Stop=1;
        Kreni=0;
        lcd.cls();
        lcd.locate(4,1);
        lcd.printf("Dobro dosli!\n");
        lcd.locate(1,2);
        lcd.printf("Pritisnite tipku !");
        }
    }


int main()
{

    provjera.attach(&mjerenje,0.1);
    SM=0.0534;
    Stop = 1;
    Kreni=0;
    Tipka.mode(PullUp);
    SM.period(0.020);
    lcd.cls();
    lcd.locate(4,1);
    lcd.printf("Dobro dosli!\n");
    lcd.locate(1,2);
    lcd.printf("Pritisnite tipku !");
    
    
    while(1)
    { 
        debounce.start();
        Tipka.fall(&proces);
        if(ZatRamp.read_ms()>5000)
        {
            SM=0.0534;
            ZatRamp.reset();
            Kreni=0;
            }
        
    }
}

void proces(){
   if (debounce.read_ms()>200)
   {
        hcsr.startMeasurement();
        if(hcsr.getDistance_mm()<90 && Kreni==0){
        lcd.cls();
        lcd.locate(4,1);
        lcd.printf("Dovidjenja!\n");
        lcd.locate(4,2);
        lcd.printf("Sretan put!");
       Stop=!Stop;
       Kreni=!Kreni;
       SM=0.105;
       }
       } 
       debounce.reset();
    }