TVZ, Spec Elo, Mikroupravljaci, Popunjenost garaze
Dependencies: mbed SwitchLED TextLCD BluetoothSerial
Program prati koliko je auti trenutno u garaži pomoću IR senzora HW-201 (postavljeno na max. 7 auti) i ispisuje stanje na LDC display-u. U koliko ima slobodnih mjesta zelena LED blinka i ispisuje se broj slobodnih mjesta. Kad broj slobodnih mjesta dođe na 0, ispisuje se "Nema slobodnih mjesta i pali se crvena LED. Prilikom pritiska na user tipkalo B1 prekida se kod i ispisuje se "Pozar u garazi".
Diff: main.cpp
- Revision:
- 0:6f4570a58585
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Feb 22 12:43:28 2022 +0000 @@ -0,0 +1,67 @@ +#include "mbed.h" +#include "TextLCD.h" +#include "SwitchLED.h" +TextLCD lcd(D4, D5, D9, D10, D11, D12); //rs,e,d4,d5,d6,d7 +// TextLCD lcd(D4, D5, D9, D10, D11, D12,TextLCD::LCD8x2); +DigitalIn SIG1(A0); +DigitalIn SIG2(A1); +Switch redled(D6); +DigitalOut LEDslobodno(D7); +InterruptIn button(USER_BUTTON); +Ticker Slobodno; +int n=7, i=7, j=0; // maksimalan kapacitet garaže, trenutan broj auti, sljedeći broj auti +int Counter(DigitalIn SIG1, DigitalIn SIG2,int n, int j); +void flip(){ + LEDslobodno = !LEDslobodno; +} +void alarm(void); +int main() +{ + LEDslobodno=0; + while(1) { + button.rise(&alarm); + if(SIG1 || SIG2) { + j=Counter(SIG1, SIG2, n, j); + if(j==n && i==(n-1)) { //nema slobodnih mjesta i pali R_LED + redled.SW(); + } + if(j==n ) { //nema slobodnih mjesta i pali R_LED + Slobodno.detach(); + LEDslobodno=0; + lcd.printf("Nema slobodnih mjesta"); + } + if(i==n && j==(n-1)) { //Gasi R_LED kad ima slobodnih mjesta + redled.SW(); + } + i=j; + if(i<n) { + Slobodno.attach(&flip,1); + lcd.printf("Slobodno: %d",n-i); //ima slobodnih mjesta, ispis na ekran i blinkanje G_LED + } + } + wait(2); + lcd.cls(); + } +} +int Counter(DigitalIn SIG1, DigitalIn SIG2, int n, int j) +{ + + if(SIG1 && j>0 && SIG2==0) { + j--; + } + if(SIG2==1 && j<n && j!=n && SIG1==0) { + j++; + } + return j; +} +void alarm() +{ + while(1) { + LEDslobodno=0; + lcd.cls(); + lcd.printf("Pozar u garazi"); //Požar u garaži + wait(20); + break; + } + +}