led light on and off using light sensor

Dependencies:   SLCD mbed

Fork of lightsense_kl46z_basic by Stanley Cohen

Committer:
scohennm
Date:
Fri Sep 09 19:31:08 2016 +0000
Revision:
8:3b19ecdc4261
Parent:
7:8d7089b514ae
Child:
9:f619cdaa7a65
make clone for basic program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
scohennm 0:e23fffd4b9a7 1 #include "mbed.h"
scohennm 1:51f8c2b04ce2 2 #include "SLCD.h"
scohennm 1:51f8c2b04ce2 3
scohennm 3:64e28ee5719b 4
scohennm 8:3b19ecdc4261 5 #define PROGNAME "lightsense_kl46z_minmax v1\n\r"
scohennm 8:3b19ecdc4261 6 #define DATATIME 400 // milliseconds
scohennm 1:51f8c2b04ce2 7 #define LCDLEN 10
scohennm 8:3b19ecdc4261 8 #define LIGHTSENSORPORT PTE22
scohennm 6:710e18c552f5 9
scohennm 6:710e18c552f5 10
scohennm 0:e23fffd4b9a7 11
scohennm 4:bd42ab18979b 12 SLCD slcd; //define LCD display globally define
scohennm 1:51f8c2b04ce2 13 Serial pc(USBTX, USBRX);
scohennm 8:3b19ecdc4261 14 Timer LEDTimer;
scohennm 1:51f8c2b04ce2 15
scohennm 1:51f8c2b04ce2 16 void LCDMess(char *lMess){
scohennm 1:51f8c2b04ce2 17 slcd.Home();
scohennm 1:51f8c2b04ce2 18 slcd.clear();
scohennm 1:51f8c2b04ce2 19 slcd.printf(lMess);
scohennm 1:51f8c2b04ce2 20 }
scohennm 0:e23fffd4b9a7 21
scohennm 0:e23fffd4b9a7 22 int main() {
scohennm 8:3b19ecdc4261 23 float maxLight = 0;
scohennm 8:3b19ecdc4261 24 float minLight = 1.0;
scohennm 8:3b19ecdc4261 25 PwmOut greenColor(LED_GREEN);
scohennm 8:3b19ecdc4261 26 PwmOut redColor(LED_RED);
scohennm 8:3b19ecdc4261 27 AnalogIn LightSensor(LIGHTSENSORPORT);
scohennm 6:710e18c552f5 28 float lightData;
scohennm 1:51f8c2b04ce2 29 char lcdData[LCDLEN];
scohennm 4:bd42ab18979b 30
scohennm 8:3b19ecdc4261 31 int timeToChangeDF = DATATIME;
scohennm 3:64e28ee5719b 32 // set up timer for next step of Duty Factor timing
scohennm 3:64e28ee5719b 33 LEDTimer.start();
scohennm 3:64e28ee5719b 34 LEDTimer.reset();
scohennm 1:51f8c2b04ce2 35 pc.printf(PROGNAME);
scohennm 1:51f8c2b04ce2 36
scohennm 3:64e28ee5719b 37
scohennm 8:3b19ecdc4261 38 while(true) {
scohennm 8:3b19ecdc4261 39 if (LEDTimer.read_ms() > timeToChangeDF){ // check for timer time out transtion
scohennm 8:3b19ecdc4261 40 lightData = (1.0 - LightSensor.read()); // show as increasiing with increasing intensity
scohennm 8:3b19ecdc4261 41 greenColor.write(1.0- lightData);
scohennm 8:3b19ecdc4261 42 redColor.write(1.0-lightData);
scohennm 8:3b19ecdc4261 43 sprintf(lcdData,"%4.3f",lightData);
scohennm 8:3b19ecdc4261 44 LCDMess(lcdData);
scohennm 8:3b19ecdc4261 45 if(lightData > maxLight) maxLight = lightData;
scohennm 8:3b19ecdc4261 46 if(lightData < minLight) minLight = lightData;
scohennm 8:3b19ecdc4261 47 pc.printf("%4.3f min = %4.3f max = %4.3f\r\n",lightData, minLight, maxLight);
scohennm 8:3b19ecdc4261 48 timeToChangeDF = DATATIME;
scohennm 8:3b19ecdc4261 49 LEDTimer.reset();
scohennm 8:3b19ecdc4261 50 }
scohennm 4:bd42ab18979b 51 }// emd while
scohennm 4:bd42ab18979b 52 }