knut kristensen / Mbed 2 deprecated prosjektoppgave_alarm

Dependencies:   mbed

Fork of prosjektoppgave_alarm by PnM_spring17

main.cpp

Committer:
mathimat
Date:
2017-01-18
Revision:
1:fbad5dc82abd
Parent:
0:0aa2d9849f98
Child:
2:2d97a168af1e

File content as of revision 1:fbad5dc82abd:

#include "mbed.h"

AnalogIn ain1(p17), ain2(p18), ain3(p19), ain4(p20);
DigitalIn nullut(p16);
BusOut ledStatus(p21,p22,p23,p24,p25,p26,p27,p28);
DigitalOut ledMaster(LED1);


int brytere[8]; //en for hver bryter, 1 = alarm
int status = 0; //1 = alarm

#define passord         "qwerty"
#define bryterAfrom     0
#define bryterAto       0
#define bryterBfrom     0
#define bryterBto       0
#define bryterABfrom    0
#define bryterABto      0
#define bryter0         0


int alarmSjekk(AnalogIn& krets, int kretsn){ 
    /* Sjekker kretsen etter spenningsendring og returnerer hvilke bryter som er åpen
        -1  error
        0   alle lukket
        1   bryter A
        2   bryter B
        3   bryter AB
    */
    int bryter = -1;
    float volt = krets.read();
    if(volt <=bryter0){
        status = 1;
        if(bryterAfrom < volt < bryterAto){
            bryter = 1;
            brytere[kretsn*2] = 1;
        } else if(bryterBfrom < volt < bryterBto){
            bryter = 2;
            brytere[kretsn*2+1] = 1;
        } else if(bryterABfrom < volt){
            bryter = 3;
            brytere[kretsn*2] = brytere[kretsn*2+1] = 1;
        }
    } else(bryter = 0);
    
    return bryter;
}

void sjekkAlleKretser(){
    //sjekker alle kretser skvensielt for aktivering
    alarmSjekk(ain1, 0);
    alarmSjekk(ain2, 1);
    alarmSjekk(ain3, 2);
    alarmSjekk(ain4, 3);
}

void statusLED(){
    //oppdatere statusLED til aktiverte alarmer
    for(int i=0; brytere[i]!=NULL;i++){
        if(brytere[i] == 1){
            ledStatus += pow(2,i);
        }
    }
}

void resetSystem(){
    //reseter alarmsystemet
    for(int i=0; brytere[i]!=NULL;i++){
        brytere[i] = 0;
    }
    status = 0;
    
}

int main() {
}