use to KL25Z. Sensing to PIR and CDS. Control Power LED

Dependencies:   mbed

Committer:
nanjsk
Date:
Sat May 30 10:11:15 2015 +0000
Revision:
0:be8486d83765
KL25Z, PIR, CDS, LED

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nanjsk 0:be8486d83765 1 #include "mbed.h"
nanjsk 0:be8486d83765 2 Timer t;
nanjsk 0:be8486d83765 3
nanjsk 0:be8486d83765 4 DigitalOut ledR0(LED_RED);
nanjsk 0:be8486d83765 5 DigitalOut ledG0(LED_GREEN);
nanjsk 0:be8486d83765 6 DigitalOut ledB0(LED_BLUE);
nanjsk 0:be8486d83765 7
nanjsk 0:be8486d83765 8 DigitalOut led0(D5);
nanjsk 0:be8486d83765 9 DigitalOut led1(D6);
nanjsk 0:be8486d83765 10
nanjsk 0:be8486d83765 11 DigitalIn PIR(D8);
nanjsk 0:be8486d83765 12 AnalogIn CDS(A0);
nanjsk 0:be8486d83765 13
nanjsk 0:be8486d83765 14 Serial pc(USBTX, USBRX);
nanjsk 0:be8486d83765 15
nanjsk 0:be8486d83765 16 #define PLED_ON led0 = led1 = 1
nanjsk 0:be8486d83765 17 #define PLED_OFF led0 = led1 = 0
nanjsk 0:be8486d83765 18
nanjsk 0:be8486d83765 19 int CDS_data;
nanjsk 0:be8486d83765 20 int PIR_sensor;
nanjsk 0:be8486d83765 21
nanjsk 0:be8486d83765 22 int CDS_check()
nanjsk 0:be8486d83765 23 {
nanjsk 0:be8486d83765 24 CDS_data = CDS.read()*1000;
nanjsk 0:be8486d83765 25 //CDS_vol = CDS_data*3.3;
nanjsk 0:be8486d83765 26
nanjsk 0:be8486d83765 27 if(CDS_data > 600){
nanjsk 0:be8486d83765 28 //ledG0 = 1;
nanjsk 0:be8486d83765 29 return 1;
nanjsk 0:be8486d83765 30 }
nanjsk 0:be8486d83765 31 else {
nanjsk 0:be8486d83765 32 //ledG0 = 0;
nanjsk 0:be8486d83765 33 return 0;
nanjsk 0:be8486d83765 34 }
nanjsk 0:be8486d83765 35 }
nanjsk 0:be8486d83765 36
nanjsk 0:be8486d83765 37 int PIR_check()
nanjsk 0:be8486d83765 38 {
nanjsk 0:be8486d83765 39 PIR_sensor = PIR;
nanjsk 0:be8486d83765 40 return PIR_sensor;
nanjsk 0:be8486d83765 41 }
nanjsk 0:be8486d83765 42
nanjsk 0:be8486d83765 43 int main()
nanjsk 0:be8486d83765 44 {
nanjsk 0:be8486d83765 45 ledR0 = ledG0 = ledB0 = 1;
nanjsk 0:be8486d83765 46 PLED_OFF;
nanjsk 0:be8486d83765 47 unsigned char flag = 1;
nanjsk 0:be8486d83765 48 int csd_int = 2;
nanjsk 0:be8486d83765 49 int pir_int0 = 2;
nanjsk 0:be8486d83765 50 int pir_int1 = 2;
nanjsk 0:be8486d83765 51 int pir_status = 0;
nanjsk 0:be8486d83765 52
nanjsk 0:be8486d83765 53 pc.baud(115200);
nanjsk 0:be8486d83765 54 wait(0.5f);
nanjsk 0:be8486d83765 55 pc.printf("Hello mbed!\n\r");
nanjsk 0:be8486d83765 56 pc.printf("===========================================\n\r");
nanjsk 0:be8486d83765 57
nanjsk 0:be8486d83765 58 while (true) {
nanjsk 0:be8486d83765 59 if(CDS_check()){
nanjsk 0:be8486d83765 60 if(csd_int != 0){
nanjsk 0:be8486d83765 61 pc.printf("Dark now.\r\n");
nanjsk 0:be8486d83765 62 csd_int = 0;
nanjsk 0:be8486d83765 63 }
nanjsk 0:be8486d83765 64 ledG0 = 0;
nanjsk 0:be8486d83765 65 flag = 1;
nanjsk 0:be8486d83765 66 while(flag){
nanjsk 0:be8486d83765 67 if(PIR_check()){
nanjsk 0:be8486d83765 68 if(pir_int0 != 0){
nanjsk 0:be8486d83765 69 pc.printf("The movement is detected.\r\n");
nanjsk 0:be8486d83765 70 pc.printf("Power LED is turned on.\r\n");
nanjsk 0:be8486d83765 71 pc.printf("===========================================\n\r");
nanjsk 0:be8486d83765 72 pir_int0 = 0;
nanjsk 0:be8486d83765 73 }
nanjsk 0:be8486d83765 74 t.stop();
nanjsk 0:be8486d83765 75 t.reset();
nanjsk 0:be8486d83765 76 t.start();
nanjsk 0:be8486d83765 77 pir_status = 1;
nanjsk 0:be8486d83765 78 ledR0 = 0;
nanjsk 0:be8486d83765 79 PLED_ON;
nanjsk 0:be8486d83765 80 }
nanjsk 0:be8486d83765 81 if(pir_status == 0) {
nanjsk 0:be8486d83765 82 flag = 0;
nanjsk 0:be8486d83765 83 }
nanjsk 0:be8486d83765 84 if(t.read_ms() > 5000 && pir_status == 1){
nanjsk 0:be8486d83765 85 if(pir_int0 != 1){
nanjsk 0:be8486d83765 86 pc.printf("The movement is not detected.\r\n");
nanjsk 0:be8486d83765 87 pc.printf("Power LED is turned off.\r\n");
nanjsk 0:be8486d83765 88 pc.printf("===========================================\n\r");
nanjsk 0:be8486d83765 89 pir_int0 = 1;
nanjsk 0:be8486d83765 90 }
nanjsk 0:be8486d83765 91 t.stop();
nanjsk 0:be8486d83765 92 t.reset();
nanjsk 0:be8486d83765 93 pir_status = 0;
nanjsk 0:be8486d83765 94 ledR0 = 1;
nanjsk 0:be8486d83765 95 PLED_OFF;
nanjsk 0:be8486d83765 96 flag = 0;
nanjsk 0:be8486d83765 97 }
nanjsk 0:be8486d83765 98 }
nanjsk 0:be8486d83765 99 }
nanjsk 0:be8486d83765 100 else{
nanjsk 0:be8486d83765 101 if(csd_int != 1){
nanjsk 0:be8486d83765 102 pc.printf("Brighter now.\r\n");
nanjsk 0:be8486d83765 103 csd_int = 1;
nanjsk 0:be8486d83765 104 }
nanjsk 0:be8486d83765 105
nanjsk 0:be8486d83765 106 ledG0 = 1;
nanjsk 0:be8486d83765 107 if(PIR_check()){
nanjsk 0:be8486d83765 108 if(pir_int1 != 0){
nanjsk 0:be8486d83765 109 pc.printf("The movement is detected.\r\n");
nanjsk 0:be8486d83765 110 pir_int1 = 0;
nanjsk 0:be8486d83765 111 }
nanjsk 0:be8486d83765 112 ledB0 = 0;
nanjsk 0:be8486d83765 113 }
nanjsk 0:be8486d83765 114 else{
nanjsk 0:be8486d83765 115 if(pir_int1 != 1){
nanjsk 0:be8486d83765 116 pc.printf("The movement is not detected.\r\n");
nanjsk 0:be8486d83765 117 pir_int1 = 1;
nanjsk 0:be8486d83765 118 }
nanjsk 0:be8486d83765 119 ledB0 = 1;
nanjsk 0:be8486d83765 120 }
nanjsk 0:be8486d83765 121 }
nanjsk 0:be8486d83765 122
nanjsk 0:be8486d83765 123 //pc.printf("===========================================\n\r");
nanjsk 0:be8486d83765 124 //ledB0 = !ledB0;
nanjsk 0:be8486d83765 125 //wait(1);
nanjsk 0:be8486d83765 126 }
nanjsk 0:be8486d83765 127 }