reading light sensor and out put between analog and digital
Fork of lightsense_kl46z_basic by
main.cpp@11:75596fecb8d5, 2016-09-19 (annotated)
- Committer:
- annalou
- Date:
- Mon Sep 19 04:07:39 2016 +0000
- Revision:
- 11:75596fecb8d5
- Parent:
- 10:4fa8bf6e3ade
AMartSSD341_HW5.2Pt2
Who changed what in which revision?
User | Revision | Line number | New 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 | 9:f619cdaa7a65 | 5 | #define PROGNAME "lightsense_kl46z_basic 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 |
annalou | 11:75596fecb8d5 | 9 | #define LBUT PTC12 // port addresses for buttons |
annalou | 11:75596fecb8d5 | 10 | #define RBUT PTC3 |
annalou | 11:75596fecb8d5 | 11 | |
scohennm | 6:710e18c552f5 | 12 | |
scohennm | 6:710e18c552f5 | 13 | |
scohennm | 0:e23fffd4b9a7 | 14 | |
scohennm | 4:bd42ab18979b | 15 | SLCD slcd; //define LCD display globally define |
scohennm | 1:51f8c2b04ce2 | 16 | Serial pc(USBTX, USBRX); |
scohennm | 8:3b19ecdc4261 | 17 | Timer LEDTimer; |
scohennm | 1:51f8c2b04ce2 | 18 | |
annalou | 11:75596fecb8d5 | 19 | DigitalIn buttons[2] = {RBUT, LBUT}; |
annalou | 11:75596fecb8d5 | 20 | |
annalou | 10:4fa8bf6e3ade | 21 | void LCDMess(char *lMess) |
annalou | 10:4fa8bf6e3ade | 22 | { |
annalou | 10:4fa8bf6e3ade | 23 | slcd.Home(); |
annalou | 10:4fa8bf6e3ade | 24 | slcd.clear(); |
annalou | 10:4fa8bf6e3ade | 25 | slcd.printf(lMess); |
annalou | 10:4fa8bf6e3ade | 26 | } |
scohennm | 0:e23fffd4b9a7 | 27 | |
scohennm | 9:f619cdaa7a65 | 28 | |
annalou | 10:4fa8bf6e3ade | 29 | int main() |
annalou | 10:4fa8bf6e3ade | 30 | { |
scohennm | 8:3b19ecdc4261 | 31 | AnalogIn LightSensor(LIGHTSENSORPORT); |
annalou | 10:4fa8bf6e3ade | 32 | float lightData; |
scohennm | 1:51f8c2b04ce2 | 33 | char lcdData[LCDLEN]; |
annalou | 10:4fa8bf6e3ade | 34 | PwmOut gled(LED_GREEN); |
annalou | 10:4fa8bf6e3ade | 35 | PwmOut rled(LED_RED); |
annalou | 11:75596fecb8d5 | 36 | unsigned short lightWord; |
annalou | 11:75596fecb8d5 | 37 | bool lButON = false; |
annalou | 10:4fa8bf6e3ade | 38 | |
scohennm | 8:3b19ecdc4261 | 39 | int timeToChangeDF = DATATIME; |
scohennm | 3:64e28ee5719b | 40 | LEDTimer.start(); |
scohennm | 3:64e28ee5719b | 41 | LEDTimer.reset(); |
scohennm | 1:51f8c2b04ce2 | 42 | pc.printf(PROGNAME); |
annalou | 10:4fa8bf6e3ade | 43 | |
annalou | 10:4fa8bf6e3ade | 44 | while(true) { |
annalou | 10:4fa8bf6e3ade | 45 | if (LEDTimer.read_ms() > timeToChangeDF) { // check for timer time out transtion |
annalou | 10:4fa8bf6e3ade | 46 | lightData = (1.0 - LightSensor.read()); // show as increasiing with increasing intensity |
annalou | 10:4fa8bf6e3ade | 47 | sprintf(lcdData,"%4.3f",lightData); |
annalou | 10:4fa8bf6e3ade | 48 | LCDMess(lcdData); |
scohennm | 8:3b19ecdc4261 | 49 | timeToChangeDF = DATATIME; |
annalou | 11:75596fecb8d5 | 50 | //pc.printf(lcdData); |
annalou | 10:4fa8bf6e3ade | 51 | rled = lightData; |
annalou | 10:4fa8bf6e3ade | 52 | gled = lightData; |
annalou | 11:75596fecb8d5 | 53 | |
annalou | 11:75596fecb8d5 | 54 | //using if to switch between the RAW and Float output |
annalou | 11:75596fecb8d5 | 55 | if(lButON == true) |
annalou | 11:75596fecb8d5 | 56 | { |
annalou | 11:75596fecb8d5 | 57 | lightWord = LightSensor.read_u16(); |
annalou | 11:75596fecb8d5 | 58 | pc.printf("LS => %10d \r\n", lightWord); |
annalou | 11:75596fecb8d5 | 59 | lButON = false; |
annalou | 11:75596fecb8d5 | 60 | } |
annalou | 11:75596fecb8d5 | 61 | else |
annalou | 11:75596fecb8d5 | 62 | { |
annalou | 11:75596fecb8d5 | 63 | lightData = (1.0 - LightSensor.read()); |
annalou | 11:75596fecb8d5 | 64 | pc.printf("ls => %1.3f \r\n", lightData); |
annalou | 11:75596fecb8d5 | 65 | lButON = true; |
annalou | 11:75596fecb8d5 | 66 | } |
scohennm | 8:3b19ecdc4261 | 67 | LEDTimer.reset(); |
annalou | 10:4fa8bf6e3ade | 68 | } |
annalou | 11:75596fecb8d5 | 69 | }// end while |
scohennm | 4:bd42ab18979b | 70 | } |