main

Dependencies:   mbed Alarmni_sustav

Fork of Alarm_Barnjak by Niko Barnjak

https://os.mbed.com/media/uploads/nbarnjak/shema.png

main.cpp

Committer:
nbarnjak
Date:
2021-05-06
Revision:
1:ffe9956395e9
Parent:
0:d33881c5ba2d

File content as of revision 1:ffe9956395e9:

#include "mbed.h"
#include "klasaLED.h"
Serial pc(USBTX, USBRX);
LED_ led1(A0); //alarm-zelena
LED_ led2(D2);//centrala-žuta-signalna LED
LED_ led3(D3);//alarm-crvena
LED_ led4(D4);//centrala-zelena
LED_ led5(D5);//centrala-crvena
InterruptIn button(USER_BUTTON);
Timer senzor;
Timer alarm;
Timer debounce;
void flip() //Hardverski interrupt
{
    if(debounce.read_ms()>200) {
        led1.status(0);
        led3.status(0);
        led4.status(0);
        led5.status(0);
        int i;
        for(i=0; i<6; i++) {
            led2.flip();
            led5.flip();
            wait(0.5);
            senzor.reset(); 
            senzor.start(); 
        }
    } 
}
int main()
{
    debounce.start();
    button.rise(&flip);

    while(1) {

//Početno LED stanje
        led1.status(0);
        led2.status(0);
        led3.status(1);
        led4.status(1);
        led5.status(0);

//Nakon 5 sekundi slijedi detekcija ulaska koji se sa senzora proslijeđuje na centralu
        senzor.start();
        if (senzor.read() > 5) {
            led3.flip();
            
//Dvije sekunde nakon detekcija ulaza upali signalnu LED na centrali            
        }
        if (senzor.read() > 7) {
            led2.flip();
//Ukoliko centrala nije resetirana unutar 5 sekundi od aktivacije signalne LED, upali alarm i blokiraj centralu i alarm od resetiranja
        }
        if(senzor.read()>12 ) {
            led1.flip();
            led2.flip();
            led4.flip();
            led5.flip();
            alarm.start();
            int x; 
            while(alarm.read()<1 && debounce.read_ms()>200) {
            for(x=0; x<4; x++) {
               led1.flip();
               led5.flip();
               wait(0.25);
               alarm.reset();
               alarm.start();  
                    
                    }             
            }       
        }    
    }
    return 0;
}