Dectection take 1. Fixed adaptation step. Detect based on a number of standard deviations away from the mean.

Dependencies:   SI1143 m3pi mbed

Fork of Proximity_Sensor_2_sense by DP

Committer:
dmcohen24
Date:
Tue May 20 21:34:10 2014 +0000
Revision:
1:73781ab8b05b
Parent:
0:1802ead3667e
Child:
2:8798491332ed
Changing sample rate and register values;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dmcohen24 0:1802ead3667e 1 #include "mbed.h"
dmcohen24 0:1802ead3667e 2 #include "SI1143.h"
dmcohen24 0:1802ead3667e 3
dmcohen24 0:1802ead3667e 4 SI1143 sensor(p28, p27);
dmcohen24 0:1802ead3667e 5
dmcohen24 0:1802ead3667e 6 DigitalOut led1(LED1);
dmcohen24 0:1802ead3667e 7 DigitalOut led2(LED2);
dmcohen24 0:1802ead3667e 8 DigitalOut led3(LED3);
dmcohen24 0:1802ead3667e 9 DigitalOut led4(LED4);
dmcohen24 0:1802ead3667e 10
dmcohen24 0:1802ead3667e 11 int main()
dmcohen24 0:1802ead3667e 12 {
dmcohen24 0:1802ead3667e 13 int sense1;
dmcohen24 0:1802ead3667e 14 // Setup the baseline
dmcohen24 0:1802ead3667e 15 sensor.bias(1,10);
dmcohen24 0:1802ead3667e 16 //wait(1);
dmcohen24 0:1802ead3667e 17 //led2 = 0;
dmcohen24 0:1802ead3667e 18
dmcohen24 0:1802ead3667e 19 while(1)
dmcohen24 0:1802ead3667e 20 {
dmcohen24 0:1802ead3667e 21 // Read each led sensor
dmcohen24 1:73781ab8b05b 22 sense1 = sensor.get_ps1(1);
dmcohen24 0:1802ead3667e 23
dmcohen24 0:1802ead3667e 24 // Can be changed for different sensitivity
dmcohen24 0:1802ead3667e 25 //D1
dmcohen24 0:1802ead3667e 26 if (sense1 > 30)
dmcohen24 0:1802ead3667e 27 {
dmcohen24 0:1802ead3667e 28 led1 = 1;
dmcohen24 0:1802ead3667e 29 }
dmcohen24 0:1802ead3667e 30 else
dmcohen24 0:1802ead3667e 31 {
dmcohen24 0:1802ead3667e 32 led1 = 0;
dmcohen24 0:1802ead3667e 33 }
dmcohen24 0:1802ead3667e 34
dmcohen24 0:1802ead3667e 35 //D2
dmcohen24 0:1802ead3667e 36
dmcohen24 0:1802ead3667e 37 if (sense1 > 100)
dmcohen24 0:1802ead3667e 38 {
dmcohen24 0:1802ead3667e 39 led2 = 1;
dmcohen24 0:1802ead3667e 40 }
dmcohen24 0:1802ead3667e 41 else
dmcohen24 0:1802ead3667e 42 {
dmcohen24 0:1802ead3667e 43 led2 = 0;
dmcohen24 0:1802ead3667e 44 }
dmcohen24 0:1802ead3667e 45
dmcohen24 0:1802ead3667e 46 //D3
dmcohen24 0:1802ead3667e 47
dmcohen24 0:1802ead3667e 48 if (sense1 > 250)
dmcohen24 0:1802ead3667e 49 {
dmcohen24 0:1802ead3667e 50 led3 = 1;
dmcohen24 0:1802ead3667e 51 }
dmcohen24 0:1802ead3667e 52 else
dmcohen24 0:1802ead3667e 53 {
dmcohen24 0:1802ead3667e 54 led3 = 0;
dmcohen24 0:1802ead3667e 55 }
dmcohen24 0:1802ead3667e 56
dmcohen24 0:1802ead3667e 57 //D4
dmcohen24 0:1802ead3667e 58
dmcohen24 0:1802ead3667e 59 if (sense1 > 1000)
dmcohen24 0:1802ead3667e 60 {
dmcohen24 0:1802ead3667e 61 led4 = 1;
dmcohen24 0:1802ead3667e 62 }
dmcohen24 0:1802ead3667e 63 else
dmcohen24 0:1802ead3667e 64 {
dmcohen24 0:1802ead3667e 65 led4 = 0;
dmcohen24 0:1802ead3667e 66 }
dmcohen24 0:1802ead3667e 67
dmcohen24 0:1802ead3667e 68 //Numeriacl output through terminal
dmcohen24 0:1802ead3667e 69 printf("%d\r\n",sense1);
dmcohen24 0:1802ead3667e 70
dmcohen24 0:1802ead3667e 71 //led2 = !led2;
dmcohen24 1:73781ab8b05b 72 //wait(.01);
dmcohen24 0:1802ead3667e 73 }
dmcohen24 0:1802ead3667e 74 }