![](/media/cache/group/tvz-logo.png.50x50_q85.png)
AUTO_RAMPA_SAMBOLEK
Dependencies: mbed HCSR04 TextLCD
main.cpp
- Committer:
- msambolek
- Date:
- 2021-09-21
- Revision:
- 1:d4075ab93f44
- Parent:
- 0:83ddf858b8ae
File content as of revision 1:d4075ab93f44:
#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); //inicijalizacija senzora udaljenosti DigitalOut Stop(PB_9); DigitalOut Kreni(PB_8); InterruptIn Tipka(PA_5); Timer debounce; //deklaracija timera za debounce void proces(void); //deklaracija funkcije PwmOut SM(PB_0); //deklaracija izlaznog PWM pina Ticker provjera; //deklaracija tickera Timer ZatRamp; //deklaracija timera za zadržavanje rampe void mjerenje() //funkcija za detekciju predmeta ispred senzora udaljenosti { hcsr.startMeasurement(); if( hcsr.getDistance_mm()<90 && Kreni==1) //predmet ispred senzora udaljenosti { SM=0.105; } if( hcsr.getDistance_mm()>90 && Kreni == 1) { ZatRamp.start(); // timer za spuštanje rampe 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); //tickeru se dodijeljuje funkcija mjerenje SM=0.0534; //pocetni otklon rampe Stop = 1; //aktivan crvena LEDica Kreni=0; Tipka.mode(PullUp); //digitalni ulaz za tipku pritegnut sa pull up otpornikom SM.period(0.020); //period PWM signala za motor lcd.cls(); lcd.locate(4,1); lcd.printf("Dobro dosli!\n"); lcd.locate(1,2); lcd.printf("Pritisnite tipku !"); while(1) { debounce.start(); //start tajmera za debounce tipke Tipka.fall(&proces); //na padajući brid tipke za podizanje rampe poziva se funkcija proces if(ZatRamp.read_ms()>5000) //provjera vrijednosti timera za spuštanje rampe { SM=0.0534; ZatRamp.reset(); } } } 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(); }