knut kristensen / Mbed 2 deprecated prosjektoppgave_alarm

Dependencies:   mbed

Fork of prosjektoppgave_alarm by PnM_spring17

Committer:
Rocker79
Date:
Wed Jan 25 11:39:46 2017 +0000
Revision:
8:0e77808699d0
Parent:
6:5607f07a3863
Child:
12:3d384401500c
Laget en blink funksjon.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mathimat 0:0aa2d9849f98 1 #include "mbed.h"
mathimat 0:0aa2d9849f98 2
mathimat 1:fbad5dc82abd 3 AnalogIn ain1(p17), ain2(p18), ain3(p19), ain4(p20);
mathimat 1:fbad5dc82abd 4 DigitalIn nullut(p16);
mathimat 1:fbad5dc82abd 5 BusOut ledStatus(p21,p22,p23,p24,p25,p26,p27,p28);
mathimat 1:fbad5dc82abd 6 DigitalOut ledMaster(LED1);
mathimat 6:5607f07a3863 7 Serial pc(USBTX, USBRX);
Rocker79 8:0e77808699d0 8 PwmOut led(LED1);
Rocker79 8:0e77808699d0 9
mathimat 1:fbad5dc82abd 10
mathimat 5:b4e1656b6627 11 Ticker tick;
mathimat 1:fbad5dc82abd 12
mathimat 1:fbad5dc82abd 13 int brytere[8]; //en for hver bryter, 1 = alarm
mathimat 1:fbad5dc82abd 14 int status = 0; //1 = alarm
mathimat 1:fbad5dc82abd 15
Rocker79 8:0e77808699d0 16 void blink()
Rocker79 8:0e77808699d0 17 {
Rocker79 8:0e77808699d0 18 if (status==0) {
Rocker79 8:0e77808699d0 19 led.period(0.1f);
Rocker79 8:0e77808699d0 20 led.write(1.0f);
Rocker79 8:0e77808699d0 21 } else {
Rocker79 8:0e77808699d0 22 led.period(0.1f);
Rocker79 8:0e77808699d0 23 led.write(0.5f);
Rocker79 8:0e77808699d0 24 }
Rocker79 8:0e77808699d0 25
Rocker79 8:0e77808699d0 26 }
Rocker79 8:0e77808699d0 27
Rocker79 8:0e77808699d0 28
Rocker79 8:0e77808699d0 29
Rocker79 8:0e77808699d0 30
mathimat 4:3dfc937f6516 31
mathimat 4:3dfc937f6516 32 //todo: få dette i en konfigurasjons tekstfil
mathimat 1:fbad5dc82abd 33 #define passord "qwerty"
mathimat 6:5607f07a3863 34 #define bryterAhigh 0.285f
mathimat 6:5607f07a3863 35 #define bryterAlow 0.200f
mathimat 6:5607f07a3863 36 #define bryterBhigh 0.200f
mathimat 6:5607f07a3863 37 #define bryterBlow 0.150f
mathimat 6:5607f07a3863 38 #define bryterABhigh 0.150f
mathimat 6:5607f07a3863 39 #define bryterABlow 0.050f
mathimat 6:5607f07a3863 40 #define bryter0 0.97f
mathimat 1:fbad5dc82abd 41
mathimat 1:fbad5dc82abd 42
Rocker79 8:0e77808699d0 43 void getFromFile() {
Rocker79 8:0e77808699d0 44
Rocker79 8:0e77808699d0 45 }
mathimat 6:5607f07a3863 46
Rocker79 8:0e77808699d0 47 int alarmSjekk(AnalogIn& krets, int kretsn) {
Rocker79 8:0e77808699d0 48 /* Sjekker kretsen etter spenningsendring og returnerer hvilke bryter som er åpen
Rocker79 8:0e77808699d0 49 -1 error
Rocker79 8:0e77808699d0 50 0 alle lukket
Rocker79 8:0e77808699d0 51 1 bryter A
Rocker79 8:0e77808699d0 52 2 bryter B
Rocker79 8:0e77808699d0 53 3 bryter AB
Rocker79 8:0e77808699d0 54 ---
Rocker79 8:0e77808699d0 55 */
Rocker79 8:0e77808699d0 56 int bryter = -1;
Rocker79 8:0e77808699d0 57 float volt = krets.read();
Rocker79 8:0e77808699d0 58 pc.printf("volt %f", volt);
Rocker79 8:0e77808699d0 59 if(volt <= bryter0) {
Rocker79 8:0e77808699d0 60 status = 1;
Rocker79 8:0e77808699d0 61 if(volt < bryterAhigh) {
Rocker79 8:0e77808699d0 62 if(volt < bryterBhigh) {
Rocker79 8:0e77808699d0 63 if(volt < bryterABhigh) {
Rocker79 8:0e77808699d0 64 bryter = 3;
Rocker79 8:0e77808699d0 65 } else {
Rocker79 8:0e77808699d0 66 bryter = 2;
Rocker79 8:0e77808699d0 67 }
mathimat 6:5607f07a3863 68 } else {
Rocker79 8:0e77808699d0 69 bryter = 1;
mathimat 6:5607f07a3863 70 }
mathimat 6:5607f07a3863 71 } else {
Rocker79 8:0e77808699d0 72 bryter = -2;
mathimat 6:5607f07a3863 73 }
Rocker79 8:0e77808699d0 74 } else(bryter = 0);
Rocker79 8:0e77808699d0 75
Rocker79 8:0e77808699d0 76 return bryter;
Rocker79 8:0e77808699d0 77 }
mathimat 1:fbad5dc82abd 78
Rocker79 8:0e77808699d0 79 void sjekkAlleKretser() {
Rocker79 8:0e77808699d0 80 //sjekker alle kretser skvensielt for aktivering
Rocker79 8:0e77808699d0 81 alarmSjekk(ain1, 0);
Rocker79 8:0e77808699d0 82 //alarmSjekk(ain2, 1);
Rocker79 8:0e77808699d0 83 //alarmSjekk(ain3, 2);
Rocker79 8:0e77808699d0 84 //alarmSjekk(ain4, 3);
Rocker79 8:0e77808699d0 85 }
mathimat 1:fbad5dc82abd 86
Rocker79 8:0e77808699d0 87 void statusLED() {
Rocker79 8:0e77808699d0 88 //oppdatere statusLED til aktiverte alarmer
Rocker79 8:0e77808699d0 89 for(int i=0; brytere[i]!=NULL; i++) {
Rocker79 8:0e77808699d0 90 if(brytere[i] == 1) {
Rocker79 8:0e77808699d0 91 ledStatus = ledStatus+i;
Rocker79 8:0e77808699d0 92 }
mathimat 1:fbad5dc82abd 93 }
mathimat 1:fbad5dc82abd 94 }
mathimat 1:fbad5dc82abd 95
mathimat 3:d3f95e1e06cf 96
mathimat 3:d3f95e1e06cf 97
Rocker79 8:0e77808699d0 98 void resetSystem() {
Rocker79 8:0e77808699d0 99 //reseter alarmsystemet
Rocker79 8:0e77808699d0 100 for(int i=0; brytere[i]!=NULL; i++) {
Rocker79 8:0e77808699d0 101 brytere[i] = 0;
Rocker79 8:0e77808699d0 102 }
Rocker79 8:0e77808699d0 103 status = 0;
Rocker79 8:0e77808699d0 104
mathimat 1:fbad5dc82abd 105 }
mathimat 0:0aa2d9849f98 106
Rocker79 8:0e77808699d0 107 void log(int status) {
Rocker79 8:0e77808699d0 108 switch(status) {
Rocker79 8:0e77808699d0 109 }
mathimat 2:2d97a168af1e 110 }
mathimat 2:2d97a168af1e 111
Rocker79 8:0e77808699d0 112 void chron() {
Rocker79 8:0e77808699d0 113 sjekkAlleKretser();
mathimat 5:b4e1656b6627 114 statusLED();
Rocker79 8:0e77808699d0 115 }
mathimat 5:b4e1656b6627 116
mathimat 5:b4e1656b6627 117
Rocker79 8:0e77808699d0 118 int main() {
Rocker79 8:0e77808699d0 119 while(1) {
Rocker79 8:0e77808699d0 120 int al = alarmSjekk(ain4, 4);
Rocker79 8:0e77808699d0 121 pc.printf(" Alarm Status: %d, Alarm %d gatt \r\n",status, al);
Rocker79 8:0e77808699d0 122 }
mathimat 3:d3f95e1e06cf 123 }